.env.example79 lines · main
| 1 | # briven self-host — copy to `.env` and fill in. |
| 2 | # Generate secrets with `openssl rand -hex 32`. |
| 3 | # |
| 4 | # Post ADR-0002 the platform runs on TWO database engines, so there are |
| 5 | # TWO distinct database passwords below — do not reuse one for the other. |
| 6 | |
| 7 | # ─── Domain ────────────────────────────────────────────────────────────── |
| 8 | # Domain you own. The compose creates Traefik routes for: |
| 9 | # ${BRIVEN_DOMAIN} — dashboard (web) |
| 10 | # api.${BRIVEN_DOMAIN} — control plane (api) |
| 11 | # realtime.${BRIVEN_DOMAIN} — realtime websocket/poll service |
| 12 | # docs.${BRIVEN_DOMAIN} — docs |
| 13 | # status.${BRIVEN_DOMAIN} — status page (same container as docs) |
| 14 | # s3.${BRIVEN_DOMAIN} — public MinIO S3 endpoint |
| 15 | BRIVEN_DOMAIN=briven.example.com |
| 16 | |
| 17 | # ─── Required secrets — 32+ chars each ────────────────────────────────── |
| 18 | BRIVEN_BETTER_AUTH_SECRET=__set_me__32_plus_chars__ |
| 19 | BRIVEN_AUDIT_IP_PEPPER=__set_me__32_plus_chars__ |
| 20 | BRIVEN_ENCRYPTION_KEY=__set_me__32_plus_chars__ |
| 21 | BRIVEN_RUNTIME_SHARED_SECRET=__set_me__32_plus_chars__ |
| 22 | |
| 23 | # ─── Database passwords (TWO engines, two passwords) ──────────────────── |
| 24 | # Control plane — stock Postgres (pgvector image). Holds users, orgs, |
| 25 | # projects, billing, secrets, auth. Used in BRIVEN_DATABASE_URL. |
| 26 | BRIVEN_POSTGRES_PASSWORD=__set_me_strong__ |
| 27 | |
| 28 | # Data plane — DoltGres (git-for-data, Postgres-wire). One database per |
| 29 | # customer project. Used in BRIVEN_DATA_PLANE_URL (api/runtime/realtime). |
| 30 | BRIVEN_DOLTGRES_PASSWORD=__set_me_strong__ |
| 31 | |
| 32 | # ─── Object storage (MinIO) ───────────────────────────────────────────── |
| 33 | # MinIO root password = the S3 secret key the api signs upload URLs with. |
| 34 | BRIVEN_MINIO_ROOT_PASSWORD=__set_me_strong__ |
| 35 | # Optional — bucket name + region (defaults shown). |
| 36 | # BRIVEN_MINIO_BUCKET=briven |
| 37 | # BRIVEN_MINIO_REGION=us-east-1 |
| 38 | |
| 39 | # ─── Data-plane backup ────────────────────────────────────────────────── |
| 40 | # How often the dolt-backup sidecar snapshots every DoltGres database into |
| 41 | # the doltgres_backups volume (seconds). Default = once a day. |
| 42 | # BRIVEN_BACKUP_INTERVAL_SECONDS=86400 |
| 43 | |
| 44 | # ─── mittera.eu transactional email (optional) ────────────────────────── |
| 45 | # API_URL + API_KEY are required for outbound POST /api/v1/emails (Bearer). |
| 46 | # WEBHOOK_SECRET only needed if mittera posts delivery/bounce events back. |
| 47 | # Until set, magic-link emails print to the api container stdout. |
| 48 | # Webhook URL to register on mittera: https://api.${BRIVEN_DOMAIN}/mittera-webhook |
| 49 | # BRIVEN_MITTERA_API_URL=https://api.mittera.eu |
| 50 | # BRIVEN_MITTERA_API_KEY=... |
| 51 | # BRIVEN_MITTERA_WEBHOOK_SECRET=whsec_... |
| 52 | |
| 53 | # ─── OAuth sign-in (all optional) ─────────────────────────────────────── |
| 54 | # Each provider's button only shows in the UI when its CLIENT_ID is set. |
| 55 | # Google: redirect URI https://api.${BRIVEN_DOMAIN}/v1/auth/callback/google |
| 56 | # BRIVEN_GOOGLE_CLIENT_ID=... |
| 57 | # BRIVEN_GOOGLE_CLIENT_SECRET=... |
| 58 | # BRIVEN_GITHUB_CLIENT_ID=... |
| 59 | # BRIVEN_GITHUB_CLIENT_SECRET=... |
| 60 | # BRIVEN_KONNOS_CLIENT_ID=... |
| 61 | # BRIVEN_KONNOS_CLIENT_SECRET=... |
| 62 | # BRIVEN_KONNOS_ISSUER=https://code.konnos.org |
| 63 | # BRIVEN_DISCORD_CLIENT_ID=... |
| 64 | # BRIVEN_DISCORD_CLIENT_SECRET=... |
| 65 | |
| 66 | # ─── In-platform LLM (optional, Ollama-compatible) ────────────────────── |
| 67 | # BRIVEN_OLLAMA_URL= |
| 68 | # BRIVEN_OLLAMA_API_KEY= |
| 69 | # BRIVEN_OLLAMA_MODEL=qwen2.5-coder:32b |
| 70 | |
| 71 | # ─── Billing (Polar — optional, skip for self-host) ───────────────────── |
| 72 | # BRIVEN_POLAR_ACCESS_TOKEN=... |
| 73 | # BRIVEN_POLAR_WEBHOOK_SECRET=... |
| 74 | # BRIVEN_POLAR_PRO_PRODUCT_ID=... |
| 75 | # BRIVEN_POLAR_TEAM_PRODUCT_ID=... |
| 76 | |
| 77 | # ─── Public open signups ──────────────────────────────────────────────── |
| 78 | # Default false = invite-only. Flip to true for a fully public instance. |
| 79 | BRIVEN_OPEN_SIGNUPS=false |