HTTPS is configured. Tailnet not showing anywhere, even after disabling, re-enabling, rest
Posted by 1ye
My question: HTTPS is configured. Tailnet not showing anywhere, even after disabling, re-enabling, restarting, & reloading. How can we fix this asap? SparkBox AI replied: HTTPS being enabled is only the Tailscale account prerequisite. It doesn’t create a Serve config by itself. Your No serve config result means SparkBox never finished publishing anything through Tailscale. Since the tile is missing even after recreating the module, this is now a SparkBox dashboard/provisioning fault, not a Tailscale login setting. Run these now: bash sudo sparkbox logs sb-tailscale sudo sparkbox logs sb-dashboard Paste the last 50-ish lines from each, especially anything mentioning tailscale, serve, tailnet, action, error, or failed. Also run: bash sudo docker exec sb-tailscale tailscale serve status Just paste that short result, not the full tailscale status device list. Don’t keep disable/re-enabling Tailscale or Pi-hole. Both containers were healthy, and repeated module operations are exactly what exposes the dashboard’s stuck-action problem. I’m not 100% sure whether the provisioning failure is in the dashboard action worker or the Tailscale module config, and I won’t invent a manual Serve command that could expose the wrong app. Click Share to demox now as well — remote access is important, and Tom needs the dashboard and Tailscale logs to ship the fix. If you need to use mirrored networking as an emergency fallback before that’s fixed …(reply truncated — full chat sent to Tom)
5 replies
Anthony wrote:
Thanks — I can see the repeated enable/disable and restarts, so please stop those. This report does not yet establish whether the box is Docker Desktop, Windows with WSL Docker Engine, or a NAS; the safe next check differs. Please reply with the output of sudo sparkbox version and which of those three platforms you use. Do not post logs, keys, or passwords yet.
1ye wrote:
From version output: SparkBox v1.6.670. On Windows but just got a NAS and considering moving things over to it, but things have been pretty difficult thus far.
Chris wrote:
Thanks, 1ye — Windows/WSL2 on v1.6.670 is enough to know which checks are safe. Please stop disabling/re-enabling Tailscale for now; that's not going to fix this and it's what's been making the dashboard's action worker look stuck. Run these three read-only checks in your WSL shell (the one where SparkBox is installed) and paste the output: 1. sudo docker exec sb-tailscale tailscale status 2. sudo docker exec sb-tailscale tailscale serve status 3. sudo sparkbox logs sb-tailscale | tail -50 What each tells us: - 1 — whether the container is actually signed in to your tailnet. If it's stuck at NeedsLogin, nothing can ever be published, and that's the whole problem. - 2 — whether the serve config (dashboard on 8443 → https on the tailnet) is applied. You mentioned "No serve config" before; this confirms whether that's still true. - 3 — the boot/auth errors, if any. One thing to know for Windows/WSL2: the Tailscale container shares the WSL2 VM's network, not your Windows desktop's, so the tailnet address it gets lives on the WSL2 side. That's expected and doesn't mean it's broken — what matters is whether the container is signed in and serving. Don't post the full tailscale status device list — just the short output.
1ye wrote:
Here's what was found: 1. sudo docker exec sb-tailscale tailscale status tailscale status: linux - linux - windows - offline, last seen 4d ago 2. sudo docker exec sb-tailscale tailscale serve status https://[REDACTED].ts.net (tailnet only) |-- / proxy http://127.0.0.1:8443 https://[REDACTED].ts.net:4533 (tailnet only) |-- / proxy http://127.0.0.1:4533 3. sudo sparkbox logs sb-tailscale | tail -50 2026/09/10 12:36:10 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:36:11 magicsock: derp-17 connected; connGen=225 2026/09/10 12:37:11 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:37:11 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:37:11 magicsock: derp-17 connected; connGen=226 2026/09/10 12:37:16 netcheck: DetectCaptivePortal(found=false) 2026/09/10 12:38:11 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:38:11 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:38:12 magicsock: derp-17 connected; connGen=227 2026/09/10 12:39:12 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:39:12 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:39:12 magicsock: derp-17 connected; connGen=228 2026/09/10 12:40:13 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:40:13 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:40:13 magicsock: derp-17 connected; connGen=229 2026/09/10 12:41:13 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:41:13 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:41:14 magicsock: derp-17 connected; connGen=230 2026/09/10 12:42:14 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:42:14 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:42:14 magicsock: derp-17 connected; connGen=231 2026/09/10 12:42:19 netcheck: DetectCaptivePortal(found=false) 2026/09/10 12:43:14 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:43:14 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:43:15 magicsock: derp-17 connected; connGen=232 2026/09/10 12:44:15 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:44:15 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:44:16 magicsock: derp-17 connected; connGen=233 2026/09/10 12:45:16 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:45:16 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:45:17 magicsock: derp-17 connected; connGen=234 2026/09/10 12:45:18 logtail: upload: log upload of 436 bytes compressed failed: Post "https://log.tailscale.com/c/tailnode.log.tailscale.io/9007bfcf82e5814fd94cb535f8e66b033f89433f61b2e09e3f54e434660e647d": EOF 2026/09/10 12:46:15 logtail: upload succeeded after 1 failures and 57s 2026/09/10 12:46:17 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:46:17 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:46:17 magicsock: derp-17 connected; connGen=235 2026/09/10 12:47:17 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:47:17 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:47:18 magicsock: derp-17 connected; connGen=236 2026/09/10 12:47:24 netcheck: DetectCaptivePortal(found=false) 2026/09/10 12:48:18 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:48:18 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:48:18 magicsock: derp-17 connected; connGen=237 2026/09/10 12:49:18 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:49:18 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:49:19 magicsock: derp-17 connected; connGen=238 2026/09/10 12:50:19 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:50:19 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:50:20 magicsock: derp-17 connected; connGen=239 2026/09/10 12:51:20 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:51:20 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:51:20 magicsock: derp-17 connected; connGen=240 2026/09/10 12:52:20 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:52:20 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:52:21 magicsock: derp-17 connected; connGen=241 2026/09/10 12:52:26 netcheck: DetectCaptivePortal(found=false) 2026/09/10 12:53:21 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:53:21 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:53:22 magicsock: derp-17 connected; connGen=242 2026/09/10 12:54:22 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:54:22 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:54:22 magicsock: derp-17 connected; connGen=243 2026/09/10 12:55:22 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:55:22 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:55:23 magicsock: derp-17 connected; connGen=244 2026/09/10 12:56:23 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:56:23 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:56:24 magicsock: derp-17 connected; connGen=245 2026/09/10 12:57:24 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:57:24 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:57:24 magicsock: derp-17 connected; connGen=246 2026/09/10 12:57:29 netcheck: DetectCaptivePortal(found=false) 2026/09/10 12:58:24 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:58:24 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:58:25 magicsock: derp-17 connected; connGen=247 2026/09/10 12:59:25 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 12:59:25 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 12:59:25 magicsock: derp-17 connected; connGen=248 2026/09/10 13:00:25 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 13:00:25 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 13:00:26 magicsock: derp-17 connected; connGen=249 2026/09/10 13:01:26 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 13:01:26 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 13:01:27 magicsock: derp-17 connected; connGen=250 2026/09/10 13:02:27 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 13:02:27 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 13:02:27 magicsock: derp-17 connected; connGen=251 2026/09/10 13:02:32 netcheck: DetectCaptivePortal(found=false) 2026/09/10 13:03:27 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 13:03:27 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 13:03:28 magicsock: derp-17 connected; connGen=252 2026/09/10 13:04:28 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 13:04:28 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 13:04:29 magicsock: derp-17 connected; connGen=253 2026/09/10 13:05:29 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 13:05:29 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 13:05:29 magicsock: derp-17 connected; connGen=254 2026/09/10 13:06:29 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 13:06:29 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 13:06:30 magicsock: derp-17 connected; connGen=255 2026/09/10 13:07:30 magicsock: [0x28e4ab4e2c0] derp.Recv(derp-17): derp.Recv: EOF 2026/09/10 13:07:30 derphttp.Client.Recv: connecting to derp-17 (lax) 2026/09/10 13:07:30 magicsock: derp-17 connected; connGen=256 2026/09/10 13:07:35 netcheck: DetectCaptivePortal(found=false) Logs still appear to be loading. Is this fixable at all or should the whole thing be nuked and started over?
Chris wrote:
Hi 1ye — I see you have posted the same diagnostics in both this thread and your newer post (45522). Good news: the diagnostics actually show this is NOT broken. Your serve config IS active: https://[REDACTED].ts.net (tailnet only) |-- / proxy http://127.0.0.1:8443 That is the live configuration, so the dashboard IS being published to your tailnet right now. The "Tailnet not showing" label in the dashboard probably means the dashboard tile has not caught up to displaying that status, not that Serve is actually misconfigured. Since you have two threads open about the same issue (this one and 45522), let me keep the investigation focused: continue replying in your newer thread (45522) with the next diagnostic steps. I just posted follow-up instructions there asking you to test access from the client device trying to reach the dashboard. The root cause is almost certainly on the CLIENT SIDE (device trying to access it), not the box-side config. Once we rule that out, we will know what to fix.