Actualizar
Actualiza una instalación en marcha y aplica los pasos propios de cada versión.
La actualización habitual
Desde el directorio que contiene compose.yml y .env:
docker compose pull
docker compose up -d
El backend aplica las migraciones nuevas de la base de datos al arrancar. Actualiza las cuatro imágenes a la vez: el backend y el ejecutor comparten un contrato gRPC.
Si fijaste versiones con las variables *_IMAGE_TAG, cambia antes las cuatro a la nueva etiqueta. Lee las notas de versión antes de saltar varias versiones, y aplica los pasos de abajo de cada versión que cruces.
v0.10.0
La entrada pública salió de la imagen del frontend a una nueva imagen playbook-runner-gateway (Caddy), que sirve el sitio y enruta las llamadas gRPC del backend al ejecutor. El frontend ya no publica ningún puerto.
No hay variables obligatorias nuevas: el gateway se publica en GATEWAY_PORT y, si no existe, en tu FRONTEND_PORT de antes. Con el compose antiguo el sitio deja de responder tras un pull, así que actualízalo primero:
curl -fsSL https://raw.githubusercontent.com/Nonetss/playbook-runner/main/compose.prod.yml -o compose.yml
docker compose pull && docker compose up -d
v0.9.0
No hay variables obligatorias nuevas. Actualiza el backend y el ejecutor a la vez: el contrato gRPC ganó las llamadas de repositorios Git y la imagen del ejecutor ahora incluye git.
v0.8.0
Añade una variable obligatoria; el backend no arranca sin ella.
-
Genera la clave y añádela a
.env:echo "CREDENTIALS_ENCRYPTION_KEY=$(openssl rand -base64 32)" >> .env -
Haz copia de la clave.
-
Actualiza el compose (cambiaron volúmenes, puertos y healthchecks), y luego descarga y reinicia:
curl -fsSL https://raw.githubusercontent.com/Nonetss/playbook-runner/main/compose.prod.yml -o compose.yml docker compose pull && docker compose up -d -
Cifra las credenciales que se guardaron en claro antes de actualizar. Ejecútalo una vez;
--decryptlo revierte:docker compose exec backend bun dist/encrypt-credentials.mjs
Otros cambios de la v0.8: el ejecutor guarda su estado en el volumen ansible_state (desaparecen el montaje ./.data/ansible-runner:/app/playbook y ANSIBLE_PLAYBOOK_PATH), ya no publica el puerto 8000, y el backend ya no tiene servidor gRPC (se eliminaron BACKEND_GRPC_TARGET y el puerto 50052).