127.0.0.1 — your own machine. This is the safest default: nothing on your network can connect unless you explicitly open it up. This page covers three scenarios: just your own PC, occasional remote access via SSH tunnel, and always-available access on your home or office network (or a private mesh like Tailscale or WireGuard).
Just your own machine
Nothing to configure. Openhttp://localhost:8080 and you’re there. The app, the REST API at http://localhost:8080/api/, and the MCP endpoint at http://localhost:8080/mcp/ are all available. WEB_BIND stays at its default of 127.0.0.1 — only your own machine can connect.
Occasional access from another device
If you only need remote access now and then, an SSH tunnel is the cleanest option. You don’t change any configuration —WEB_BIND stays on loopback, nothing new is exposed — and it works from anywhere you can SSH in.
Run this on your laptop:
http://localhost:8080 on your laptop. The tunnel forwards your local port 8080 to the server’s loopback, so plamotrack appears just as it would locally. SSH keeps the session cookie and any tokens off the network entirely. Close the terminal when you’re done and the tunnel drops.
Always-on access on your home network (LAN)
To make plamotrack reachable from any device on your home or office network, set these two lines in your.env:
ALLOWED_HOSTS is not optional here: WEB_BIND=0.0.0.0 binds to every interface but names none of them, so plamotrack has no way to know what you’ll type in the address bar. The instance only responds to names it knows — if you reach it by a hostname that isn’t listed, you’ll get a 421 Misdirected Request error. Add whatever names or IP addresses you’ll actually use, comma-separated, without port numbers. Then docker compose up -d — nothing is lost while it’s wrong.
Private mesh (Tailscale, WireGuard, NetBird, etc.)
A WireGuard-based mesh gives your server an address that only your own devices can route to — better than a plain LAN because it works across the internet too, and the mesh itself provides the confidentiality that plain HTTP lacks. SetWEB_BIND to your server’s mesh IP address. If you’ll access plamotrack by a mesh DNS name rather than the IP directly, add that name to ALLOWED_HOSTS as well:
ALLOWED_HOSTS unset.
Got a 421 error?
You reached the instance by a name it doesn’t know. Add that name toALLOWED_HOSTS in .env:
docker compose up -d. Nothing is lost — the collection, sessions, and tokens are all untouched. The fix takes effect immediately once the stack restarts.
To expose plamotrack to the internet with HTTPS, see Cloudflare Tunnel or VPS + Caddy.