Some checks are pending
Container / meta (analyzer) (push) Waiting to run
Container / meta (api) (push) Waiting to run
Container / meta (legacy) (push) Waiting to run
Container / meta (nginx) (push) Waiting to run
Container / meta (playout) (push) Waiting to run
Container / meta (worker) (push) Waiting to run
Container / build (push) Blocked by required conditions
Project / pre-commit (push) Waiting to run
Project / test-tools (push) Waiting to run
Release-Please / release-please (push) Waiting to run
5.3 KiB
5.3 KiB
LibreTime para EasyPanel
Esta guía te ayudará a desplegar LibreTime en EasyPanel usando Docker Compose.
🚀 Instalación Rápida
1. Preparar archivos
- Copia
docker-compose.easypanel.ymla tu proyecto en EasyPanel - Copia
.env.easypanel.examplecomo.envy configura las variables - Copia
config.local.easypanel.ymlcomoconfig.local.ymly ajusta la configuración
2. Configurar variables de entorno
Edita el archivo .env con tus valores:
# 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:
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:
# 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 PostgreSQLlibretime_storage: Archivos de audio y configuraciónlibretime_playout: Cache y archivos temporales de playout
Configuración de Red
En EasyPanel, asegúrate de:
- Exponer puertos: 8080 (web) y 8000 (streaming)
- Configurar dominio: Apuntar tu dominio al puerto 8080
- SSL/TLS: Activar HTTPS en EasyPanel para el puerto 8080
🔧 Configuración Avanzada
Variables de Entorno Opcionales
# 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:
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
- Verifica las variables de entorno en
.env - Comprueba los logs:
docker-compose logs [servicio] - Verifica que los volúmenes tengan permisos correctos
No se puede acceder a la interfaz web
- Verifica que el puerto 8080 esté expuesto
- Comprueba la configuración de dominio en EasyPanel
- Verifica
LIBRETIME_GENERAL_PUBLIC_URLen.env
Problemas de streaming
- Verifica las contraseñas de Icecast
- Comprueba que el puerto 8000 esté accesible
- Verifica la configuración de
stream.outputsenconfig.local.yml
Base de datos no conecta
- Verifica
POSTGRES_PASSWORDen.env - Comprueba que coincida con
database.passwordenconfig.local.yml - Verifica que el volumen
postgres_datatenga permisos correctos
📚 Enlaces Útiles
- Documentación oficial de LibreTime
- Configuración avanzada
- GitHub de LibreTime
- Documentación de EasyPanel
🔄 Comandos Útiles
# 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