I have installed the tailscale app through sparkbox and have setup its auth keys correctly and it works when I login on separate device using the tailscale app and logging into my profile. But when I try to use tailscale commands using SSH on my sparkbox machine I get tailscale commands not found. Is this correct and do I need to install it also using SSH or did the application not install correctly?
4 replies
tomspark wrote:
The Tailscale module runs inside a container, so the tailscale CLI isn't on your host machine — that's expected. To run Tailscale commands, you need to exec into the container: docker exec sb-tailscale tailscale <command. Common ones: docker exec sb-tailscale tailscale status (show connected peers), docker exec sb-tailscale tailscale ip -4 (get your Tailscale IP). If you need to do this often, add an alias to your .bashrc: alias ts='docker exec sb-tailscale tailscale' — then just ts status. The module itself is working fine if you can log in from another device and see the SparkBox node on your tailnet. The web dashboard should also be reachable from your phone at the Tailscale IP + port 8443 (e.g., https://100.x.x.x:8443).
gdavidson26 wrote:
Okay, so I am using Tailscale funnel with jellyfin forwarded on 443 and Seerr forwarded on 3000. I noticed Seerr worked for the first day on 3000 but won’t work again and also every night for some reason the Jellyfin drops from being funneled to tailnet only and I have to manually restart which gets annoying especially if I am away. Is there a fix for this or is it just because the containers restart for updates, backups, etc.
Chris wrote:
Sorry this sat so long — and it is not your setup. It is a known SparkBox behaviour, and there is a proper fix for it now. SparkBox regenerates its own Tailscale serve configuration every time that container starts, which wipes anything you set up by hand with the tailscale serve or funnel CLI. That is your overnight drop back to tailnet-only, and it is why Seerr stopped holding too. The durable route is to declare your entries in /opt/sparkbox/modules/tailscale/serve.user.json — SparkBox merges that file into its generated config every time, so it survives restarts and updates. Run sudo sparkbox upgrade first, then the walkthrough is at tomsparkbox.com/docs.htmltailscale-custom-serve. One honest catch: SparkBox already serves the dashboard on tailnet 443, so Jellyfin on 443 will fight it. Give Jellyfin a different port. — Chris
Chris wrote:
Coming back to correct myself on one detail. The merge half is right — SparkBox does fold that file into its config every time the container starts, so it holds through restarts, which is your overnight drop. But I was wrong that it survives updates. sudo sparkbox upgrade swaps the whole install folder and only carries named data directories across; a single loose file sitting beside them isn't carried, so your entries vanish and Funnel quietly falls back to tailnet-only with nothing obvious to blame. For now: keep a copy somewhere outside /opt/sparkbox, re-add it after each upgrade, then sudo sparkbox restart tailscale. I've logged it for Tom. — Chris