# Despliegue **Versión:** 1.0 **Estado:** Definición --- ## Stack Tecnológico | Componente | Tecnología | |------------|------------| | Contenedores | Docker + Docker Compose | | Base de datos | PostgreSQL | | Cache | Redis | | Proxy | Caddy | | Orquestación | Windmill | --- ## Docker Compose Base ```yaml version: '3.8' services: postgres: image: postgres:15 environment: POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: ${DB_NAME} volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine volumes: - redis_data:/data caddy: image: caddy:2-alpine ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy_data:/data volumes: postgres_data: redis_data: caddy_data: ``` --- ## Checklist de Despliegue ### Pre-despliegue - [ ] Servidor aprovisionado - [ ] DNS configurado - [ ] Secretos en Infisical - [ ] Backup de datos existentes ### Despliegue - [ ] Clonar repositorio - [ ] Copiar .env desde Infisical - [ ] `docker-compose up -d` - [ ] Verificar healthchecks - [ ] Aplicar schemas SQL ### Post-despliegue - [ ] Verificar servicios - [ ] Configurar backups - [ ] Test de endpoints - [ ] Documentar IPs y puertos --- ## Variables de Entorno ```bash # Base de datos DB_HOST=localhost DB_PORT=5432 DB_USER=tzzr DB_PASSWORD=**** DB_NAME=tzzr # Redis REDIS_URL=redis://localhost:6379 # R2 Storage R2_ENDPOINT=https://{account}.r2.cloudflarestorage.com R2_ACCESS_KEY=**** R2_SECRET_KEY=**** R2_BUCKET=**** # Servicios externos ANTHROPIC_API_KEY=**** RUNPOD_API_KEY=**** ``` --- ## Rollback ```bash # Parar servicios docker-compose down # Restaurar backup pg_restore -U tzzr -d tzzr backup.dump # Volver a versión anterior git checkout {commit_anterior} docker-compose up -d ```