# Public hostname (no scheme) and full origin. Everything (UI, /api, /ws) is served from this one host. FRONTEND_HOST=multica.example.com FRONTEND_ORIGIN=https://multica.example.com # Optional: public API URL used for webhook URLs and daemon setup commands. Same host works. MULTICA_PUBLIC_URL=https://multica.example.com TRAEFIK_NETWORK=traefik # Host port (loopback only) for the local agent daemon: multica setup self-host --server-url http://localhost: BACKEND_HOST_PORT=8090 # Required. Generate with `openssl rand -hex 32` JWT_SECRET= # Database POSTGRES_USER=multica # Must be URL-safe (it's embedded in DATABASE_URL) — use `openssl rand -hex 24`, not base64 POSTGRES_PASSWORD= POSTGRES_DATA_DIR=./data/postgres # Attachment storage (used when S3 is not configured) UPLOADS_DATA_DIR=./data/uploads # Self-hosted Git integration (Forgejo/Gitea/GitLab). Generate with `openssl rand -base64 32` MULTICA_VCS_SECRET_KEY= # Email for login codes — configure Resend OR SMTP (SMTP wins if SMTP_HOST is set). # Without either, login codes are only printed to the backend logs. RESEND_API_KEY= RESEND_FROM_EMAIL=noreply@example.com SMTP_HOST= SMTP_PORT=587 SMTP_USERNAME= SMTP_PASSWORD= SMTP_FROM_EMAIL= # starttls (default) or implicit (port 465) SMTP_TLS= # Optional Google login GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= # Access control ALLOW_SIGNUP=true ALLOWED_EMAILS= ALLOWED_EMAIL_DOMAINS= # Set true after creating your workspace to force invite-only DISABLE_WORKSPACE_CREATION=false # Set to 1 to disable the anonymous daily telemetry ping DO_NOT_TRACK=