Page:
Actualización
Clone
Actualización
Mantén BookStack y MariaDB actualizados de forma segura.
Pre-requisitos
⚠️ SIEMPRE haz backup antes de actualizar
# Backup rápido
docker exec bookstack-db mariadb-dump -u bookstack -p${DB_PASSWORD} bookstack > bookstack-pre-update-$(date +%Y%m%d).sql
docker run --rm -v bookstack_config:/backup -v $(pwd):/target alpine tar czf /target/bookstack-config-pre-update.tar.gz -C /backup .
Actualizar BookStack
Proceso Manual
# 1. Backup (ver arriba)
# 2. Detener stack
docker stop bookstack bookstack-db
# 3. Actualizar imágenes
docker pull lscr.io/linuxserver/bookstack:latest
docker pull mariadb:12
# 4. Iniciar MariaDB primero
docker start bookstack-db
sleep 10
# 5. Iniciar BookStack
docker start bookstack
# 6. Verificar logs
docker logs -f bookstack
# 7. Acceder y verificar
# https://bookstack.tudominio.com
# Settings → About → Verificar versión
Con Portainer
- Ve al stack
bookstack - Click en Pull and redeploy
- Espera 1-2 minutos
- Verifica logs y acceso
Actualizar MariaDB
Actualización Menor (11.x → 11.y)
# Actualizar normalmente
docker stop bookstack bookstack-db
docker pull mariadb:12
docker start bookstack-db
sleep 15
docker start bookstack
Actualización Mayor (10 → 11)
⚠️ Requiere dump y restore
# 1. Backup completo
docker exec bookstack-db mariadb-dump -u bookstack -p${DB_PASSWORD} bookstack > bookstack-mariadb-upgrade.sql
# 2. Detener todo
docker stop bookstack bookstack-db
# 3. Eliminar contenedor y volumen antiguo
docker rm bookstack-db
docker volume rm bookstack_db
# 4. Recrear volumen
docker volume create bookstack_db
# 5. Iniciar MariaDB 12
docker compose up -d bookstack-db
# 6. Esperar inicialización
sleep 20
# 7. Restaurar datos
cat bookstack-mariadb-upgrade.sql | docker exec -i bookstack-db mariadb -u bookstack -p${DB_PASSWORD} bookstack
# 8. Iniciar BookStack
docker start bookstack
# 9. Verificar
docker logs bookstack
Rollback (Revertir Actualización)
Rollback Rápido
# 1. Detener todo
docker stop bookstack bookstack-db
# 2. Volver a versión anterior de imagen
docker pull lscr.io/linuxserver/bookstack:v24.05.4
docker tag lscr.io/linuxserver/bookstack:v24.05.4 lscr.io/linuxserver/bookstack:latest
# 3. Restaurar BD desde backup
gunzip < bookstack-pre-update-20250101.sql.gz | docker exec -i bookstack-db mariadb -u bookstack -p${DB_PASSWORD} bookstack
# 4. Iniciar
docker start bookstack-db
sleep 10
docker start bookstack
Rollback Completo
# 1. Detener y eliminar todo
docker stop bookstack bookstack-db
docker rm bookstack bookstack-db
docker volume rm bookstack_config bookstack_db
# 2. Recrear volúmenes
docker volume create bookstack_config
docker volume create bookstack_db
# 3. Iniciar stack
docker compose up -d bookstack-db
sleep 20
# 4. Restaurar desde backups
gunzip < bookstack-pre-update.sql.gz | docker exec -i bookstack-db mariadb -u bookstack -p${DB_PASSWORD} bookstack
docker run --rm -v bookstack_config:/restore -v $(pwd):/source alpine tar xzf /source/bookstack-config-pre-update.tar.gz -C /restore
# 5. Iniciar BookStack
docker start bookstack
Actualización Automática con Watchtower
Desplegar Watchtower
services:
watchtower:
image: containrrr/watchtower
restart: unless-stopped
environment:
WATCHTOWER_CLEANUP: "true"
WATCHTOWER_INCLUDE_STOPPED: "false"
WATCHTOWER_SCHEDULE: "0 0 4 * * *" # 4 AM diario
WATCHTOWER_ROLLING_RESTART: "true"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- "com.centurylinklabs.watchtower.enable=true"
Excluir BookStack de Watchtower
Si quieres control manual, añade label a bookstack:
services:
bookstack:
labels:
- "com.centurylinklabs.watchtower.enable=false"
Checklist Post-Actualización
Verificar Funcionalidad
- BookStack accesible en https://bookstack.tudominio.com
- Login funciona correctamente
- Libros/capítulos/páginas visibles
- Búsqueda funciona
- Imágenes cargan correctamente
- Editor funciona (crear/editar páginas)
- API responde (si la usas)
- LDAP/SAML funciona (si lo usas)
Verificar Logs
# Sin errores críticos
docker logs bookstack | grep -i error
docker logs bookstack | grep -i fatal
# BD conectada
docker logs bookstack | grep "Database"
Verificar Versión
Settings → About:
- BookStack Version: Debe ser la nueva versión
- PHP Version: Verificar compatibilidad
Mantenimiento
Limpiar Imágenes Antiguas
# Listar imágenes antiguas
docker images | grep bookstack
docker images | grep mariadb
# Eliminar imágenes sin usar
docker image prune -a
Optimizar Base de Datos
# Optimizar tablas
docker exec bookstack-db mariadb-optimize -u bookstack -p${DB_PASSWORD} bookstack
# Reparar tablas (si hay corrupción)
docker exec bookstack-db mariadb-check -u bookstack -p${DB_PASSWORD} --auto-repair bookstack
Próximos Pasos
- Backup - Automatiza backups regulares
- Monitoriza - Configura alertas de caídas
- Documenta - Mantén registro de versiones