Family Coverage

Running your own server

Optional. Without a server, each phone keeps its data until you export it, and that’s enough to decide.

A server suits a household that:

It’s a single Python file, standard library only (the optional FCC comparison also needs two packages), with a Docker image. In short:

  1. Run it at home (docker compose up -d --build in the server folder of the source code).
  2. Make it reachable: on your home network or a private VPN such as Tailscale over plain http, or from anywhere over https behind a reverse proxy with a certificate.
  3. In the app, Edit the household on one phone and set the server’s address. Share the household again, and scan the updated code on the other phones. Each person agrees again, because the data now goes somewhere new.
  4. Approve each phone on the server (approve <device_id>). The id is in each phone’s status.
  5. Set a report password (set-report-password), then open /report/ on the server: the same report page, live. It’s as fresh as the phones’ uploads, which come every 15 minutes on Wi-Fi and every hour elsewhere. In the app, Open the live report goes there too, once the household has a server.
  6. At the end, export-zips writes the same zips the phones export.

On Tailscale, a server that is itself a Tailscale node also records whether each phone reached it directly or through Tailscale’s relays, which is what makes a camera stream smooth or choppy.

The FCC comparison

The live report’s map can show what each carrier claims to the FCC (the National Broadband Map) beside what your phones measured. The server can build that layer itself:

A state is used only when all three carriers have their 4G LTE file there, so a missing file is never mistaken for “claims nothing”. The Docker image has everything this needs. Run straight from Python, the server also needs two packages for it (pip install h3 requests); without them, the server says so once and does everything else as usual.

The full instructions are in the server’s README in the source code.