Barazo Docker Compose templates for self-hosting barazo.forum
at main 147 lines 5.7 kB view raw
1# Barazo Environment Configuration 2# 3# Copy this file to .env (production) or .env.dev (development) and edit values. 4# Lines starting with # are comments. Uncomment to override defaults. 5# 6# SECURITY: Never commit .env files containing real secrets. 7 8# ============================================================================== 9# Community Identity 10# ============================================================================== 11 12# Display name for your forum community 13COMMUNITY_NAME="My Community" 14 15# Domain where your forum is hosted (used by Caddy for SSL) 16# COMMUNITY_DOMAIN="forum.example.com" 17 18# AT Protocol DID for your community (created during setup) 19# COMMUNITY_DID="did:plc:xxxx" 20 21# Deployment mode: "single" for one community, "global" for aggregator 22COMMUNITY_MODE="single" 23 24# Hosting mode: "selfhosted" (full admin control) or "saas" (platform fields immutable) 25HOSTING_MODE="selfhosted" 26 27# ============================================================================== 28# Database (PostgreSQL 16 + pgvector) 29# ============================================================================== 30 31# PostgreSQL superuser credentials (used to create the database) 32POSTGRES_USER="barazo" 33POSTGRES_PASSWORD="CHANGE_ME" 34POSTGRES_DB="barazo" 35 36# Host port mapping (change if 5432 is already in use) 37# POSTGRES_PORT="5432" 38 39# Application database URL (used by barazo-api) 40# Uses the application role with INSERT/UPDATE/DELETE/SELECT privileges 41DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}" 42 43# Migration database URL (reserved for beta -- not used in alpha) 44# Will use a migration role with DDL privileges when proper migrations are needed 45# MIGRATION_DATABASE_URL="postgresql://barazo_migrator:CHANGE_ME@postgres:5432/${POSTGRES_DB}" 46 47# ============================================================================== 48# Cache (Valkey -- Redis-compatible) 49# ============================================================================== 50 51# Valkey password (optional in dev, required in production) 52# VALKEY_PASSWORD="CHANGE_ME" 53 54# Host port mapping (change if 6379 is already in use) 55# VALKEY_PORT="6379" 56 57# Cache URL (used by barazo-api) 58VALKEY_URL="redis://valkey:6379" 59 60# ============================================================================== 61# AT Protocol (Firehose via Tap) 62# ============================================================================== 63 64# Relay URL for the AT Protocol firehose 65TAP_RELAY_URL="https://bsky.network" 66 67# Host port mapping for Tap admin API (change if 2480 is already in use) 68# TAP_PORT="2480" 69 70# Tap admin password (for dev/debug access to Tap admin API) 71TAP_ADMIN_PASSWORD="tap_dev_secret" 72 73# ============================================================================== 74# AT Protocol (OAuth) 75# ============================================================================== 76 77# OAuth client ID (your forum's public URL) 78# OAUTH_CLIENT_ID="https://forum.example.com" 79 80# OAuth callback URL 81# OAUTH_REDIRECT_URI="https://forum.example.com/api/auth/callback" 82 83# ============================================================================== 84# Frontend (Next.js) 85# ============================================================================== 86 87# Internal API URL for server-side rendering (Docker service name) 88# Only needed if the default (http://localhost:3000) doesn't work in your setup 89# API_INTERNAL_URL="http://barazo-api:3000" 90 91# Public site URL 92# NEXT_PUBLIC_SITE_URL="https://forum.example.com" 93 94# ============================================================================== 95# Search (Optional Semantic Search) 96# ============================================================================== 97 98# When set, enables hybrid semantic search alongside full-text search. 99# Example: "http://ollama:11434/api/embeddings" for local Ollama 100# EMBEDDING_URL="" 101 102# Embedding vector dimensions (must match your model; default matches nomic-embed-text) 103# AI_EMBEDDING_DIMENSIONS="768" 104 105# ============================================================================== 106# Encryption 107# ============================================================================== 108 109# AES-256-GCM master key for encrypting BYOK API keys at rest. 110# Required if users will store their own AI provider keys. 111# Generate with: openssl rand -base64 32 112# AI_ENCRYPTION_KEY="" 113 114# ============================================================================== 115# Cross-Posting 116# ============================================================================== 117 118# Enable Frontpage cross-posting (Bluesky cross-posting is always available) 119# FEATURE_CROSSPOST_FRONTPAGE="false" 120 121# ============================================================================== 122# Plugins 123# ============================================================================== 124 125# Set to "false" to disable all plugins 126# PLUGINS_ENABLED="true" 127 128# npm registry URL for plugin installation (default: public npm registry) 129# PLUGIN_REGISTRY_URL="https://registry.npmjs.org" 130 131# ============================================================================== 132# Monitoring 133# ============================================================================== 134 135# GlitchTip/Sentry DSN for error reporting (optional) 136# GLITCHTIP_DSN="" 137 138# Log level: trace, debug, info, warn, error, fatal 139LOG_LEVEL="info" 140 141# ============================================================================== 142# Backups (Production only) 143# ============================================================================== 144 145# Public key for encrypting backups with age (recommended over GPG) 146# Generate a keypair with: age-keygen -o key.txt 147# BACKUP_PUBLIC_KEY=""