Skip to content
Pre-launch. The free desktop build works today — it isn't code-signed yet, so your OS warns on first run. Paid sync, billing, and the mobile app aren't open yet. Get in touch.

Self-hosted server

The Minutist Server, the hub, is an optional, self-hosted daemon on the connected tier (AUD$20/yr). You run it as an always-on background service on hardware you own: a homelab box, a spare PC, a GPU workstation. It pairs into your device mesh (the set of your own devices that sync with one another) exactly like another desktop. It is a single small binary, minutist-hub, with no GUI.

Sync converges your devices through the connected-tier relay, which store-and-forwards ciphertext while a device is offline. That works without a server of your own. A hub helps when two devices are rarely online at the same time, a laptop and a desktop, or later a phone and a desktop: each reaches your always-on hub whenever it is online, so they never have to overlap. A device that reconnects both deposits its changes and collects whatever accumulated while it was away.

The hub is a genuine always-on replica, not a push-only cache. When a device connects, the hub pulls any meetings it lacks from that device and re-completes any that only partially synced, so your full meeting history is preserved even if a previous transfer was interrupted. This backfill is idempotent: connecting the same device twice pulls nothing the second time.

The hub is your hardware, in your control: the same trust boundary as your desktop. It holds your meeting notes and audio in the clear, exactly as your desktop already does. There is no special encryption-at-rest, and it does not need any, because it is your machine.

The hub is not the relay. The hosted relay only brokers an encrypted connection between your devices and never sees your content; it forwards ciphertext. Run your own hub and none of your meeting content reaches Minutist infrastructure, not even ciphertext. (The hub signs in to your Minutist account so your devices can find each other; your account and the list of your devices then live on our account service. That is addressing metadata, how devices find each other, never your meeting content.)

The net effect: your meeting content is only ever processed on hardware you own, and the hub is what makes that hold across devices that are seldom online together.

  • A connected-tier subscription. Subscribe at minutist.ai/pricing/.
  • A relay access token: the credential that authorises the hub to reach the hosted relay under your account. The hub reads it from the MINUTIST_SYNC_TOKEN environment variable; prefer the environment variable or a token file over the command line, where a token is visible in the process list.
  • A host that stays on: Linux (Docker, Podman, or systemd) or Windows (as a service).

The hub is one binary. Build it from the repository, or use the published container image. Pick the path that matches your host.

Build the image from the repository root:

Terminal window
DOCKER_BUILDKIT=1 docker build -f packaging/Dockerfile -t minutist-hub:latest .

Run it always-on. --network host keeps the QUIC socket and relay path simple; the named volume preserves the hub’s device identity across restarts:

Terminal window
docker run -d --name minutist-hub --restart unless-stopped --network host \
-e MINUTIST_SYNC_TOKEN=<relay token> \
-v minutist-hub-data:/var/lib/minutist-hub \
minutist-hub:latest

To deploy to a host that has Docker but no Rust toolchain, build on one machine and ship the image:

Terminal window
docker save minutist-hub:latest | ssh HOST docker load

After the hub is running, sign it in to your Minutist account. It uses the same device-code flow as the desktop’s Connection pane: it prints a URL (and a code, if the URL does not already carry one); you approve it in a browser signed in to your account. Every device on that account, the hub included, then discovers and syncs with the others automatically, with no per-device pairing step.

  1. Run the sign-in command.

    Terminal window
    minutist-hub --data-dir <dir> login

    In a container: docker exec -it minutist-hub minutist-hub --data-dir /var/lib/minutist-hub login. The -it flags let you read the printed URL and follow the prompt.

  2. Approve it in a browser. Open the printed URL on any device already signed in to your Minutist account and approve the request. The hub stores its identity under its data directory, so this is a one-time step that survives restarts.

  3. Sync begins. Once approved, the hub joins your device mesh and your devices converge through it, automatically.