{ "name": "LibreTime", "slug": "libretime", "version": "1.0.0", "description": "LibreTime: sistema de automatización y streaming de radio. Servicio preparado para EasyPanel mediante docker-compose.", "author": "LibreTime contributors", "repository": { "type": "git", "url": "https://github.com/your-org/your-repo" }, "update_script": "easypanel/update.js", "compose_path": "easypanel/code/docker-compose.yml", "env_file": "easypanel/service.env", "services": { "notes": "El archivo compose generado tendrá los servicios principales: postgres, rabbitmq, api, legacy, nginx, icecast, playout, liquidsoap, worker, analyzer y config-generator." }, "env": [ { "name": "POSTGRES_USER", "description": "Usuario de la base de datos Postgres", "required": false, "secret": false, "default": "libretime" }, { "name": "POSTGRES_PASSWORD", "description": "Contraseña de Postgres (requerida)", "required": true, "secret": true }, { "name": "POSTGRES_DB", "description": "Nombre de la base de datos", "required": false, "secret": false, "default": "libretime" }, { "name": "RABBITMQ_DEFAULT_VHOST", "description": "VHost por defecto para RabbitMQ", "required": false, "secret": false, "default": "/libretime" }, { "name": "RABBITMQ_DEFAULT_USER", "description": "Usuario por defecto para RabbitMQ", "required": false, "secret": false, "default": "libretime" }, { "name": "RABBITMQ_DEFAULT_PASS", "description": "Contraseña de RabbitMQ (requerida)", "required": true, "secret": true }, { "name": "LIBRETIME_VERSION", "description": "Versión de las imágenes de LibreTime", "required": false, "secret": false, "default": "4.5" }, { "name": "LIBRETIME_GENERAL_PUBLIC_URL", "description": "URL pública de la instalación", "required": false, "secret": false, "default": "http://localhost:8080" }, { "name": "LIBRETIME_DEBUG", "description": "Habilitar modo debug (true/false)", "required": false, "secret": false, "default": "false" }, { "name": "NGINX_PORT", "description": "Puerto HTTP expuesto por Nginx (opcional si EasyPanel maneja el routing)", "required": false, "secret": false, "default": "8080" }, { "name": "ICECAST_PORT", "description": "Puerto de Icecast", "required": false, "secret": false, "default": "8000" }, { "name": "ICECAST_SOURCE_PASSWORD", "description": "Contraseña de source para Icecast", "required": false, "secret": true, "default": "hackme" }, { "name": "ICECAST_ADMIN_PASSWORD", "description": "Contraseña de admin para Icecast", "required": false, "secret": true, "default": "hackme" }, { "name": "ICECAST_RELAY_PASSWORD", "description": "Contraseña de relay para Icecast", "required": false, "secret": true, "default": "hackme" }, { "name": "ICECAST_ADMIN_USER", "description": "Usuario admin Icecast", "required": false, "secret": false, "default": "admin" } ], "notes": "Después de clonar, EasyPanel debe ejecutar el `update_script` y usar el compose generado en `compose_path`. Asegúrate de proveer los secretos marcados como `secret: true` en la UI de EasyPanel.", "last_updated": "2025-10-01" , "install_instructions": "1) Copia el contenido de easypanel/service.env en la sección Environment/Secrets del servicio en EasyPanel.\n2) Marca como secreto las variables que contienen contraseñas (POSTGRES_PASSWORD, RABBITMQ_DEFAULT_PASS, ICECAST_*_PASSWORD).\n3) EasyPanel ejecutará el script indicado en 'update_script' (easypanel/update.js o update.sh) para generar el compose final en easypanel/code/docker-compose.yml.\n4) Revisa el compose generado y despliega el servicio." }