Actualizaciones y copias
Pasar a una versión nueva, hacer y restaurar copias de la base de datos, y los comandos de Compose del día a día.
Actualizar
Desde el directorio con compose.yml y .env:
docker compose pull
docker compose up -d
El backend aplica las migraciones nuevas de la base de datos al arrancar, así que no hay ningún paso más. Si fijaste una versión, cambia antes las etiquetas de imagen en compose.yml a la nueva. Las versiones y sus notas están en la página de releases.
Haz una copia de la base de datos antes de un salto de versión mayor.
Desde una versión sin gateway
Caddy iba dentro de la imagen del frontend; ahora es su propio servicio, gateway, y la imagen nueva del frontend ya no escucha en el puerto 80. Descarga el compose.yml nuevo antes del pull, o el puerto publicado no responderá:
curl -fsSL https://raw.githubusercontent.com/Nonetss/Komodo-CD/main/compose.yml -o compose.yml
docker compose pull
docker compose up -d --remove-orphans
Desde una versión sin escaneo de imágenes
La página Seguridad necesita el nuevo servicio trivy. Descarga el nuevo compose.yml antes del pull, como arriba; en su primer arranque el servidor de Trivy descarga su base de datos de vulnerabilidades, así que los primeros escaneos pueden fallar durante un minuto y se pueden reintentar desde la página.
Qué copiar
Todo lo que guarda Komodo CD está en un único fichero SQLite, /data/db.sqlite, en el volumen db_data: usuarios, API keys, la conexión con Komodo, los ajustes de ntfy, el historial y los últimos escaneos de imágenes. Guarda también una copia de .env, que tiene BETTER_AUTH_SECRET y los datos del administrador.
Los datos sobreviven a reinicios, a docker compose down y a las actualizaciones de imagen. docker compose down -v borra el volumen y con él cada usuario, key y ajuste.
Hacer una copia
Para el backend para que el fichero no se escriba mientras se copia, archiva el volumen y vuelve a arrancarlo:
docker compose stop backend
docker run --rm \
--volumes-from "$(docker compose ps -aq backend)" \
-v "$PWD":/backup \
alpine tar czf /backup/db-backup.tar.gz -C /data .
docker compose start backend
--volumes-from monta el volumen del backend se llame como se llame (Compose le pone delante el nombre del proyecto, normalmente el del directorio).
Restaurar
docker compose stop backend
docker run --rm \
--volumes-from "$(docker compose ps -aq backend)" \
-v "$PWD":/backup \
alpine sh -c "rm -rf /data/* && tar xzf /backup/db-backup.tar.gz -C /data"
docker compose start backend
Comandos útiles
# Seguir los logs de los dos servicios
docker compose logs -f
# Solo el backend
docker compose logs -f backend
# Reiniciar un servicio
docker compose restart backend
# Parar todo (los datos se conservan)
docker compose down