feat: initial commit - Moraworld Imports project
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
# Variables desde Coolify (Postgres + Redis externos)
|
||||
|
||||
Si Postgres y Redis ya están en Coolify, **no necesitas** `docker compose` para la BD. Solo pega las URLs en `.env` (local) y en cada app de Coolify (producción).
|
||||
|
||||
## Qué necesitamos que nos pases
|
||||
|
||||
Copia desde el panel de Coolify (o pega aquí en el chat) estos valores:
|
||||
|
||||
### PostgreSQL
|
||||
|
||||
| Variable | Ejemplo | Dónde está en Coolify |
|
||||
|----------|---------|------------------------|
|
||||
| Host | `postgres.tudominio.com` o IP interna | Servicio Postgres → Connection |
|
||||
| Puerto | `5432` | |
|
||||
| Usuario | `moraworld` | |
|
||||
| Contraseña | `***` | |
|
||||
| Base de datos | `moraworld` | Crear DB si no existe |
|
||||
|
||||
**Formato final en `.env`:**
|
||||
|
||||
```env
|
||||
DATABASE_URL="postgresql://USUARIO:CONTRASEÑA@HOST:5432/NOMBRE_BD?schema=moraworld"
|
||||
```
|
||||
|
||||
> En PostgreSQL 15+ el schema `public` a menudo no permite `CREATE` al usuario de la app. Usamos el schema **`moraworld`** (se crea automáticamente en el primer deploy si el usuario tiene permiso `CREATE SCHEMA`).
|
||||
|
||||
> Si la contraseña tiene caracteres especiales (`@`, `#`, `%`), hay que codificarlos en URL (encodeURIComponent).
|
||||
|
||||
### Redis
|
||||
|
||||
| Variable | Ejemplo |
|
||||
|----------|---------|
|
||||
| Host | `redis.tudominio.com` |
|
||||
| Puerto | `6379` (o `6380` con TLS) |
|
||||
| Contraseña | si aplica |
|
||||
|
||||
**Sin contraseña:**
|
||||
|
||||
```env
|
||||
REDIS_URL="redis://HOST:6379"
|
||||
```
|
||||
|
||||
**Con contraseña:**
|
||||
|
||||
```env
|
||||
REDIS_URL="redis://:CONTRASEÑA@HOST:6379"
|
||||
```
|
||||
|
||||
**Con TLS (rediss):**
|
||||
|
||||
```env
|
||||
REDIS_URL="rediss://:CONTRASEÑA@HOST:6380"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Dónde configurarlas
|
||||
|
||||
### Desarrollo en tu Mac (`.env` en la raíz)
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# Editar DATABASE_URL y REDIS_URL con los valores de Coolify
|
||||
```
|
||||
|
||||
Luego:
|
||||
|
||||
```bash
|
||||
pnpm db:generate
|
||||
npx pnpm exec prisma migrate deploy --schema=packages/database/prisma/schema.prisma
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
> Tu Mac debe poder **alcanzar** el host de Postgres/Redis (IP pública, túnel, o VPN). Si Coolify solo expone red interna, usa túnel SSH o el dominio público que Coolify asigne.
|
||||
|
||||
### Coolify — app API
|
||||
|
||||
```
|
||||
DATABASE_URL=postgresql://...
|
||||
REDIS_URL=redis://...
|
||||
API_PORT=3001
|
||||
JWT_SECRET=...
|
||||
CORS_ORIGINS=https://tu-web.com
|
||||
NODE_ENV=production
|
||||
```
|
||||
|
||||
### Coolify — app Web
|
||||
|
||||
```
|
||||
NEXT_PUBLIC_API_URL=https://api.tu-dominio.com
|
||||
PORT=3000
|
||||
NODE_ENV=production
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Migraciones contra Postgres en Coolify
|
||||
|
||||
Una vez tengas `DATABASE_URL` en `.env`:
|
||||
|
||||
```bash
|
||||
pnpm db:generate
|
||||
npx pnpm exec prisma migrate deploy --schema=packages/database/prisma/schema.prisma
|
||||
```
|
||||
|
||||
Esto crea las tablas en tu Postgres remoto (migración `20260520120000_init`).
|
||||
|
||||
---
|
||||
|
||||
## Redis en Fase 0
|
||||
|
||||
La API aún **no usa** Redis (colas BullMQ en Fase 6). Puedes dejar `REDIS_URL` configurado desde ya para no cambiar env después.
|
||||
|
||||
---
|
||||
|
||||
## Seguridad
|
||||
|
||||
- No subir `.env` a Git.
|
||||
- En Coolify usar "Secrets" del panel.
|
||||
- Rotar contraseñas si se compartieron en chat; luego actualizar `.env` y Coolify.
|
||||
Reference in New Issue
Block a user