The self-host guide: your team on a box you own
Solo, Excellent is the simplest install there is: one download, one machine, one database file you own. The question we hear next is always the same — how do we run this as a team?
The answer stays in character. You don't get an account on our cloud, because there isn't one. You add exactly one piece of infrastructure: a primary — a small sync server your team owns — and every teammate's install becomes a live replica of the same workspace. This post is the introduction and the walkthrough.
The shape of it
A team workspace has one moving part more than a solo one:
- The primary is a single lightweight process — libSQL's open-source
sqldserver — running on hardware you control. It holds the authoritative copy of the shared database. - Every teammate runs the full app, same download as solo. Their local database becomes a replica of the primary: reads stay local-speed and work offline, writes forward to the primary and appear on everyone else's machine.
Excellent — the company — is not in the loop. There's no relay of ours in the middle, no hosted tenant, and at no point does a copy of your data touch infrastructure we operate. If the primary is in your closet, your business is in your closet.
What you need
The whole bill of materials:
- A box you control. The smallest droplet DigitalOcean sells (~$6/month) is plenty. So is any machine that runs Docker — a VPS you already rent, a NUC on the office shelf. The primary is one small process; it doesn't need a box to itself.
- The app on each teammate's machine, from the same download as the free solo install.
That's it. There are no seats to buy and nothing metered — the software is $0 for one person or a whole team, because there's no cloud of ours for your operation to run on. What you pay for is your own $6 box.
Standing up the primary
Setup lives in Settings → Team inside the app. The provisioning wizard does the ceremony for you:
- Docker — it generates the Compose recipe, with the keys and the first credential minted for you. No hand-rolled
openssl, no JWT minting, no env-file archaeology. - DigitalOcean — if the wizard finds the
doctlCLI on your machine, it can create and configure the droplet itself. Every command is shown before anything executes. - Bring your own — already run servers? Point the app at a
sqldyou stood up yourself and it joins the same way.
Either path ends in the same place: a primary you own, and your machine synced to it as the first device.
Inviting the team
Invites are single-use, expiring join links. The link carries no standing credential — the full-access credential never leaves your side; each device that joins gets its own. A teammate accepts in the app, or from a terminal:
excellent-mcp sync join --invite <code>From then on their install is a full local copy of the workspace — offline-capable, local-speed, continuously synced.
Settings → Team stays the control room afterward: members and roles, every device signed into the workspace, live sync status, and one-click revocation for the laptop that stayed in the taxi.
Working across machines
Everything that makes Excellent trustworthy on one machine holds across the fleet. The ship / verify protocol — no agent or person signs off their own work — spans devices: a task shipped from one laptop can be verified from another, and the audit trail travels with the data.
And because the primary is yours, operations are the ordinary kind you already know: snapshot the volume, restore it like any other service you run, move it to a new box when you feel like it. Your data never needs an export ticket — it's already yours, on every machine on the team.
The honest part
Sync today is serial multi-device. If two machines edit the same record while both are offline, the last write wins when they reconnect — Excellent does not yet merge concurrent offline edits field by field. A team working online against a shared primary rarely hits this; heavy offline work on shared records can.
Field-level merge — where concurrent edits to different fields both survive, and genuine conflicts on money, status, or identity are surfaced for a human decision instead of silently arbitrated — is built and in verification now. We'll say it ships when it ships; the sync & teams doc is where that statement will land first.
Start here
- Download Excellent and run it solo first — a team is just more machines on the same workspace.
- The sync & teams doc is the reference this guide introduces.
- The pricing page has the plain-language version: Free, Team (self-hosted, also free), and Enterprise — for when you'd rather we stood it up with you.
Sync is something you turn on deliberately, on infrastructure you own — never a silent default. That's the whole idea, applied to one more box.