-
Notifications
You must be signed in to change notification settings - Fork 0
Tailscale
Access your Lights Pi from anywhere using Tailscale, a zero-config mesh VPN built on WireGuard. No port forwarding, no dynamic DNS, no firewall holes needed.
- Access from anywhere — Control lights from your phone at home, a laptop at a café, or backstage at a different venue
- Zero network config — Works through NATs and firewalls automatically
- Encrypted — All traffic is WireGuard-encrypted end-to-end
- Free — Personal plan supports up to 100 devices
- A Tailscale account (free)
- SSH access to your Pi (
./lightsctl.sh ssh) - Tailscale on at least one other device (phone, laptop)
./lightsctl.sh ssh
# On the Pi:
curl -fsSL https://tailscale.com/install.sh | sh
sudo systemctl enable --now tailscaled
sudo tailscale upOpen the printed URL in your browser to authorize the device.
tailscale statusYour Pi should appear with a 100.x.x.x Tailscale IP.
Once connected, all services are reachable via Tailscale IP or MagicDNS:
| Service | Local | Tailscale |
|---|---|---|
| Landing page | http://lights.local |
http://lights.<tailnet>.ts.net |
| QLC+ Web UI | http://lights.local:9999 |
http://lights.<tailnet>.ts.net:9999 |
| Control Server | http://lights.local:5000 |
http://lights.<tailnet>.ts.net:5000 |
| MCP Server | http://lights.local:5001 |
http://lights.<tailnet>.ts.net:5001 |
| SSH | ssh pi@lights.local |
ssh pi@lights.<tailnet>.ts.net |
MagicDNS uses the Pi's hostname. If
hostnamereturnslights, the MagicDNS name islights.<your-tailnet>.ts.net.
Tailscale operates on the tailscale0 virtual interface and bypasses ufw
rules by default. Your existing firewall configuration stays unchanged.
For per-device access restrictions, use Tailscale ACLs in your admin console.
Temporarily share access with someone NOT on your tailnet:
# On the Pi — expose the control server publicly
sudo tailscale funnel 5000
# Remove when done
sudo tailscale funnel --remove 5000
⚠️ Funnel exposes the service to the public internet. Use temporarily and only for non-sensitive services.
If you've installed the MCP server, Claude Desktop or other agents can connect over Tailscale by pointing their MCP config at the Tailscale address:
{
"mcpServers": {
"lights-pi": {
"transport": "streamable-http",
"url": "http://lights.<tailnet>.ts.net:5001/mcp"
}
}
}This works from anywhere — home, office, or mobile.
sudo systemctl status tailscaled
sudo tailscale up --reset # Re-authenticateEnable MagicDNS in your Tailscale admin console.
Check connection type:
tailscale ping lightsLook for "direct" (fast) vs "via DERP" (relay, slower). Ensure UDP port 41641 is allowed on both ends for direct connections.
sudo tailscale down
sudo apt remove tailscale
sudo rm /etc/apt/sources.list.d/tailscale.list