Cesar Jhoanny Mendivil Rubio 697b7cc288
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
feat(easypanel): actualizar configuración y scripts de EasyPanel, incluyendo mejoras en la generación de contraseñas, sincronización de herramientas y gestión de configuraciones
2025-10-01 17:41:20 -07:00
..

LibreTime (EasyPanel)

Este directorio contiene metadatos y un script de actualización en el estilo que usa EasyPanel para instalar un servicio desde un repositorio.

Qué hace:

  • update.sh copia docker-compose.easypanel.yml a ./code/docker-compose.yml y elimina container_name y ports para que el docker-compose resultante sea compatible con EasyPanel.

Cómo funciona (resumen):

  • EasyPanel suele clonar el repo en una carpeta temporal, ejecutar update.sh y luego usar ./code/docker-compose.yml como el compose a ejecutar.

Requisitos/Notas:

  • update.sh usa utilidades estándar de shell y perl (normalmente disponible en sistemas UNIX). Si tu entorno no tiene perl, el script puede adaptarse a python.
  • Revisa y completa las variables de entorno requeridas por docker-compose.easypanel.yml (p. ej. secretos: POSTGRES_PASSWORD, RABBITMQ_DEFAULT_PASS, etc.) desde la UI de EasyPanel.

Siguientes pasos recomendados:

  • (Opcional) Añadir un update.js si prefieres implementar clonación/actualizaciones con las utilidades de EasyPanel (no obligatorio). Este repo incluye easypanel/update.js que realiza la misma función que update.sh usando Node.js.
  • (Opcional) Añadir un archivo README.md con la lista de variables que EasyPanel debe exponer en la interfaz de instalación.

Instrucciones específicas para EasyPanel

  1. En la UI de EasyPanel, crea un nuevo servicio apuntando a este repositorio (o sube un ZIP).
  2. En la sección de variables/Environment, pega el contenido de easypanel/service.env (o sube el archivo).
    • Marca como secret las variables: POSTGRES_PASSWORD, RABBITMQ_DEFAULT_PASS, ICECAST_SOURCE_PASSWORD, ICECAST_ADMIN_PASSWORD, ICECAST_RELAY_PASSWORD.
  3. EasyPanel ejecutará easypanel/update.sh por convención; el script intenta ejecutar easypanel/update.js si Node.js está disponible, y usa un fallback en shell si no lo está.
  4. Después de ejecutar el script, EasyPanel usará easypanel/code/docker-compose.yml para desplegar el stack. Revisa ese archivo antes de confirmar el despliegue.
  5. Si necesitas exponer puertos manualmente en EasyPanel, revisa docker-compose.easypanel.yml y ajusta NGINX_PORT, ICECAST_PORT, etc., o deja que EasyPanel gestione el ruteo.

Consejos:

  • Asegúrate de que LIBRETIME_GENERAL_PUBLIC_URL apunte a tu dominio público antes de desplegar.
  • Para entornos de producción, establece LIBRETIME_DEBUG=false y usa contraseñas fuertes en los secrets.

Generar contraseñas seguras

Puedes usar el script easypanel/generate_secrets.sh para generar contraseñas seguras y sus hashes SHA-256. El script imprime un bloque .env listo para pegar en la UI de EasyPanel. Ejecútalo localmente y no subas las contraseñas al repositorio.

Ejemplo:

cd easypanel
chmod +x generate_secrets.sh
./generate_secrets.sh