Garabato

Actualizar y copias de seguridad

Actualiza una instalación en marcha, fija una imagen y haz copia de lo que no se puede reconstruir.

La actualización habitual

Desde el directorio que contiene compose.prod.yml y .env:

docker compose -f compose.prod.yml --env-file .env pull
docker compose -f compose.prod.yml --env-file .env up -d --remove-orphans

--remove-orphans borra los contenedores de servicios que el nuevo fichero compose ya no tiene, como el antiguo minio-init de un solo uso. El backend aplica las migraciones nuevas de la base de datos al arrancar. Actualiza las tres imágenes (gateway, frontend y backend) a la vez.

Si una versión cambia el propio fichero compose, vuelve a descargarlo antes del pull. Lee antes las notas de la versión.

curl -fsSL https://raw.githubusercontent.com/Nonetss/garabato/main/compose.prod.yml -o compose.prod.yml

Fijar una imagen

compose.prod.yml usa la etiqueta :main de ghcr.io/nonetss/garabato-frontend, garabato-backend y garabato-gateway. Cada build de main se publica también como main-<sha>, con los ocho primeros caracteres del commit. Para quedarte en un build concreto, cambia las tres líneas image: a la misma etiqueta main-<sha>.

Copias de seguridad

Una instalación son tres cosas. Haz copia de las tres a la vez, para que encajen:

Qué Dónde Por qué
La base de datos el volumen db_data, o tu PostgreSQL externo Usuarios, certificados, la biblioteca, las versiones, los registros de firma y las trazas.
Los documentos el volumen minio_data, o tu bucket Los PDF cifrados de cada versión.
.env junto a compose.prod.yml Sobre todo CERTIFICATE_ENCRYPTION_KEY.

Sin CERTIFICATE_ENCRYPTION_KEY las copias no sirven de nada. Envuelve la clave de cada certificado y documento guardado; sin ella, una base de datos y un bucket restaurados no se pueden descifrar. Guarda una copia fuera del servidor.

Un volcado de la base de datos incluida:

docker compose -f compose.prod.yml exec db pg_dump -U postgres stack > garabato.sql

El volumen de Loki solo guarda el registro de actividad y puede quedarse fuera.