# ═══════════════════════════════════════════════════════════════ # 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. # # ═══════════════════════════════════════════════════════════════