Skip to content

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.

  1. Create a project and a Compose service. In its Advanced tab, Import the content of deploy/dokploy/template.base64.
  2. Domains: turn HTTPS on for the domain of service web (or set your own and update PLATFORM_URL).
  3. Turn on Isolated Deployments and deploy.
  4. Open the First owner setup link printed in the logs of service api, sign up and create the organization.
  5. 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.

Source available under the Business Source License 1.1.