Files
carmanagement/.env.docker.production.example
T
2026-06-02 12:53:45 -04:00

83 lines
4.7 KiB
Bash

# ── Traefik domains — used in docker-compose labels ──────────────────────────
ACME_EMAIL=ops@example.com
API_DOMAIN=api.example.com
PUBLIC_SITE_DOMAIN=example.com
PGMANAGE_DOMAIN=pgmanage.example.com
PORTAINER_DOMAIN=portainer.example.com
# ── Optional prebuilt image source ────────────────────────────────────────────
# Used for pull-based deployments. CI injects APP_IMAGE and APP_VERSION
# automatically during registry-backed deploys, so these can stay commented out.
# APP_IMAGE=registry.example.com/rentaldrivego/car_management_system
# APP_VERSION=latest
# ── Database ──────────────────────────────────────────────────────────────────
# Full connection URL (used when DATABASE_URL_FROM_POSTGRES=false)
DATABASE_URL=postgresql://postgres:change-me@postgres:5432/rentaldrivego
# Build the URL from individual vars (set to true to use POSTGRES_* vars below)
DATABASE_URL_FROM_POSTGRES=true
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DB=rentaldrivego
POSTGRES_USER=postgres
POSTGRES_PASSWORD=change-me
# ── Cache ─────────────────────────────────────────────────────────────────────
REDIS_URL=redis://redis:6379
# ── API ───────────────────────────────────────────────────────────────────────
API_PORT=4000
# SSR server-side calls go via the internal Docker network
API_INTERNAL_URL=http://api:4000/api/v1
# Public-facing API URL visible to browsers — MUST be your real domain, not localhost
API_URL=https://api.example.com
# Baked into Next.js bundles at build time — MUST be set before running `npm run build`
NEXT_PUBLIC_API_URL=https://api.example.com/api/v1
# ── Frontend public URLs ──────────────────────────────────────────────────────
# Marketplace sits at the domain root (Traefik routes /dashboard and /admin to their apps)
NEXT_PUBLIC_MARKETING_URL=https://example.com
NEXT_PUBLIC_MARKETPLACE_URL=https://example.com
NEXT_PUBLIC_DASHBOARD_URL=https://example.com/dashboard
NEXT_PUBLIC_ADMIN_URL=https://example.com/admin
NEXT_PUBLIC_PUBLIC_SITE_DOMAIN=example.com
DASHBOARD_URL=https://example.com/dashboard
ADMIN_URL=https://example.com/admin
# ── CORS ──────────────────────────────────────────────────────────────────────
# Comma-separated list of allowed browser origins. REQUIRED in production.
CORS_ORIGINS=https://example.com,https://www.example.com
# ── Auth ──────────────────────────────────────────────────────────────────────
JWT_SECRET=replace-with-a-long-random-secret
JWT_EXPIRY=8h
RENTER_JWT_EXPIRY=7d
NODE_ENV=production
# ── Email ─────────────────────────────────────────────────────────────────────
EMAIL_FROM=noreply@example.com
EMAIL_FROM_NAME=RentalDriveGo
# Option A — Resend
#RESEND_API_KEY=re_xxxxxxxxxxxxxxxxxxxx
# Option B — SMTP (Gmail)
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_SCHEME=smtp
MAIL_USERNAME=your-smtp-user@example.com
MAIL_PASSWORD=replace-with-an-app-password
MAIL_FROM_ADDRESS=noreply@example.com
MAIL_FROM_NAME=RentalDriveGo
MAIL_REPLY_TO_ADDRESS=support@example.com
MAIL_REPLY_TO_NAME=RentalDriveGo
# ── Firebase push notifications (optional) ────────────────────────────────────
# FIREBASE_PROJECT_ID=your-firebase-project-id
# FIREBASE_CLIENT_EMAIL=firebase-adminsdk@your-project.iam.gserviceaccount.com
# FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
# ── Twilio SMS / WhatsApp (optional) ─────────────────────────────────────────
# TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# TWILIO_AUTH_TOKEN=your_auth_token
# TWILIO_PHONE_NUMBER=+1234567890
# TWILIO_WHATSAPP_NUMBER=+1234567890