Skip to content
Barynt v1.0.12

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.

Terminal window
curl -O https://raw.githubusercontent.com/Jafoson/Barynt/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/Jafoson/Barynt/main/Caddyfile
curl -o .env https://raw.githubusercontent.com/Jafoson/Barynt/main/example.env

Configure .env

Generate a secret and paste it into AUTH_SECRET. For a real deployment also set these:

VariablePurpose
AUTH_SECRETSigns sessions. bunx auth secret creates one.
POSTGRES_PASSWORDPassword for the bundled database.
DOMAINCaddy requests a Let’s Encrypt certificate for it.
SMTP_HOSTOptional. Without it Barynt sends no mail; invite links can still be copied.

Start the stack

Terminal window
docker compose --profile app up -d

This 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.