220 lines
4.3 KiB
Markdown
220 lines
4.3 KiB
Markdown
# 🚀 Despliegue RSS2 - 3 Comandos Simples
|
|
|
|
## ⚡ Flujo Rápido (3 pasos)
|
|
|
|
```bash
|
|
# 1. Generar credenciales seguras
|
|
./generate_secure_credentials.sh --force
|
|
|
|
# 2. Desplegar
|
|
docker compose up -d
|
|
|
|
# 3. Verificar
|
|
docker compose ps
|
|
```
|
|
|
|
**¡Listo!** La aplicación estará disponible en `http://localhost:8888`
|
|
|
|
---
|
|
|
|
## 🔐 ¿Por qué 3 pasos?
|
|
|
|
**Problema original:**
|
|
```bash
|
|
docker compose up -d
|
|
WARN: DB_PASS no definida → Contraseña vacía → ¡Inseguro!
|
|
```
|
|
|
|
**Solución:**
|
|
1. `./generate_secure_credentials.sh --force` → Crea `.env` con contraseñas de 32 caracteres
|
|
2. `docker compose up -d` → Docker carga `.env` automáticamente
|
|
3. `docker compose ps` → Verifica que todo esté bien
|
|
|
|
---
|
|
|
|
## 📋 Qué hace cada comando
|
|
|
|
### 1. `./generate_secure_credentials.sh --force`
|
|
|
|
- Crea contraseñas seguras de 32 caracteres aleatorios
|
|
- Genera archivo `.env` con todas las variables necesarias
|
|
- Guarda backup del `.env` anterior
|
|
- **Tiempo: 5 segundos**
|
|
|
|
**Salida:**
|
|
```
|
|
POSTGRES_PASSWORD: S5xwsI9HKjdaBWLpCkqp0mA0DJYZerpD
|
|
REDIS_PASSWORD: cVF79QuJulPO5auEhA2nNqv7mqAruzYh
|
|
SECRET_KEY: 2eb7c221245bb8d896f83255188de614e59fae6b8dfbf16eee8a23c60dde4ffa
|
|
GRAFANA_PASSWORD: R4J61V6OGLTCesrITwEvUPTm
|
|
```
|
|
|
|
### 2. `docker compose up -d`
|
|
|
|
- Lee `.env` automáticamente (está configurado en `docker-compose.yml`)
|
|
- Inicia todos los servicios en modo detached (background)
|
|
- Espera a que estén listos
|
|
- **Tiempo: 2-5 minutos** (primera vez que descarga imágenes)
|
|
|
|
### 3. `docker compose ps`
|
|
|
|
- Muestra estado de todos los servicios
|
|
- Deberías ver `Up` para todos
|
|
- **Tiempo: 1 segundo**
|
|
|
|
**Salida esperada:**
|
|
```
|
|
Name Status
|
|
rss2_db Up (healthy)
|
|
rss2_redis Up (healthy)
|
|
rss2_backend_go Up (running)
|
|
rss2_nginx Up (running)
|
|
...
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Comandos Útiles
|
|
|
|
### Verificar credenciales
|
|
```bash
|
|
grep -E "^(POSTGRES_PASSWORD|REDIS_PASSWORD|DB_PASS)=" .env
|
|
```
|
|
|
|
### Ver logs en tiempo real
|
|
```bash
|
|
docker compose logs -f
|
|
```
|
|
|
|
### Reiniciar servicios
|
|
```bash
|
|
# Todos
|
|
docker compose restart
|
|
|
|
# Solo base de datos
|
|
docker compose restart db
|
|
```
|
|
|
|
### Verificar estado
|
|
```bash
|
|
docker compose ps
|
|
```
|
|
|
|
### Limpiar todo (PERDERÁS DATOS)
|
|
```bash
|
|
docker compose down -v
|
|
```
|
|
|
|
### Escalar workers
|
|
```bash
|
|
# Más traductores CPU
|
|
docker compose up -d --scale translator=3
|
|
|
|
# Más traductores GPU
|
|
docker compose up -d --scale translator-gpu=2
|
|
```
|
|
|
|
---
|
|
|
|
## 🔒 Seguridad
|
|
|
|
### Contraseñas por defecto = PELIGRO ❌
|
|
|
|
```bash
|
|
# MAL - Contraseñas vacías
|
|
docker compose up -d
|
|
WARN: DB_PASS no set
|
|
# Las contraseñas están vacías
|
|
```
|
|
|
|
### Contraseñas generadas = SEGURO ✅
|
|
|
|
```bash
|
|
# BIEN
|
|
./generate_secure_credentials.sh --force
|
|
docker compose up -d
|
|
# Contraseñas de 32 caracteres aleatorios
|
|
```
|
|
|
|
### Guardar tus credenciales
|
|
|
|
**Opción 1: Gestor de contraseñas (Recomendado)**
|
|
```bash
|
|
# Copia las contraseñas que muestra el script
|
|
# Guárdalas en: LastPass, 1Password, KeePass, Bitwarden
|
|
```
|
|
|
|
**Opción 2: Archivo seguro local**
|
|
```bash
|
|
# Crea un archivo fuera del proyecto
|
|
echo "POSTGRES_PASSWORD=..." > ~/rss2-credentials.txt
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 Estado de los Servicios
|
|
|
|
| Servicio | Puerto | Descripción |
|
|
|----------|--------|-------------|
|
|
| `nginx` | 8888 | Web app |
|
|
| `backend-go` | 8080 | API |
|
|
| `db` | 5432 | PostgreSQL |
|
|
| `redis` | 6379 | Cache |
|
|
| `qdrant` | 6333 | Vector DB |
|
|
|
|
**DASHBOARDS:**
|
|
- Grafana: http://127.0.0.1:3001
|
|
- Prometheus: http://127.0.0.1:9090
|
|
|
|
---
|
|
|
|
## 🐛 Solución de Problemas
|
|
|
|
### WARN sobre contraseñas vacías
|
|
```bash
|
|
# Solución: Generar credenciales
|
|
./generate_secure_credentials.sh --force
|
|
```
|
|
|
|
### Port 8888 en uso
|
|
```bash
|
|
# Cambiar puerto en nginx
|
|
```
|
|
|
|
### Base de datos no inicia
|
|
```bash
|
|
# Ver logs
|
|
docker compose logs db
|
|
|
|
# Reiniciar
|
|
docker compose restart db
|
|
```
|
|
|
|
### Redis autenticación fallida
|
|
```bash
|
|
# Ver REDIS_PASSWORD
|
|
grep REDIS_PASSWORD .env
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ Checklist Final
|
|
|
|
Antes de considerar tu despliegue listo:
|
|
|
|
- [ ] `.env` tiene contraseñas generadas (no por defecto)
|
|
- [ ] `docker compose ps` muestra todos "Up"
|
|
- [ ] `http://localhost:8888` abre la app
|
|
- [ ] `curl http://localhost:8888/api/health` responde
|
|
|
|
---
|
|
|
|
## 📚 Documentación
|
|
|
|
- [README.md](./README.md) - Documentación completa
|
|
- [DEPLOY.md](./DEPLOY.md) - Guía detallada
|
|
- [SECURITY_GUIDE.md](./SECURITY_GUIDE.md) - Seguridad
|
|
|
|
---
|
|
|
|
**RSS2** - *Transformando noticias en inteligencia con IA* 🚀
|