Use it from other devices
HTTPS with Tailscale, your own domain (Caddy) or Cloudflare Tunnel, or plain HTTP at home.
The server listens only on the machine itself (127.0.0.1:8080) until you choose how others reach it. The mobile
app will need HTTPS, so pick one of these.
Tailscale (recommended for a home machine and a private group)
Everyone in your group installs Tailscale and joins your network; nothing is opened to the internet. On the server:
tailscale serve --bg 8080
It prints an address like https://money.your-network.ts.net.
Your own domain
Point a domain (for example money.example.com) at the server, open ports 80 and 443, and add a .env file next
to docker-compose.yml:
COMPOSE_PROFILES=https
DOMAIN=money.example.com
Then docker compose up -d. Caddy gets and renews the certificate by itself.
Cloudflare Tunnel
For a home machine where you can’t open ports: create a tunnel in the Cloudflare dashboard that points your
hostname at http://localhost:8080, and run cloudflared on the server
(guide).
Home network only, no HTTPS
Set BIND=0.0.0.0 in .env and open http://<the server's address>:8080. Traffic isn’t encrypted, so only do
this on a network you trust, and the mobile app won’t work this way.
One web app per server
In a browser, the server’s API answers only its own web app: a copy of the web app hosted on another address is refused. Open MSaving from the server’s own address. Phones (the mobile app, later) connect from anywhere.