78 lines
2.9 KiB
Plaintext
78 lines
2.9 KiB
Plaintext
# ==========================================
|
|
# 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_GRIDPILOT_MODE=alpha
|
|
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 |