Files
moraworld/.env.example
T

91 lines
5.1 KiB
Bash

# ═══════════════════════════════════════════════════════════════
# Moraworld Imports — Variables de entorno para Coolify (producción)
# ═══════════════════════════════════════════════════════════════
# Copia este archivo a .env en Coolify → Project → Environment Variables
# ═══════════════════════════════════════════════════════════════
# ─── Base ──────────────────────────────────────────────────────
NODE_ENV=production
NEXT_PUBLIC_API_URL=https://api.tu-dominio.com
NEXT_PUBLIC_WS_URL=https://api.tu-dominio.com
# ─── Base de datos (Coolify managed PostgreSQL) ────────────────
# Coolify inyecta DATABASE_URL automáticamente si creas un servicio Postgres
# y lo enlazas al proyecto. Formato:
# postgresql://usuario:password@host:puerto/database?schema=imports
DATABASE_URL=postgresql://moraworld:supersecret@postgres:5432/moraworld?schema=imports
# ─── Redis (Coolify managed Redis) ────────────────────────────
# Coolify inyecta REDIS_URL automáticamente.
# redis://:password@host:puerto/db
REDIS_URL=redis://:supersecret@redis:6379/2
# ─── Auth / JWT ───────────────────────────────────────────────
# Genera con: openssl rand -base64 48
JWT_SECRET=tu-jwt-secret-base64-de-48-caracteres-minimo
JWT_REFRESH_SECRET=tu-refresh-secret-base64-distinto-del-de-arriba
AUDIT_HMAC_SECRET=tu-hmac-secret-para-auditoria-32-chars-min
# ─── CORS ──────────────────────────────────────────────────────
# URLs permitidas (separadas por coma, sin espacios al final)
CORS_ORIGINS=https://app.tu-dominio.com,https://www.tu-dominio.com
# ─── Almacenamiento S3 / MinIO (opcional — para fotos/facturas) ────
# Si no configuras S3_ENDPOINT, usa disco local (./uploads)
S3_ENDPOINT=https://s3.tu-proveedor.com
S3_ACCESS_KEY=minioadmin
S3_SECRET_KEY=minioadmin
S3_BUCKET=moraworld-imports
S3_REGION=us-east-1
S3_PUBLIC_URL=https://cdn.tu-dominio.com
# ─── Stripe (pagos — Checkout Session) ────────────────────────
STRIPE_WEBHOOK_SECRET=whsec_... # De Stripe Dashboard → Webhooks
# ─── Integraciones (claves se guardan en BD vía Admin → Integraciones) ──
# Estas NO van en .env; se configuran en la UI tras el primer deploy.
# Zeptomail, SENAE, Amazon SP-API, Twilio, WhatsApp Business, INEN, Couriers, etc.
# ─── Opcional: Worker / Cron ──────────────────────────────────
# ENABLE_WORKER=true
# CRON_SENAE_POLL=0 */30 * * * *
# ═══════════════════════════════════════════════════════════════
# NOTAS DE DESPLIEGUE EN COOLIFY
# ═══════════════════════════════════════════════════════════════
#
# 1. Crea un Project en Coolify → "New Resource" → "Docker Compose"
# Apunta a este repo, archivo: coolify-compose.yml
#
# 2. Añade servicios gestionados:
# - PostgreSQL 16 (nombre lógico: postgres)
# - Redis 7 (nombre lógico: redis)
# Coolify inyectará DATABASE_URL y REDIS_URL automáticamente.
#
# 3. En "Environment Variables" del proyecto, pega el contenido
# de este archivo (ajusta valores reales).
#
# 4. Dominios (Coolify → Project → Domains):
# - api.tu-dominio.com → servicio: api, puerto: 3001
# - app.tu-dominio.com → servicio: web, puerto: 3000
# - ws.tu-dominio.com → servicio: api, puerto: 3001 (WebSocket)
# Coolify genera certificados TLS automáticos (Let's Encrypt).
#
# 5. WebSocket: el gateway corre en /ws bajo el mismo puerto 3001.
# Configura el dominio ws.tu-dominio.com apuntando al servicio api.
#
# 6. Health checks:
# - API: GET /api/health
# - Web: GET /status
#
# 7. Primer deploy → entra a https://app.tu-dominio.com/admin/configuracion
# y guarda las claves de integración (Zeptomail, SENAE, Stripe, etc.).
#
# 8. Stripe Webhook URL en Dashboard:
# https://api.tu-dominio.com/api/payments/webhook?tenant=mi-tenant-slug
#
# 9. Para actualizar: push a main → Coolify auto-deploy (si configurado)
# o "Deploy" manual en la UI.
#
# ═══════════════════════════════════════════════════════════════