Files
MOPC-Portal/docker/.env.production
Matt 81db15333f Fix S3/SMTP connectivity and add one-click invite flow
- Fix MinIO port parsing bug: use protocol-appropriate defaults (443/80)
  instead of hardcoded 9000 fallback, enabling public URL endpoint
- Remove unused SMTP server config from NextAuth EmailProvider to prevent
  connection errors (sendVerificationRequest is fully overridden)
- Replace extra_hosts with DNS config (8.8.8.8) so container resolves
  mail.monaco-opc.com to public IP instead of host loopback
- Add invite token auth: single-click accept-invite flow replacing broken
  two-email invitation process
- Auto-send invitation emails on bulk user creation
- Update email template expiry text from 24 hours to 7 days

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 14:13:16 +01:00

70 lines
2.9 KiB
Plaintext

# =============================================================================
# MOPC Platform - Production Environment Variables
# =============================================================================
# Copy this file to docker/.env and fill in real values:
# cp docker/.env.production docker/.env
#
# Generate secrets with:
# openssl rand -base64 32
# =============================================================================
# DATABASE
# =============================================================================
DB_PASSWORD=CHANGE_ME_use_openssl_rand
# =============================================================================
# AUTHENTICATION (NextAuth.js / Auth.js)
# =============================================================================
NEXTAUTH_URL=https://portal.monaco-opc.com
NEXTAUTH_SECRET=CHANGE_ME_use_openssl_rand
# =============================================================================
# FILE STORAGE (MinIO - external stack)
# =============================================================================
# Use the public URL — nginx proxies to MinIO internally.
# The port parsing handles standard ports (443 for HTTPS, 80 for HTTP) automatically.
MINIO_ENDPOINT=https://s3.monaco-opc.com
# MINIO_PUBLIC_ENDPOINT is only needed if the internal endpoint differs from the public one.
# When using the public URL as MINIO_ENDPOINT, leave this empty or omit it.
# MINIO_PUBLIC_ENDPOINT=
MINIO_ACCESS_KEY=CHANGE_ME
MINIO_SECRET_KEY=CHANGE_ME
MINIO_BUCKET=mopc-files
# =============================================================================
# EMAIL (SMTP via Poste.io - external stack)
# =============================================================================
SMTP_HOST=localhost
SMTP_PORT=587
SMTP_USER=noreply@monaco-opc.com
SMTP_PASS=CHANGE_ME
EMAIL_FROM=MOPC Platform <noreply@monaco-opc.com>
# =============================================================================
# POSTE.IO ADMIN API (for email password management)
# =============================================================================
POSTE_API_URL=https://mail.monaco-opc.com
POSTE_ADMIN_EMAIL=admin@monaco-opc.com
POSTE_ADMIN_PASSWORD=CHANGE_ME
POSTE_MAIL_DOMAIN=monaco-opc.com
# =============================================================================
# AI (OpenAI - optional)
# =============================================================================
OPENAI_API_KEY=
OPENAI_MODEL=gpt-4o
# =============================================================================
# DOCKER REGISTRY (Gitea container registry)
# =============================================================================
# The Gitea registry URL where the CI pushes built images
# Example: gitea.example.com/your-org
REGISTRY_URL=code.letsbe.solutions/letsbe
# =============================================================================
# APPLICATION
# =============================================================================
MAX_FILE_SIZE=524288000