# 馃惓 Gu铆a de Docker para Wallamonitor Esta gu铆a explica c贸mo ejecutar Wallamonitor 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 - **Frontend** (puerto 3000) - Interfaz web Vue - **Wallamonitor 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 ### Frontend (Vue + Nginx) - **Puerto**: 3000 - **URL**: http://localhost:3000 - **Funciones**: Interfaz web moderna ### Wallamonitor (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 wallamonitor docker-compose logs -f backend docker-compose logs -f frontend ``` ### 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 wallamonitor ``` ### 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) - `favorites.json` - Favoritos (lectura/escritura) - `logs/` - Directorio de logs (lectura/escritura) **Nota**: Los cambios en `workers.json` y `favorites.json` desde la interfaz web se guardan directamente en estos archivos. ## 馃攼 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 favorites.json mkdir -p logs chmod 666 workers.json favorites.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 frontend no carga Verifica los logs: ```bash docker-compose logs frontend ``` ### 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)