Docker Compose (manual)
Barynt ships as one docker-compose.yml for local development and production, split by Compose profiles. The images are prebuilt and multi-arch on ghcr.io/jafoson/barynt.
Requirements
- A Linux host with Docker and the Compose plugin
- Ports 80 and 443 reachable, if you want automatic HTTPS
- A domain whose DNS points at the host
Download the files
A deployment needs exactly three files. You don’t have to clone the repository.
curl -O https://raw.githubusercontent.com/Jafoson/Barynt/main/docker-compose.ymlcurl -O https://raw.githubusercontent.com/Jafoson/Barynt/main/Caddyfilecurl -o .env https://raw.githubusercontent.com/Jafoson/Barynt/main/example.envConfigure .env
Generate a secret and paste it into AUTH_SECRET. For a real deployment also set these:
| Variable | Purpose |
|---|---|
AUTH_SECRET | Signs sessions. bunx auth secret creates one. |
POSTGRES_PASSWORD | Password for the bundled database. |
DOMAIN | Caddy requests a Let’s Encrypt certificate for it. |
SMTP_HOST | Optional. Without it Barynt sends no mail; invite links can still be copied. |
Start the stack
docker compose --profile app up -dThis starts the app, bundled RustFS object storage and Caddy as a reverse proxy. Before the server starts, the app applies pending migrations and bootstraps the system data every workspace needs.
Updating
Change the image tag, or run docker compose pull, and restart. Migrations run on their own. Set MIGRATE_ON_START=false if your database is migrated elsewhere.