Actualización manual de BookStack
Instalación por release / tarball — Procedimiento normativo
⚠️ REGLAS DE INTERPRETACIÓN (LECTURA OBLIGATORIA)
Este documento NO es una guía genérica.
NO describe “cómo se suele actualizar BookStack”.
Describe ÚNICAMENTE este escenario concreto:
- Instalación por release / tarball
- Sin uso de Git
- Con swap controlado de directorios
- Con backups ya existentes
Si alguna instrucción no encaja exactamente con el sistema real:
→ NO se adapta
→ NO se improvisa
→ NO se proponen alternativas
→ SE DETIENE EL PROCESO
No existen “variantes equivalentes” de este procedimiento.
Si algo no está escrito aquí, NO forma parte del proceso.
0. ESTADO INICIAL — CONDICIÓN DE EJECUCIÓN
SI ALGUNO DE LOS SIGUIENTES PUNTOS NO SE CUMPLE,
ESTE PROCEDIMIENTO NO ES APLICABLE.
Debe verificarse antes de hacer nada:
- Método de instalación: release / tarball (NO git)
- Ruta activa de BookStack:
/var/www/bookstack - Usuario propietario:
www-data:www-data - PHP-FPM operativo
- Base de datos accesible
public/uploadsexiste (directorio o symlink válido)- Versión actual verificable con:
cd /var/www/bookstack
cat version
Ejemplo:
v25.12.2
Si la versión no puede verificarse, NO continuar.
1. PROHIBICIONES ABSOLUTAS
Durante todo el proceso, está prohibido:
- ❌ Usar
git clone,git pull,git checkout - ❌ Actualizar directamente sobre
/var/www/bookstack - ❌ Copiar
vendor/desde la instalación anterior - ❌ Ejecutar comandos fuera del directorio indicado
- ❌ Inventar rutas “equivalentes” o “más limpias”
- ❌ Ejecutar pasos fuera de orden
- ❌ Continuar tras un error sin entenderlo
Este procedimiento es lineal, cerrado y deliberado.
2. BACKUP (FUERA DE ALCANCE)
Antes de continuar:
- Backup completo del sistema realizado
- Backup verificado como restaurable
Sin backup, NO se actualiza.
3. PREPARACIÓN — ENTORNO FUERA DE PRODUCCIÓN
mkdir -p /root/tmp-bookstack-update
cd /root/tmp-bookstack-update
CHECKPOINT
pwddevuelve/root/tmp-bookstack-update- Producción NO ha sido tocada
4. DESCARGA DE LA NUEVA RELEASE
Ejemplo (v25.12.3):
wget https://github.com/BookStackApp/BookStack/archive/refs/tags/v25.12.3.tar.gz
tar xzf v25.12.3.tar.gz
mv BookStack-25.12.3 bookstack_NEW
CHECKPOINT
- Existe
bookstack_NEW/ - Contiene
artisan,public/,storage/
Si no, DETENER.
5. COPIA DE CONFIGURACIÓN Y DATOS
Desde la instalación activa:
cp /var/www/bookstack/.env bookstack_NEW/
cp -a /var/www/bookstack/storage bookstack_NEW/
cp -a /var/www/bookstack/public/uploads bookstack_NEW/public/
cp /var/www/bookstack/public/custom.css bookstack_NEW/public/ 2>/dev/null || true
CHECKPOINT
.envexiste enbookstack_NEWstorage/existe y contiene datos
6. INSTALACIÓN DE DEPENDENCIAS PHP
cd bookstack_NEW
composer install --no-dev --optimize-autoloader
CHECKPOINT
- Comando finaliza sin errores fatales
- Existe el directorio
vendor/ vendor/NO ha sido copiado manualmente
Si falla, NO continuar.
7. MIGRACIONES DE BASE DE DATOS
php artisan migrate --force
Resultado habitual:
Nothing to migrate.
CHECKPOINT
- No hay errores
- Si aparecen migraciones, leerlas antes de continuar
8. RECORDATORIO CRÍTICO ANTES DEL SWAP
Hasta este punto:
- Producción NO ha sido modificada
- Todo el trabajo ocurrió fuera de
/var/www/bookstack - Cualquier error aquí es reversible
A partir del siguiente paso, se toca producción.
9. SWAP CONTROLADO (PASO CRÍTICO)
mv /var/www/bookstack /var/www/bookstack_OLD_$(date +%Y%m%d)
mv /root/tmp-bookstack-update/bookstack_NEW /var/www/bookstack
chown -R www-data:www-data /var/www/bookstack
CHECKPOINT
/var/www/bookstackexiste- Propietario correcto:
www-data - Carpeta OLD permanece intacta
10. LIMPIEZA DE CACHE Y RECARGA
cd /var/www/bookstack
sudo -u www-data php artisan config:clear
sudo -u www-data php artisan cache:clear
sudo systemctl reload php8.4-fpm
11. VERIFICACIÓN FINAL
- Acceso web correcto
- Login funcional
- Subida de imágenes correcta
- Versión confirmada:
cat /var/www/bookstack/version
Debe mostrar la nueva versión.
12. ROLLBACK INMEDIATO (SI ALGO FALLA)
rm -rf /var/www/bookstack
mv /var/www/bookstack_OLD_YYYYMMDD /var/www/bookstack
sudo systemctl reload php8.4-fpm
No investigar con producción rota.
Primero volver atrás, luego analizar.
NOTA FINAL PARA OPERADOR / IA
Este documento es normativo.
- No asumir configuraciones distintas
- No “optimizar” el proceso
- No añadir pasos
- No cambiar el orden
Si el sistema real no coincide con este documento,
se documenta primero y se adapta después.
Fin del procedimiento.