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.