# ── API server ──────────────────────────────────────────────────────────────── # Public-facing URL of the server. Used for CORS/WebSocket origin checks, # email links, and OG image URLs. Behind a reverse proxy, set this to the # externally-visible URL with no trailing slash (e.g. https://example.com). # Defaults to http://localhost:GERBEUR_PORT for local development. # GERBEUR_PUBLIC_URL=https://example.com # Site name shown in the browser tab, app header, OG meta tags, and emails. GERBEUR_SITE_NAME=gerbeur # Port the API server listens on (the container's internal port). GERBEUR_PORT=8000 # Network interface Oak binds to. Default: 0.0.0.0 (all interfaces, required for Docker). # Set to 127.0.0.1 to restrict to loopback only. GERBEUR_LISTEN_HOST=0.0.0.0 # Base URL of the frontend, used in email links (e.g. password reset) and # automatically added to the CORS/WebSocket allowed-origins list. # Defaults to GERBEUR_PUBLIC_URL — correct for single-container deployments. # In prod with a separate frontend host, set this to the frontend origin; that # is the only variable you need for that case (no GERBEUR_ALLOWED_ORIGINS entry required). # Example: https://app.example.com # GERBEUR_FRONTEND_URL= # Comma-separated list of *extra* origins allowed to reach the API/WS. # GERBEUR_PUBLIC_URL and GERBEUR_FRONTEND_URL are always included automatically. # Typically only needed in dev to whitelist the Vite dev server. # Defaults to empty (no extra origins). # Example: http://localhost:3000,http://127.0.0.1:3000 GERBEUR_ALLOWED_ORIGINS=http://localhost:3000,http://127.0.0.1:3000 # Secret key used to sign JWTs. Generate with: openssl rand -hex 32 GERBEUR_JWT_SECRET= # SMTP connection URL used by the email service (notifications, invites, etc.) # Example: smtps://username:password@smtp.example.com:465 GERBEUR_SMTPS_URL= # Sender address used in outgoing emails (e.g. no-reply@example.com) # Required when GERBEUR_SMTPS_URL is set. GERBEUR_FROM_EMAIL= # Markdown body for the account creation welcome email. # Supports {{username}} and {{site_name}} placeholders. # Defaults to a built-in template when unset. # Use \n for line breaks in single-line .env values, or use a quoted multiline block. GERBEUR_WELCOME_EMAIL_BODY="# Welcome to {{site_name}}!\n\nHi **{{username}}**,\n\nYour account has been created successfully. Welcome aboard!" # ── Frontend (Vite) ─────────────────────────────────────────────────────────── # These must be prefixed with VITE_ to be exposed to the client bundle. # Only needed when the API runs on a different host/port than the frontend. # In standard dev (API on :8000, Vite on :3000) these are not required — # the frontend automatically uses http://localhost:8000 in dev mode. # In prod (single container) they are not used — the frontend uses relative URLs. # Only set these when deploying the API and frontend on separate hosts. # VITE_API_PROTOCOL=https # VITE_API_HOSTNAME=api.example.com # VITE_API_PORT=443