Networking · Remote management
Tailnet Control Panel
A self-hosted dashboard giving authorised engineers direct access to remote-site devices, without relying on a Windows PC and paid remote-access seats. Site information, device status and web-interface links are brought together in one place.
Node.js / React / Raspberry Pi / Tailscale / ZeroTier
Replacing a fragile remote-PC workflow
Engineers previously had to open third-party remote-access software, connect to a Windows PC at the pub, then find the information and tools needed to reach the site's equipment. That approach required paid remote-access seats and depended on the PC being online. Even with power-saving disabled and automatic restart after a power cut, those PCs occasionally became unavailable.
A more reliable gateway in practice
In these deployments, the Raspberry Pi proved more reliable as an always-on gateway. Authorised engineers could reach the equipment through the private network without first opening a remote desktop session. This removed the dependency on a Windows PC for device access and avoided the paid remote-access seats used by the previous workflow.
Site knowledge alongside the controls
The dashboard brings site information, equipment details such as Sky box counts, and device status together with links to the devices' web interfaces. Engineers can go straight to the equipment they need instead of relying on a remote PC having been manually set up with current information about the pub.
The problem: different sites, identical addresses
Many remote sites already use the same LAN range, such as 192.168.0.0/24. Those overlapping addresses make it difficult to distinguish devices across sites through ordinary subnet routing. Each site is assigned a number, and a Raspberry Pi maps its existing LAN onto a unique virtual subnet.
A virtual subnet for each site
For example, site 42 uses 172.30.42.0/24. iptables NETMAP rules translate traffic between the virtual subnet and the real LAN. DNSMasq supplies memorable device names, while the Pi advertises the virtual route through Tailscale. The diagram below uses illustrative addresses, not a client configuration.
One dashboard for day-to-day access
The Node.js, Express and React dashboard brings together device links, direct virtual-IP access and Pi online/offline monitoring. It also provides SSH maintenance, remote network scanning and controls for supported Sky devices. Site configuration lives in JSON and reloads automatically.
Supporting third-party tools
Tailscale is the primary remote-access network. ZeroTier is used for compatible CCTV and other third-party applications where their discovery or connectivity requirements are not met by the routed Tailscale setup. An optional allowlisted reverse proxy supports HTTP and WebSocket access.
Provisioning the Raspberry Pi
The companion Bash script installs and configures Tailscale and DNSMasq, enables IP forwarding, creates subnet mapping and firewall rules, persists those rules and advertises the site's virtual route. It also includes status, DNS-only and revert commands. Route approval remains an administrator step.
Deployment
The dashboard supports Docker deployment. It is intended to sit behind private network access or authentication; the optional proxy's allowed destinations are derived from the configured site domains. The stack combines Node.js, Express, React, Linux, SSH, Tailscale, ZeroTier, DNSMasq and iptables/NETMAP.
Virtual network172.30.42.0/24
↓ Raspberry Pi / NETMAP ↓
Existing local network192.168.0.0/24
Virtual network172.30.43.0/24
↓ Raspberry Pi / NETMAP ↓
Existing local network192.168.0.0/24
Tailscale carries traffic to each Pi. The site-specific virtual address selects the destination network.