- Update vision, architecture and technical documentation - Update module definitions (PMC-001 to PMC-008) - Update requirements documentation - Add CONTEXT-MAP.yml and ENVIRONMENT-INVENTORY.yml - Add orchestration guidelines and references 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7.7 KiB
7.7 KiB
| id | title | type | status | project | version | created_date | updated_date |
|---|---|---|---|---|---|---|---|
| GUIA-SETUP | Guía de Setup del Proyecto | Guide | Active | platform_marketing_content | 1.0.0 | 2026-01-04 | 2026-01-04 |
Guía de Setup del Proyecto
Versión: 1.0.0 Fecha: 2025-12-08 Proyecto: Platform Marketing Content
Requisitos Previos
Software Requerido
| Software | Versión Mínima | Propósito |
|---|---|---|
| Node.js | 18.x | Runtime |
| npm/pnpm | 9.x/8.x | Package manager |
| PostgreSQL | 15.x | Base de datos |
| Redis | 7.x | Cache y colas |
| Docker | 24.x | Contenedores |
| Docker Compose | 2.x | Orquestación local |
Hardware Recomendado (Desarrollo)
| Componente | Mínimo | Recomendado |
|---|---|---|
| RAM | 8 GB | 16 GB |
| CPU | 4 cores | 8 cores |
| Storage | 20 GB libre | SSD 50 GB |
| GPU (para ComfyUI) | - | NVIDIA 8GB VRAM |
Instalación Rápida con Docker
1. Clonar Repositorio
git clone <repo-url> platform_marketing_content
cd platform_marketing_content
2. Configurar Variables de Entorno
cp .env.example .env
# Editar .env con valores apropiados
3. Levantar Servicios con Docker Compose
docker-compose up -d
Esto levanta:
- PostgreSQL en puerto 5432
- Redis en puerto 6379
- MinIO (S3) en puerto 9000
- n8n en puerto 5678
4. Verificar Servicios
docker-compose ps
Instalación Manual (Desarrollo)
1. Base de Datos
# Crear base de datos
createdb pmc
# Crear usuario
psql -c "CREATE USER pmc_user WITH PASSWORD 'secret';"
psql -c "GRANT ALL PRIVILEGES ON DATABASE pmc TO pmc_user;"
# Crear schemas
psql -d pmc -f scripts/init-schemas.sql
2. Backend
cd apps/backend
# Instalar dependencias
npm install
# Copiar configuración
cp .env.example .env
# Ejecutar migraciones
npm run migration:run
# Ejecutar seeds (datos iniciales)
npm run seed
# Iniciar en modo desarrollo
npm run start:dev
3. Frontend
cd apps/frontend
# Instalar dependencias
npm install
# Copiar configuración
cp .env.example .env
# Iniciar en modo desarrollo
npm run dev
4. ComfyUI (Opcional)
# Clonar ComfyUI
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
# Instalar dependencias
pip install -r requirements.txt
# Descargar modelos (SDXL)
# Seguir instrucciones de ComfyUI para modelos
# Iniciar ComfyUI
python main.py --listen 0.0.0.0
Estructura de Variables de Entorno
Backend (.env)
# ===================
# APPLICATION
# ===================
NODE_ENV=development
PORT=3000
API_PREFIX=api/v1
CORS_ORIGINS=http://localhost:5173
# ===================
# DATABASE
# ===================
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_NAME=pmc
DATABASE_USER=pmc_user
DATABASE_PASSWORD=secret
DATABASE_SSL=false
DATABASE_LOGGING=true
# ===================
# REDIS
# ===================
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
# ===================
# AUTHENTICATION
# ===================
JWT_SECRET=your-super-secret-key-change-in-production
JWT_EXPIRES_IN=1d
JWT_REFRESH_EXPIRES_IN=7d
# ===================
# STORAGE (S3/MinIO)
# ===================
S3_ENDPOINT=http://localhost:9000
S3_ACCESS_KEY=minioadmin
S3_SECRET_KEY=minioadmin
S3_BUCKET=pmc-assets
S3_REGION=us-east-1
S3_USE_SSL=false
# ===================
# COMFYUI
# ===================
COMFYUI_URL=http://localhost:8188
COMFYUI_WEBHOOK_URL=http://localhost:3000/api/v1/generation/webhook
COMFYUI_WEBHOOK_SECRET=comfyui-webhook-secret
# ===================
# AI SERVICES
# ===================
OPENAI_API_KEY=sk-your-api-key
OPENAI_MODEL=gpt-4
# ===================
# N8N
# ===================
N8N_URL=http://localhost:5678
N8N_API_KEY=your-n8n-api-key
# ===================
# EMAIL
# ===================
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM=noreply@example.com
Frontend (.env)
VITE_API_URL=http://localhost:3000/api/v1
VITE_WS_URL=ws://localhost:3000
VITE_APP_NAME=Platform Marketing Content
Docker Compose
docker-compose.yml
version: '3.8'
services:
postgres:
image: postgres:15
container_name: pmc-postgres
environment:
POSTGRES_DB: pmc
POSTGRES_USER: pmc_user
POSTGRES_PASSWORD: secret
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./scripts/init-schemas.sql:/docker-entrypoint-initdb.d/01-schemas.sql
redis:
image: redis:7-alpine
container_name: pmc-redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
minio:
image: minio/minio
container_name: pmc-minio
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
ports:
- "9000:9000"
- "9001:9001"
volumes:
- minio_data:/data
n8n:
image: n8nio/n8n
container_name: pmc-n8n
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=admin
ports:
- "5678:5678"
volumes:
- n8n_data:/home/node/.n8n
volumes:
postgres_data:
redis_data:
minio_data:
n8n_data:
Scripts Útiles
Package.json (Backend)
{
"scripts": {
"start": "node dist/main",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"build": "nest build",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:e2e": "jest --config ./test/jest-e2e.json",
"migration:generate": "typeorm migration:generate -d src/config/data-source.ts",
"migration:run": "typeorm migration:run -d src/config/data-source.ts",
"migration:revert": "typeorm migration:revert -d src/config/data-source.ts",
"seed": "ts-node src/seeds/run-seeds.ts",
"lint": "eslint \"{src,test}/**/*.ts\" --fix",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\""
}
}
Verificación de Instalación
1. Verificar Backend
curl http://localhost:3000/api/v1/health
# Response: { "status": "ok", "timestamp": "..." }
2. Verificar Frontend
# Abrir navegador en http://localhost:5173
# Debería mostrar página de login
3. Verificar PostgreSQL
psql -h localhost -U pmc_user -d pmc -c "SELECT 1;"
4. Verificar Redis
redis-cli ping
# Response: PONG
5. Verificar MinIO
# Abrir navegador en http://localhost:9001
# Login: minioadmin / minioadmin
Datos Iniciales (Seeds)
El comando npm run seed crea:
- Plan "Internal" - Sin límites para uso interno
- Tenant inicial - "Agencia Demo"
- Usuario Super Admin - admin@example.com / Admin123!
- Roles de sistema - super_admin, tenant_admin, creative, analyst, viewer
- Workflows de generación - product_photo, social_post, variations
Troubleshooting
Error: "ECONNREFUSED" a PostgreSQL
# Verificar que PostgreSQL está corriendo
docker-compose ps postgres
# O si es local
pg_isready -h localhost -p 5432
Error: "Redis connection refused"
# Verificar Redis
docker-compose logs redis
redis-cli ping
Error: "Cannot find module"
# Reinstalar dependencias
rm -rf node_modules
npm install
Error: Migraciones fallan
# Verificar conexión a BD
npm run typeorm query "SELECT 1"
# Ejecutar migraciones paso a paso
npm run migration:run -- --verbose
Referencias
Documento generado por: Requirements-Analyst Fecha: 2025-12-08