DATABASE_PATH=/app/data/hub.db SESSION_SECRET=replace-with-a-long-random-secret TOKEN_ENCRYPTION_KEY=replace-with-64-hex-characters ADMIN_USERNAME=admin ADMIN_PASSWORD=change-me-before-first-start NEXT_PUBLIC_APP_URL=http://localhost:3000 UPLOAD_MAX_BYTES=10485760 UPLOAD_ALLOWED_TYPES=image/jpeg,image/png,image/gif,image/webp,application/pdf,text/plain,text/markdown # Optional HTTP scanner: POSTs a file and expects {"clean": true}. Set required to reject if unavailable. VIRUS_SCAN_URL= VIRUS_SCAN_REQUIRED=0 SYNC_INTERVAL_MINUTES=60 # Optional retention windows in days; 0 keeps data indefinitely. Expired unused invites are removed after 30 days. NOTIFICATION_RETENTION_DAYS=0 READING_HISTORY_RETENTION_DAYS=0 AUDIT_RETENTION_DAYS=365 # Optional Discord webhook URL or ntfy topic URL (for example https://ntfy.sh/my-private-topic). Failed sends retry up to 5 times. ALERT_WEBHOOK_URL= # Optional Bearer token for GET /api/metrics. Leave empty only when metrics are restricted by your network/proxy. METRICS_TOKEN= # Optional: create the first Memos source for the bootstrap admin. SEED_MEMOS_NAME= SEED_MEMOS_URL= SEED_MEMOS_TOKEN=