# ─── Backspace Configuration ──────────────────────────────── # Copy to .env and configure, or run ./install.sh to generate automatically. # Your server's public domain name (required) DOMAIN=example.com # ─── Server ───────────────────────────────────────────────── # Production/Docker listen port (Caddy reverse-proxies to it). Local development # ignores this and uses 3005 — the Vite dev proxy target — set by `pnpm dev`. PORT=3000 HOST=0.0.0.0 # Authentication — generate with: openssl rand -hex 32 JWT_SECRET= # Registration — set to false to close signups after initial setup REGISTRATION_OPEN=true # Max file upload size in bytes (default: 100MB) MAX_UPLOAD_SIZE=104857600 # ─── LiveKit Voice/Video ─────────────────────────────────── # To enable voice/video, fill in all three values below and add: # COMPOSE_PROFILES=voice # Leave empty to run Backspace without voice features. LIVEKIT_URL= LIVEKIT_API_KEY= LIVEKIT_API_SECRET= # ─── Desktop App (Electron) ─────────────────────────────── # Override the URL that the desktop app loads (auto-detects in dev/prod) # BACKSPACE_URL=https://my-instance.com # Auto-update server URL for electron-updater (optional) # BACKSPACE_UPDATE_URL=https://releases.example.com # ─── Docker Compose ──────────────────────────────────────── # Uncomment to enable the LiveKit service: # COMPOSE_PROFILES=voice # ─── Database Backups ────────────────────────────────────── # Automatic SQLite snapshots: pre-migration (always, when a migration is pending), # scheduled (every BACKUP_INTERVAL_HOURS), and manual (./backup.sh). Rotated per type. # BACKUP_DIR=./data/backups # default: /backups # BACKUP_INTERVAL_HOURS=24 # BACKUP_KEEP_SCHEDULED=7 # BACKUP_KEEP_PREMIGRATION=5 # BACKUP_KEEP_MANUAL=10 # Off-box replication hook — receives the new snapshot path as $1 (e.g. rclone/rsync/aws s3 cp): # BACKUP_OFFSITE_CMD= # BACKUP_DISABLED=false