# LibreTime para EasyPanel Esta gu铆a te ayudar谩 a desplegar LibreTime en EasyPanel usando Docker Compose. ## 馃殌 Instalaci贸n R谩pida ### 1. Preparar archivos 1. Copia `docker-compose.easypanel.yml` a tu proyecto en EasyPanel 2. Copia `.env.easypanel.example` como `.env` y configura las variables 3. Copia `config.local.easypanel.yml` como `config.local.yml` y ajusta la configuraci贸n ### 2. Configurar variables de entorno Edita el archivo `.env` con tus valores: ```bash # URL p煤blica (REQUERIDO) LIBRETIME_GENERAL_PUBLIC_URL=https://tu-dominio.com # Contrase帽as (CAMBIA ESTOS VALORES) POSTGRES_PASSWORD=tu_password_muy_seguro RABBITMQ_DEFAULT_PASS=otra_password_segura ICECAST_SOURCE_PASSWORD=password_para_fuentes ICECAST_ADMIN_PASSWORD=password_admin_icecast # Configuraci贸n de dominio ICECAST_HOSTNAME=tu-dominio.com ``` ### 3. Configurar LibreTime Edita `config.local.yml`: ```yaml general: public_url: https://tu-dominio.com api_key: "genera-una-clave-api-segura-de-al-menos-64-caracteres" secret_key: "genera-una-clave-secreta-django-de-al-menos-50-caracteres" database: password: tu_password_muy_seguro # Debe coincidir con .env rabbitmq: password: otra_password_segura # Debe coincidir con .env ``` ### 4. Generar claves seguras Puedes generar claves seguras usando: ```bash # Para API key (64 caracteres) openssl rand -hex 32 # Para Django secret key (50 caracteres) openssl rand -base64 50 ``` ## 馃搵 Configuraci贸n en EasyPanel ### Servicios y Puertos | Servicio | Puerto | Descripci贸n | |----------|--------|-------------| | nginx | 8080 | Interfaz web principal | | icecast | 8000 | Servidor de streaming | | liquidsoap | 8001 | Input de audio (Harbor) | | liquidsoap | 8002 | Control Telnet | ### Vol煤menes Persistentes Los siguientes vol煤menes necesitan ser persistentes: - `postgres_data`: Datos de la base de datos PostgreSQL - `libretime_storage`: Archivos de audio y configuraci贸n - `libretime_playout`: Cache y archivos temporales de playout ### Configuraci贸n de Red En EasyPanel, aseg煤rate de: 1. **Exponer puertos**: 8080 (web) y 8000 (streaming) 2. **Configurar dominio**: Apuntar tu dominio al puerto 8080 3. **SSL/TLS**: Activar HTTPS en EasyPanel para el puerto 8080 ## 馃敡 Configuraci贸n Avanzada ### Variables de Entorno Opcionales ```bash # Versi贸n espec铆fica de LibreTime LIBRETIME_VERSION=3.0.2 # Configuraci贸n de Nginx NGINX_WORKER_PROCESSES=2 # Modo debug (solo para desarrollo) LIBRETIME_DEBUG=true ``` ### Healthchecks El docker-compose incluye healthchecks para: - PostgreSQL: Verifica conexi贸n a la base de datos - RabbitMQ: Verifica conectividad del puerto - Dependencias: Los servicios esperan a que las dependencias est茅n saludables ### Configuraci贸n de Streaming Para configurar streams adicionales, edita `config.local.yml`: ```yaml stream: outputs: icecast: - enabled: true host: icecast port: 8000 mount: main source_password: tu_source_password_aqui audio: format: mp3 bitrate: 128 - enabled: true host: icecast port: 8000 mount: hq source_password: tu_source_password_aqui audio: format: mp3 bitrate: 320 ``` ## 馃攼 Seguridad ### Contrase帽as Seguras - Usa contrase帽as 煤nicas de al menos 16 caracteres - Combina letras, n煤meros y s铆mbolos - Nunca uses las contrase帽as por defecto en producci贸n ### Firewall - Solo exp贸n los puertos necesarios (8080, 8000) - Considera usar un firewall adicional - Configura rate limiting si es posible ### Actualizaciones - Mant茅n LibreTime actualizado: `LIBRETIME_VERSION=latest` - Revisa regularmente las actualizaciones de seguridad - Haz backups regulares de los vol煤menes ## 馃悰 Troubleshooting ### Servicios no inician 1. Verifica las variables de entorno en `.env` 2. Comprueba los logs: `docker-compose logs [servicio]` 3. Verifica que los vol煤menes tengan permisos correctos ### No se puede acceder a la interfaz web 1. Verifica que el puerto 8080 est茅 expuesto 2. Comprueba la configuraci贸n de dominio en EasyPanel 3. Verifica `LIBRETIME_GENERAL_PUBLIC_URL` en `.env` ### Problemas de streaming 1. Verifica las contrase帽as de Icecast 2. Comprueba que el puerto 8000 est茅 accesible 3. Verifica la configuraci贸n de `stream.outputs` en `config.local.yml` ### Base de datos no conecta 1. Verifica `POSTGRES_PASSWORD` en `.env` 2. Comprueba que coincida con `database.password` en `config.local.yml` 3. Verifica que el volumen `postgres_data` tenga permisos correctos ## 馃摎 Enlaces 脷tiles - [Documentaci贸n oficial de LibreTime](https://libretime.org/docs/) - [Configuraci贸n avanzada](https://libretime.org/docs/admin-manual/setup/configuration/) - [GitHub de LibreTime](https://github.com/libretime/libretime) - [Documentaci贸n de EasyPanel](https://easypanel.io/docs) ## 馃攧 Comandos 脷tiles ```bash # Ver logs de todos los servicios docker-compose -f docker-compose.easypanel.yml logs # Ver logs de un servicio espec铆fico docker-compose -f docker-compose.easypanel.yml logs nginx # Reiniciar un servicio docker-compose -f docker-compose.easypanel.yml restart api # Actualizar servicios docker-compose -f docker-compose.easypanel.yml pull docker-compose -f docker-compose.easypanel.yml up -d # Backup de la base de datos docker-compose -f docker-compose.easypanel.yml exec postgres pg_dump -U libretime libretime > backup.sql ```