# Docker Configuration for ZimaOS ## Archivos Incluidos ``` docker/ ├── Dockerfile # Imagen base Ubuntu 22.04 (incluye todo el proyecto) ├── docker-compose.yml # Desarrollo local ├── docker-compose.local.yml # Pruebas locales con volumen ├── zimaos-docker-compose.yml # Producción ZimaOS ├── zimaos.env.template # Template de variables ├── entrypoint.sh # Script de inicio (genera .env) ├── supervisord.conf # Configuración Supervisor ├── supervisor/ │ ├── discordbot.conf # Bot de Discord │ └── translation-worker.conf # Worker de traducciones ├── apache/ │ ├── ponsprueba.ddns.net.conf # Apache desarrollo │ └── reod-dragon.ddns.net.conf # Apache producción └── www/ └── index.html # Página de bienvenida ``` ## Uso en ZimaOS ### 1. Preparar Archivos Copia `zimaos-docker-compose.yml` a tu almacenamiento en ZimaOS. ### 2. Configurar Variables Edita `zimaos-docker-compose.yml` y ajusta las variables de entorno: ```yaml environment: - DB_HOST=tu_host_db - DB_PORT=tu_puerto - DB_NAME=tu_db - DB_USER=tu_usuario - DB_PASS=tu_password - DISCORD_BOT_TOKEN=tu_token - TELEGRAM_BOT_TOKEN=tu_token - APP_BASE_URL=http://tu-dominio:8086 # ... otras variables ``` ### 3. Ejecutar ```bash # Descargar imagen docker compose -f zimaos-docker-compose.yml pull # Iniciar contenedor docker compose -f zimaos-docker-compose.yml up -d # Ver logs docker logs -f bot_lastwar_funcionando ``` ### 4. Detener ```bash docker compose -f zimaos-docker-compose.yml down ``` ## Actualizar a nueva versión ```bash docker compose -f zimaos-docker-compose.yml pull docker compose -f zimaos-docker-compose.yml up -d ``` ## Variables de Entorno | Variable | Descripción | Ejemplo | |----------|-------------|---------| | `APP_ENVIRONMENT` | Entorno (pruebas\|reod) | pruebas | | `USE_LOCALHOST` | Usar URLs localhost | false | | `DB_*` | Configuración base de datos | Ver template | | `DISCORD_*` | Credenciales Discord | Ver template | | `TELEGRAM_*` | Credenciales Telegram | Ver template | | `N8N_*` | URLs de N8N | Ver template | | `JWT_SECRET` | Secreto para sesiones | `openssl rand -hex 32` | | `INTERNAL_API_KEY` | API key interna | `openssl rand -hex 32` | | `APP_BASE_URL` | URL base pública | http://tu-ip:8086 | ## Desarrollo Local Para desarrollar localmente con volúmenes (los cambios se ven sin rebuild): ```bash docker compose -f docker-compose.local.yml up -d ``` Para producción (imagen autocontenida): ```bash docker compose -f docker-compose.yml build docker compose -f docker-compose.yml up -d ``` ## Puertos - **8086** → Puerto HTTP del contenedor (80) ## Servicios - **Apache2** - Servidor web - **Discord Bot** - Bot de Discord - **Translation Worker** - Procesador de traducciones ## Volúmenes Persistentes Los volúmenes para logs y galería se crean automáticamente con Docker: - `bot-logs` → /var/www/html/bot/logs - `bot-galeria` → /var/www/html/bot/galeria Para verlos: ```bash docker volume ls | grep bot ``` ## Solución de Problemas ### El contenedor no inicia ```bash docker logs bot_lastwar_funcionando ``` ### Verificar variables de entorno ```bash docker exec bot_lastwar_funcionando env | grep -E "DB_|DISCORD_|TELEGRAM_|APP_" ``` ### Verificar archivo .env generado ```bash docker exec bot_lastwar_funcionando cat /var/www/html/bot/.env ``` ### Base de datos no conecta Verificar credenciales en variables de entorno. ### Reiniciar contenedor ```bash docker restart bot_lastwar_funcionando ``` ## Construcción de imagen (para actualizar) ```bash # En la carpeta del proyecto docker compose build # Subir al registry docker tag bot-bot-lastwar:latest 10.10.4.3:5000/bot-lastwar:latest docker push 10.10.4.3:5000/bot-lastwar:latest ```