Remote Access
8 minute read
The dashboard is built for your local network. To reach it while you are away, put the board on a private network that you already trust. This page shows four common ways to do that. All four work without opening or forwarding a port to the board.
Exaviz supports reaching the dashboard over your local network, Tailscale and WireGuard. ZeroTier and Cloudflare Tunnel are third-party options that Exaviz does not officially support; they are described here for convenience, and their own documentation is the reference.
Never forward port 80 or 443 from your firewall to the board. That puts the login page on the open internet, where anyone can find it and try passwords. Tailscale, WireGuard and ZeroTier keep the dashboard off the public internet. Cloudflare Tunnel does not, so it needs Cloudflare Access in front of it (see that section).
Before You Start
- Change the default password. The dashboard makes you do this at first login. See Getting Started.
- Have shell access to the board. Each option installs a small piece of software on the board itself, so you need SSH or a keyboard and monitor.
- ZeroTier and Cloudflare Tunnel are third-party options that Exaviz does not officially support. The supported paths are your local network, Tailscale and WireGuard.
- The software below is not made by Exaviz. Each option needs an account or a server of your own with that provider. Exaviz receives no keys, accounts or traffic from any of them.
The board runs a Debian-based system (Debian, Raspberry Pi OS or Ubuntu) on 64-bit Arm. Use each provider’s instructions for the same system and 64-bit Arm.
The Remote Access Card
The dashboard has a Remote Access card that shows, for this board:
- Tailscale - whether it is installed and connected, the board’s tailnet address and name,
when its key expires, and an Open over Tailscale link. If Tailscale is not installed, an
Install Tailscale button installs it after you confirm. The install only adds the software;
you still sign in with
sudo tailscale up(see below). If an install fails, the card shows the step it stopped at, and the system journal on the board has the full output. - WireGuard - each WireGuard interface on the board, whether it is up, the time of its last
handshake, and an Open over WireGuard link. If there is no interface, the card says so;
one appears once you create it with
wg-quickor netplan.
The card only reads the board’s state. It never signs in to Tailscale and never shows an account, a peer, or a key. It does not cover ZeroTier or Cloudflare Tunnel.
Which Option to Choose
| Option | Best for | You need |
|---|---|---|
| Tailscale | Quickest setup | A free Tailscale account |
| WireGuard | You run a WireGuard server | A server with a reachable UDP port |
| ZeroTier (third party, not supported) | A network managed on the web | A free ZeroTier account |
| Cloudflare Tunnel (third party, not supported) | Browser only | A Cloudflare domain and Access |
Tailscale, WireGuard and ZeroTier connect your phone or laptop to the board as if they were on the same network. Cloudflare Tunnel publishes the dashboard at a web address and relies on Cloudflare Access to keep strangers out.
Tailscale
Install Tailscale on the board, either with Install Tailscale on the Remote Access card or with Tailscale’s Linux install guide.
Connect the board to your tailnet:
sudo tailscale upOpen the login link it prints and approve the board.
Find the board’s Tailscale address:
tailscale ip -4In the Tailscale admin console, disable key expiry for the board. Keys expire after 180 days by default, and an expired board drops off your tailnet until someone logs in on it locally.
Install Tailscale on your phone or laptop and sign in to the same account.
Browse to
https://<tailscale-address>.
If MagicDNS is on in your tailnet, you can also use the board’s machine name in place of the address.
Tailscale Funnel publishes a service to the whole internet. Do not use it for the dashboard. Plain Tailscale is all you need.
WireGuard
WireGuard needs one side of the connection to have a UDP port that the other side can reach. Put that side on your firewall (many business firewalls include a WireGuard server) or on a server you control. The board connects out to it, so nothing is forwarded to the board.
Install the WireGuard tools and create a key pair on the board:
sudo apt install wireguard-tools sudo sh -c 'umask 077; wg genkey > /etc/wireguard/board.key' sudo cat /etc/wireguard/board.key | wg pubkeyThe last command prints the board’s public key. Add it as a peer on your WireGuard server with
AllowedIPs = 10.8.0.2/32, the board’s address on the VPN subnet. The server must forward traffic between its peers (on a Linux server,net.ipv4.ip_forward=1), or your phone gets a handshake but the dashboard never loads.Create
/etc/wireguard/wg0.confwith owner-only permissions, then open it in an editor:sudo install -m 600 /dev/null /etc/wireguard/wg0.conf sudo nano /etc/wireguard/wg0.confEnter this, with your own keys and addresses:
[Interface] PrivateKey = <contents of /etc/wireguard/board.key> Address = 10.8.0.2/32 [Peer] PublicKey = <your server's public key> Endpoint = <your server's address>:51820 AllowedIPs = 10.8.0.0/24 PersistentKeepalive = 25AllowedIPslists only the VPN subnet, so the board’s own internet traffic is not sent through the tunnel.PersistentKeepalivekeeps the connection open from the board’s side.Start the tunnel and have it come back after a reboot:
sudo systemctl enable --now wg-quick@wg0 sudo wg showA recent “latest handshake” line in
wg showmeans the tunnel is up.Connect your phone or laptop to the same WireGuard server and browse to
https://10.8.0.2.
Use your own subnet in place of 10.8.0.0/24. On Cruiser, avoid 10.100.0.0/16, which the PoE
ports use.
ZeroTier
ZeroTier is a third-party service that Exaviz does not officially support.
Create a network in ZeroTier Central and note its network ID.
Install ZeroTier on the board using ZeroTier’s download page (Linux instructions).
Join the network:
sudo zerotier-cli join <network-id>In ZeroTier Central, authorize the board. Keep the network set to Private so that every new device needs your approval.
Find the board’s ZeroTier address:
sudo zerotier-cli listnetworksInstall ZeroTier on your phone or laptop, join the same network, authorize it, and browse to
https://<zerotier-address>.
Cloudflare Tunnel
Cloudflare Tunnel is a third-party service that Exaviz does not officially support.
Cloudflare Tunnel makes an outbound connection from the board to Cloudflare and serves the dashboard at a hostname on your domain. Unlike the other three options, that hostname can be reached from the internet. Set up Cloudflare Access first, before the hostname exists.
- In the Cloudflare dashboard, go to Networking > Tunnels and create a tunnel. Cloudflare
shows the command to install
cloudflaredon the board. Choose the option that matches your system (Debian or Ubuntu) and 64-bit Arm. - Create a Cloudflare Access application for the hostname you will use (for example
board.example.com), with a policy that allows only your own email address or identity provider group. - Add that public hostname to the tunnel with:
- Service URL:
https://localhost:443 - Disable TLS certificate verification: on. The board uses a self-signed certificate by
default, so
cloudflaredmust not reject it.
- Service URL:
- Open
https://board.example.comin a private browser window. You should see the Cloudflare Access sign-in page before the dashboard login. If you see the dashboard login straight away, remove the hostname from the tunnel and fix the Access application first.
Three things change when you use a tunnel:
- Cloudflare sees the traffic. Cloudflare decrypts the connection at its edge, so it can see what passes between your browser and the dashboard, including your dashboard password. With the other three options, your browser’s HTTPS connection runs all the way to the board.
- Audit log addresses. Every request reaches the dashboard from
cloudflaredon the board itself, so the audit log records the loopback address (such as127.0.0.1) for remote logins. - Login rate limit. The login rate limit counts attempts per address, so all tunnel users share one limit. Cloudflare Access is what keeps strangers from reaching the login page at all.
Certificate Warnings
Over Tailscale, WireGuard and ZeroTier, your browser shows the same self-signed certificate warning it shows on your local network. To replace it, see Security and TLS.
Fleet View
Fleet discovery uses mDNS, which only reaches boards on the same local network. Remote access gives you each board’s own dashboard. See Fleet Management for how discovery works.
Troubleshooting
- The page does not load. Check that the VPN is connected on both ends:
tailscale status,sudo wg showorsudo zerotier-cli listnetworkson the board. Then make sure you are using the board’s VPN address, not its local IP. - The board’s
.localname does not resolve. mDNS names do not cross a VPN. Use the VPN address, or your provider’s DNS name if it has one. - Cloudflare shows a 502 error. Check that the Service URL is
https://localhost:443and that Disable TLS certificate verification is on.
Last modified October 18, 2026