Files
wallabicher/DOCKER.md
Omar Sánchez Pizarro 6ec8855c00 add landing and subscription plans
Signed-off-by: Omar Sánchez Pizarro <omar.sanchez@pistacero.net>
2026-01-20 23:49:19 +01:00

215 lines
4.8 KiB
Markdown

# 🐳 Guía de Docker para Wallabicher
Esta guía explica cómo ejecutar Wallabicher usando Docker Compose.
## 📋 Requisitos Previos
- Docker 20.10+
- Docker Compose 2.0+
## 🚀 Inicio Rápido
### 1. Configurar archivos
Asegúrate de tener los archivos de configuración:
```bash
# Si no existen, cópialos desde los archivos de muestra
cp config.sample.yaml config.yaml
cp workers.sample.json workers.json
# Edita config.yaml con tus credenciales de Telegram
nano config.yaml
```
### 2. Construir e iniciar servicios
```bash
docker-compose up -d
```
Esto iniciará:
- **Redis** (puerto 6379) - Cache de artículos
- **Backend** (puerto 3001) - API Node.js
- **Dashboard** (puerto 3000) - Interfaz web Vue
- **Wallabicher Python** - Servicio principal de monitoreo
### 3. Acceder a la interfaz
Abre tu navegador en: **http://localhost:3000**
## 📊 Servicios
### Redis
- **Puerto**: 6379
- **Volumen**: `redis-data` (persistente)
- **Uso**: Cache de artículos notificados
### Backend (Node.js)
- **Puerto**: 3001
- **API**: http://localhost:3001/api
- **WebSocket**: ws://localhost:3001
- **Funciones**: API REST y WebSockets para la interfaz web
### Dashboard (Vue + Nginx)
- **Puerto**: 3000
- **URL**: http://localhost:3000
- **Funciones**: Interfaz web moderna
### Wallabicher (Python)
- **Sin puertos expuestos** (solo comunicación interna)
- **Funciones**: Monitoreo de marketplaces y envío de notificaciones
## 🔧 Comandos Útiles
### Ver logs
```bash
# Todos los servicios
docker-compose logs -f
# Servicio específico
docker-compose logs -f wallabicher
docker-compose logs -f backend
docker-compose logs -f dashboard
```
### Detener servicios
```bash
docker-compose down
```
### Detener y eliminar volúmenes
```bash
docker-compose down -v
```
### Reconstruir imágenes
```bash
docker-compose build --no-cache
docker-compose up -d
```
### Reiniciar un servicio específico
```bash
docker-compose restart backend
docker-compose restart wallabicher
```
### Ver estado de servicios
```bash
docker-compose ps
```
## 📁 Volúmenes y Archivos
Los siguientes archivos se montan como volúmenes:
- `config.yaml` - Configuración (solo lectura en backend)
- `workers.json` - Configuración de workers (lectura/escritura)
- `logs/` - Directorio de logs (lectura/escritura)
**Nota**: Los cambios en `workers.json` desde la interfaz web se guardan directamente en este archivo. Los favoritos se almacenan en Redis.
## 🔐 Configuración de Redis
Si usas Redis en Docker, el backend se conecta automáticamente al servicio `redis`.
Para usar Redis desde fuera de Docker (por ejemplo, desde tu máquina local), actualiza `config.yaml`:
```yaml
cache:
type: "redis"
redis:
host: "localhost" # O la IP de tu máquina host
port: 6379
db: 0
password: null
```
Y en `docker-compose.yml`, cambia `REDIS_HOST` en el servicio backend a `host.docker.internal` (en Mac/Windows) o la IP de tu host.
## 🐛 Solución de Problemas
### El backend no se conecta a Redis
Verifica que Redis esté ejecutándose:
```bash
docker-compose ps redis
docker-compose logs redis
```
### Los archivos no se actualizan
Asegúrate de que los archivos existan y tengan los permisos correctos:
```bash
touch config.yaml workers.json
mkdir -p logs
chmod 666 workers.json
```
### Error: monitor.log es un directorio
Si ves este error, significa que Docker creó un directorio en lugar de un archivo:
```bash
# Eliminar el directorio si existe
rm -rf monitor.log
# Crear el directorio de logs correcto
mkdir -p logs
```
### El dashboard no carga
Verifica los logs:
```bash
docker-compose logs dashboard
```
### Reconstruir todo desde cero
```bash
docker-compose down -v
docker-compose build --no-cache
docker-compose up -d
```
## 🔄 Actualizar la Aplicación
Para actualizar después de cambios en el código:
```bash
# Reconstruir solo el servicio que cambió
docker-compose build backend
docker-compose up -d backend
# O reconstruir todo
docker-compose build
docker-compose up -d
```
## 📝 Variables de Entorno
Puedes personalizar el comportamiento usando variables de entorno en `docker-compose.yml`:
- `PROJECT_ROOT`: Ruta donde se montan los archivos (backend)
- `REDIS_HOST`: Host de Redis (por defecto: `redis`)
- `NODE_ENV`: Entorno Node.js (production/development)
- `PORT`: Puerto del backend (por defecto: 3001)
## 🚀 Producción
Para producción, considera:
1. **Usar un proxy reverso** (nginx/traefik) delante de los servicios
2. **Configurar SSL/TLS** para HTTPS
3. **Usar secrets de Docker** para credenciales sensibles
4. **Configurar backups** de los volúmenes de Redis
5. **Monitoreo y logging** con herramientas como Prometheus/Grafana
## 📚 Más Información
- [Documentación de Docker Compose](https://docs.docker.com/compose/)
- [README principal](../README.md)
- [Guía de la interfaz web](../web/README.md)