# ========================================== # GridPilot Production Environment # ========================================== # Used by `docker-compose.prod.yml` via `env_file: .env.production`. # # Security: # - Do NOT commit real secrets (use a secret manager / CI vars). # - Replace all `CHANGE_ME_...` values before deploying. # ------------------------------------------ # Runtime # ------------------------------------------ NODE_ENV=production NEXT_TELEMETRY_DISABLED=1 # ------------------------------------------ # API (NestJS) # ------------------------------------------ # Controls whether the API uses Postgres or runs in-memory. # Values: `postgres` | `inmemory` GRIDPILOT_API_PERSISTENCE=postgres # Optional: bootstrap demo data (default: true) # GRIDPILOT_API_BOOTSTRAP=true # Database connection for the API (preferred: single URL) DATABASE_URL=postgres://gridpilot_user:CHANGE_ME_IN_PRODUCTION@db:5432/gridpilot_prod # Postgres container vars (used by `docker-compose.prod.yml` -> `db` service) POSTGRES_DB=gridpilot_prod POSTGRES_USER=gridpilot_user POSTGRES_PASSWORD=CHANGE_ME_IN_PRODUCTION # ------------------------------------------ # Redis container vars (used by `docker-compose.prod.yml` -> `redis` service) # ------------------------------------------ REDIS_PASSWORD=CHANGE_ME_IN_PRODUCTION # ------------------------------------------ # Website (Next.js) - public (exposed to browser) # ------------------------------------------ NEXT_PUBLIC_SITE_URL=https://your-domain.com # Browser → API base URL. # If nginx proxies `/api` to the API service, this is typically: # https://your-domain.com/api NEXT_PUBLIC_API_BASE_URL=https://your-domain.com/api # Optional links / metadata (defaults used when unset) NEXT_PUBLIC_DISCORD_URL=https://discord.gg/your-invite-code NEXT_PUBLIC_X_URL=https://x.com/your-handle # NEXT_PUBLIC_SITE_NAME=GridPilot # NEXT_PUBLIC_SUPPORT_EMAIL=support@your-domain.com # NEXT_PUBLIC_SPONSOR_EMAIL=sponsors@your-domain.com # NEXT_PUBLIC_LEGAL_COMPANY_NAME=Your Company GmbH # NEXT_PUBLIC_LEGAL_VAT_ID=DE123456789 # NEXT_PUBLIC_LEGAL_REGISTERED_COUNTRY=DE # NEXT_PUBLIC_LEGAL_REGISTERED_ADDRESS=Street 1, 12345 City # ------------------------------------------ # Website (Next.js) - server (NOT exposed to browser) # ------------------------------------------ # SSR/server-to-server base URL inside Docker network API_BASE_URL=http://api:3000 # Vercel KV (required for email signup storage/rate limit in production) KV_REST_API_URL=https://your-kv-rest-api-url.vercel-storage.com KV_REST_API_TOKEN=CHANGE_ME_IN_PRODUCTION # ------------------------------------------ # Automation / Companion (advanced) # ------------------------------------------ # NOTE: `AUTOMATION_MODE` is deprecated (see `getAutomationMode()` in adapters). # AUTOMATION_MODE=production AUTOMATION_TIMEOUT=30000 RETRY_ATTEMPTS=3 SCREENSHOT_ON_ERROR=false