Other ways to deploy
The one-command installer is the simplest path. The same stack (docker-compose.prod.yml) also runs in these setups.
Dokploy
Dokploy runs Docker Compose projects behind its own Traefik, with domains and certificates managed from its interface. The quickest way is the Candydati template: published images, secrets and domain generated by Dokploy, nothing to build, no email account to prepare.
- Create a project and a Compose service. In its Advanced tab, Import the content of
deploy/dokploy/template.base64. - Domains: turn HTTPS on for the domain of service
web(or set your own and updatePLATFORM_URL). - Turn on Isolated Deployments and deploy.
- Open the
First owner setuplink printed in the logs of serviceapi, sign up and create the organization. - In the app, Settings, Email: configure SMTP or Resend and send the test email.
A coding agent (Claude Code, Codex, Cursor) can do all of it with the deploy skill. Full guide, including backups, troubleshooting and what an agent's key exposes: docs/deploy/dokploy.md.
Docker Compose by hand
If you prefer to manage every file yourself: clone the repository on the server, copy .env.example to .env, set the secrets and the email provider, put a reverse proxy with TLS in front of the web container (the guide uses Caddy) and start the stack with docker compose -f docker-compose.prod.yml --profile backup up -d --build. This builds the images on the server, which needs about 4 GB of free memory.
Full guide, with the Caddy configuration, updates, network and several instances on one host: docs/deploy/docker-compose.md.
Managed database and storage
Postgres 17 and any S3-compatible storage can replace the bundled ones when you want provider backups and failover; it is not needed for speed. See OPERATIONS.md for the architecture, the reverse proxy settings (request size and timeouts for imports up to 200 MiB) and the operator security checklist.