Self-hosting
Deploying it
Two services and a database.
What you need
- A Linux server. Two cores and a couple of gigabytes is comfortable.
- Docker with the Compose plugin.
- A DNS name and a TLS certificate.
- Postgres, in a container or managed.
Computers connect out to this. Nothing incoming is needed on your users' networks.
Ports
| Service | Port | Who connects |
|---|---|---|
| Coordinator | 9000 | Every computer and app |
| Relay | 9001 | Only sessions with no direct path |
| Control API | 9100 | The dashboard and the apps |
Put TLS in front. Do not expose them without it.
Start it
docker compose -f infra/docker-compose.yml build
docker compose -f infra/docker-compose.yml up -d
docker compose -f infra/docker-compose.yml psDatabase
Point it at Postgres. It runs its own migrations on start. Give it its own database and user, and back it up.
TLS
This is the part that bites later. Every computer keeps a connection open to the coordinator, so an expired certificate takes the whole fleet offline at once.
Automate renewal, and alert on the expiry date.
Test before you move anything
One of each
Point one shared computer and one app at it and link them.
Connect
Sign both in to an account on your own service, then open a session.
Force a relayed session
Try from a mobile network. Finding out the relay is misconfigured on the day someone needs it is the thing to avoid.