Docker Compose
The repo ships a docker-compose.yml that runs the full stack — Postgres, API, click router,
and portal — on one box.
Requirements
- Docker 24+
- 2GB RAM minimum (4GB+ recommended for production)
- A domain, ideally with TLS terminated at a reverse proxy in front
Start
git clone https://github.com/getcoherence/openpartner.gitcd openpartnercp .env.example .env# edit .env — at minimum set SECRETS_ENCRYPTION_KEYdocker compose up -dThe first request to the portal triggers the install wizard. After that, all configuration (program name, mail transport, attribution model) lives in the admin UI.
Updating
git pulldocker compose pulldocker compose up -dMigrations run automatically on container start.
Production hardening
Beyond the dev compose:
- Run Postgres on a managed service or a separate host with backups (
pg_dumpdaily minimum). - Put the router and portal behind a reverse proxy (Caddy, nginx, Traefik) with TLS.
- Set
COOKIE_DOMAINto your apex so the first-party cookie scopes correctly. - Rotate
SECRETS_ENCRYPTION_KEYonly with a planned re-encrypt of stored secrets. - Persist file uploads. Brand logos and creator avatars default to local-disk storage at
/var/lib/openpartner/uploads. Mount a docker volume there or the files vanish on every container restart. For multi-host deploys or fully ephemeral runtimes, switch to S3-backed storage — seeOPENPARTNER_STORAGE_KIND=s3in the environment reference.
See the environment reference for all settings.