Actualización

Lo que el actualizador Conzent OCI preserva y lo que restablece, cómo personalizar una instalación autohospedada para que tus cambios sobrevivan y cómo revertir.

Actualización

cd /path/to/conzent
bash scripts/backup.sh && bash scripts/install.sh --update

O, desde cualquier lugar:

curl -sSL https://getconzent.com/install | sh -s -- --update

Toma la copia de seguridad primero. Las migraciones se ejecutan automáticamente y no son reversibles.

Lo que hace la actualización

Paso Efecto
git fetch + git reset --hard Los archivos rastreados se restablecen a la versión. Las ediciones locales se descartan
docker compose down Los contenedores se detienen. Los volúmenes se conservan — tu base de datos sobrevive
Elimina el volumen app-public CSS/JS/media obsoletos se eliminan para que los activos de la nueva compilación se sirvan
docker compose build --no-cache --pull Recompilación completa, ignorando la caché de capas
docker compose up -d Todo comienza de nuevo
migrations:migrate Aplica solo las migraciones de esquema pendientes
scanner:register Vuelve a registrar el escáner empaquetado (idempotente)
Redis flush + limpieza de caché de plantillas Elimina sesiones obsoletas y plantillas compiladas
Creación de administrador Omitido — tus usuarios no se ven afectados

Espera unos minutos para la recompilación sin caché.

Lo que sobrevive: la base de datos, los scripts de consentimiento generados y cada archivo no rastreado — .env, .conzent-credentials, docker-compose.override.yml, backups/.

Lo que no sobrevive: ediciones a archivos rastreados como docker-compose.yml, la configuración de nginx, plantillas y archivos fuente; el volumen app-public; y contenidos de Redis, por lo que todos están desconectados.

Personalizando sin perderlo

La regla: nunca edites un archivo rastreado. Hay dos lugares soportados para tus cambios.

.env contiene toda la configuración — APP_URL, APP_PORT, SMTP, ajuste del escáner, claves de terceros.

docker-compose.override.yml contiene cualquier cosa sobre la pila en sí. Compose lo fusiona automáticamente y está ignorado por git:

services:
  # Publica el escáner para que las instalaciones remotas puedan acceder a él
  scanner:
    ports:
      - "8300:8300"

  # Da más memoria a MariaDB
  mariadb:
    command: --innodb-buffer-pool-size=1G

  # Monta la configuración personalizada de nginx
  nginx:
    volumes:
      - ./docker/nginx/custom.conf:/etc/nginx/conf.d/default.conf:ro

Los archivos que agregas — un Caddyfile, una configuración personalizada de nginx — no están rastreados y sobreviven a las actualizaciones. Los archivos que modificas no lo hacen.

Verificando una actualización

docker compose ps
docker compose exec app php bin/oci health
docker compose exec app php bin/oci scanner:health

Luego carga el panel y confirma que tus personalizaciones están intactas. Si un banner en un sitio en vivo se ve mal después, ejecuta docker compose exec app php bin/oci scripts:regenerate.

Si una actualización falla

# 1. Qué se rompió
docker compose logs --tail=100 app

# 2. Revertir código y datos juntos
git checkout <previous-tag>
docker compose build --no-cache && docker compose up -d
bash scripts/restore.sh backups/<archive-taken-before-the-upgrade>.tar.gz --yes

Restaurar la copia de seguridad anterior a la actualización es lo que deshace una migración — revertir solo el código deja el nuevo esquema en su lugar. Esa es la razón de la regla de hacer una copia de seguridad primero.

Desinstalando

bash scripts/install.sh --uninstall

Esto ejecuta docker compose down -v, eliminando todos los volúmenes, incluida la base de datos, y luego elimina el directorio de instalación. Pide confirmación primero. Toma una copia de seguridad si hay alguna posibilidad de que quieras recuperar los datos.

La referencia completa está con el código: docs/upgrading.md en GitHub.

Volver a la Documentación