Self-hosting
Run opendesk on your own server. Free forever, the same code as the hosted service.
Self-hosted opendesk is free forever and runs exactly the same code as opendesk.sh. You own the server, the database and every email in it.
curl -fsSL https://opendesk.sh/install.sh | shNew here? The self-host quickstart walks through it from an empty server.
What runs
Section titled “What runs”A self-hosted install is four containers on one machine, behind one domain:
| Service | Role |
|---|---|
caddy |
HTTPS with automatic certificates. Routes /socket to the realtime gateway and everything else to opendesk. |
opendesk |
The Go API, background workers, the web app (SERVE_WEB=true), and NATS, embedded. |
realtime |
The Elixir realtime gateway for live events, presence and typing. It holds no database connection. |
postgres |
The only datastore. |
There is no Redis and no message broker to run: background jobs live in Postgres, and NATS is built into the opendesk binary.
Day two
Section titled “Day two”The installer puts an opendesk-ctl helper next to your docker-compose.yml (default /opt/opendesk):
/opt/opendesk/opendesk-ctl status # containers, health, version/opt/opendesk/opendesk-ctl logs opendesk # follow logs: opendesk, realtime, postgres, caddy/opt/opendesk/opendesk-ctl backup # database dump, data volume and .env/opt/opendesk/opendesk-ctl upgrade # back up, then move to the newest release