Barazo Docker Compose templates for self-hosting barazo.forum
at main 97 lines 4.7 kB view raw view rendered
1# Configuration Reference 2 3All Barazo environment variables with descriptions, defaults, and examples. 4 5## Community Identity 6 7| Variable | Required | Default | Description | 8|----------|----------|---------|-------------| 9| `COMMUNITY_NAME` | Yes | `"My Community"` | Display name for your forum | 10| `COMMUNITY_DOMAIN` | Yes | -- | Domain name (e.g., `forum.example.com`). Used by Caddy for SSL. | 11| `COMMUNITY_DID` | No | -- | AT Protocol DID. Created automatically during first setup. | 12| `COMMUNITY_MODE` | No | `single` | `single` for one community, `global` for aggregator mode | 13| `HOSTING_MODE` | No | `selfhosted` | `selfhosted`, `saas` | 14 15## Database (PostgreSQL) 16 17| Variable | Required | Default | Description | 18|----------|----------|---------|-------------| 19| `POSTGRES_USER` | Yes | -- | PostgreSQL superuser name | 20| `POSTGRES_PASSWORD` | Yes | -- | PostgreSQL superuser password | 21| `POSTGRES_DB` | Yes | -- | Database name | 22| `POSTGRES_PORT` | No | `5432` | Host port mapping (dev compose only) | 23| `DATABASE_URL` | Yes | -- | Connection string for the API. Format: `postgresql://user:pass@postgres:5432/dbname` | 24| `MIGRATION_DATABASE_URL` | No | -- | Connection string for schema changes (DDL role, if using role separation). Reserved for beta -- not used in alpha. | 25 26## Cache (Valkey) 27 28| Variable | Required | Default | Description | 29|----------|----------|---------|-------------| 30| `VALKEY_PASSWORD` | Prod: Yes | -- | Valkey authentication password. Dangerous commands are disabled. | 31| `VALKEY_PORT` | No | `6379` | Host port mapping (dev compose only) | 32| `VALKEY_URL` | No | Auto | Connection URL for the API. Auto-constructed in compose. | 33 34## AT Protocol 35 36| Variable | Required | Default | Description | 37|----------|----------|---------|-------------| 38| `RELAY_URL` | No | `wss://bsky.network` | Bluesky relay URL for firehose | 39| `TAP_ADMIN_PASSWORD` | Yes | -- | Tap admin API password | 40| `TAP_PORT` | No | `2480` | Host port mapping (dev compose only) | 41| `OAUTH_CLIENT_ID` | Yes | -- | Your forum's public URL (e.g., `https://forum.example.com`) | 42| `OAUTH_REDIRECT_URI` | Yes | -- | OAuth callback URL (e.g., `https://forum.example.com/api/auth/callback`) | 43 44## Frontend 45 46| Variable | Required | Default | Description | 47|----------|----------|---------|-------------| 48| `API_INTERNAL_URL` | No | `http://localhost:3000` | Internal API URL for server-side rendering. Set to `http://barazo-api:3000` in Docker. | 49| `NEXT_PUBLIC_SITE_URL` | Yes | -- | Public site URL (e.g., `https://forum.example.com`) | 50 51## Image Versions 52 53| Variable | Required | Default | Description | 54|----------|----------|---------|-------------| 55| `BARAZO_API_VERSION` | No | `latest` | API Docker image tag. Pin to a specific version in production (e.g., `1.2.3`). | 56| `BARAZO_WEB_VERSION` | No | `latest` | Web Docker image tag. Pin to a specific version in production. | 57 58## Search 59 60| Variable | Required | Default | Description | 61|----------|----------|---------|-------------| 62| `EMBEDDING_URL` | No | -- | Enables hybrid semantic search. Example: `http://ollama:11434/api/embeddings` | 63| `AI_EMBEDDING_DIMENSIONS` | No | `768` | Vector dimensions (must match your embedding model) | 64 65## Encryption 66 67| Variable | Required | Default | Description | 68|----------|----------|---------|-------------| 69| `AI_ENCRYPTION_KEY` | Conditional | -- | AES-256-GCM key for encrypting BYOK API keys at rest. Required if BYOK features are used. Generate: `openssl rand -base64 32` | 70 71## Cross-Posting 72 73| Variable | Required | Default | Description | 74|----------|----------|---------|-------------| 75| `FEATURE_CROSSPOST_FRONTPAGE` | No | `false` | Enable Frontpage cross-posting (Bluesky cross-posting is always available) | 76 77## Plugins 78 79| Variable | Required | Default | Description | 80|----------|----------|---------|-------------| 81| `PLUGINS_ENABLED` | No | `true` | Set to `false` to disable all plugins | 82| `PLUGIN_REGISTRY_URL` | No | `https://registry.npmjs.org` | npm registry URL for plugin installation | 83 84## Monitoring 85 86| Variable | Required | Default | Description | 87|----------|----------|---------|-------------| 88| `GLITCHTIP_DSN` | No | -- | GlitchTip/Sentry DSN for error reporting | 89| `LOG_LEVEL` | No | `info` | Pino log level: `trace`, `debug`, `info`, `warn`, `error`, `fatal` | 90 91## Backups 92 93| Variable | Required | Default | Description | 94|----------|----------|---------|-------------| 95| `BACKUP_PUBLIC_KEY` | No | -- | age public key for encrypting backups. Generate: `age-keygen -o key.txt` | 96| `BACKUP_DIR` | No | `./backups` | Directory for backup files | 97| `BACKUP_RETAIN_DAYS` | No | `7` | Days to keep old backups before cleanup |