85 lines
3.4 KiB
Markdown
85 lines
3.4 KiB
Markdown
LibreTime - Instalación Docker sencilla
|
|
|
|
Objetivo
|
|
--------
|
|
Proveer un conjunto mínimo de ficheros para que un usuario final pueda levantar LibreTime con Docker Compose sin tocar demasiadas cosas.
|
|
|
|
Archivos añadidos
|
|
- `docker-compose.simple.yml` - Compose reducido y comentado.
|
|
- `.env.example` - Ejemplo de variables de entorno.
|
|
- `scripts/generate-config.sh` - Genera `config.local.yml` desde variables de entorno.
|
|
- `start.sh` - Flujo recomendado: cargar .env, generar config, iniciar infra y aplicar migraciones.
|
|
|
|
Cómo usar
|
|
---------
|
|
1) Copiar `.env.example` a `.env` y editar las contraseñas si lo desea.
|
|
|
|
2) Generar `config.local.yml` (opcional — `start.sh` lo hace):
|
|
|
|
```sh
|
|
cp .env.example .env
|
|
sh ./scripts/generate-config.sh ./config.local.yml
|
|
```
|
|
|
|
3) Ejecutar el flujo automático:
|
|
|
|
```sh
|
|
sh ./start.sh
|
|
```
|
|
|
|
Esto levantará Postgres y RabbitMQ, aplicará las migraciones (necesario la primera vez) y luego arrancará el resto de servicios. El sitio estará disponible en `http://localhost:8080` por defecto.
|
|
|
|
|
|
Notas y recomendaciones
|
|
|
|
- Para producción cambie todas las contraseñas por valores fuertes en `.env`.
|
|
- Si ya existe un volumen de Postgres creado con otra contraseña, borre el volumen antes de usar las nuevas credenciales: `docker compose -f docker-compose.simple.yml down -v`.
|
|
- Puede ejecutar migraciones manualmente con:
|
|
|
|
```sh
|
|
docker compose -f docker-compose.simple.yml run --rm migrate
|
|
```
|
|
|
|
Corregir desajuste de contraseña (opción A)
|
|
-----------------------------------------
|
|
Si al hacer peticiones la API devuelve 500 por errores de conexión a la base de datos, normalmente significa que la contraseña de Postgres en `.env` y la que está escrita en `config.local.yml` no coinciden. Para arreglarlo manualmente:
|
|
|
|
1. Edita `.env` y establece `POSTGRES_PASSWORD` con la contraseña que quieras usar para Postgres (ejemplo seguro).
|
|
|
|
2. Regenera `config.local.yml` a partir de `.env` (esto sincroniza la contraseña usada por la app con la de Postgres):
|
|
|
|
```sh
|
|
cp .env.example .env # si aún no tienes .env
|
|
sh ./scripts/generate-config.sh ./config.local.yml
|
|
```
|
|
|
|
3. Reinicia el servicio API para que recargue el archivo de configuración montado:
|
|
|
|
```sh
|
|
docker compose -f docker-compose.simple.yml restart api
|
|
```
|
|
|
|
4. Prueba internamente en el contenedor API y desde Nginx:
|
|
|
|
```sh
|
|
docker exec -it $(docker compose -f docker-compose.simple.yml ps -q api) \
|
|
curl -sS http://127.0.0.1:9001/api/v2/info
|
|
|
|
curl -sS http://localhost:8080/api/v2/info
|
|
```
|
|
|
|
Si ambas llamadas devuelven HTTP 200 con JSON (por ejemplo {"station_name":"LibreTime"}) entonces el desajuste está resuelto.
|
|
|
|
Si persiste el problema, considera eliminar el volumen de Postgres (perderás datos de desarrollo) y volver a inicializar:
|
|
|
|
```sh
|
|
docker compose -f docker-compose.simple.yml down -v
|
|
sh ./start.sh
|
|
```
|
|
|
|
Nota sobre `start.sh`
|
|
---------------------
|
|
`start.sh` genera `config.local.yml` desde las variables de entorno y, si detecta que `POSTGRES_PASSWORD` está definido en `.env`, actualizará automáticamente la entrada `database.password` dentro de `config.local.yml` para que coincida. Esto evita desajustes entre la contraseña usada por el contenedor Postgres y la que usa la aplicación. Si prefieres no sobrescribir `config.local.yml`, edita manualmente `.env` y/o `config.local.yml` antes de ejecutar `start.sh`.
|
|
|
|
Antes de sobrescribir `config.local.yml`, `start.sh` crea una copia de seguridad con prefijo `config.local.yml.bak.YYYYMMDDHHMMSS` en la raíz del proyecto.
|