Actualización manual de BookStack
Instalación por release / tarball (procedimiento reforzado)
ProcedimientoDocumentoseguro,operativo,probadono guía genérica.
Describe este tipo de sistema yrepetible.este método de instalación.
VálidoSiparaalgoinstalacionesno coincide con el estado descrito,NOSEgitDETIENE EL PROCESO, como la tuya..
0. CondicionesEstado previasinicial verificado (OBLIGATORIO)
Antes de empezar, todo esto debe ser cierto:
BookStackMétodoinstaladodeporinstalación: release / tarball (.tar.gz)NO git)PHPRuta activa de BookStack:/var/www/bookstack
www-data:www-data
PHP-FPM funcionandopublic/uploads www-dataser directorio o symlink (válido)
1. ComprobarLa versión actual
se obtiene con:
cd /var/www/bookstack
cat version
Ejemplo:
v25.12.2
Si alguno de estos puntos no se cumple, no continuar.
1. Prohibiciones absolutas
Durante todo el procedimiento:
git clone, git pull, git checkout
❌ NO actualizar “in place” sobre /var/www/bookstack
❌ NO copiar vendor/ desde la instalación vieja
❌ NO ejecutar comandos fuera del directorio indicado
❌ NO improvisar rutas “equivalentes”
❌ NO continuar si un paso falla o no queda claro
Este procedimiento es lineal y controlado.
2. Backup (fuera de alcance de este documento)
Antes de seguir:
Si no hay backup, no se actualiza.
3. Preparar directorio de trabajo (fuera de producción)
mkdir -p /root/tmp-bookstack-update
cd /root/tmp-bookstack-update
Checkpoint
pwd devuelve /root/tmp-bookstack-update
No se ha tocado /var/www/bookstack
3.4. Descargar nueva release
Ejemplo para 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
bookstack_NEW/
Contiene artisan, public/, storage/
4.5. Copiar configuración y datos necesarios
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
⚠️
Nobookstack_NEW/.envcopiarexistestorage/existe dentro devendor/bookstack_NEWdesde la instalación vieja.
5.6. Instalar dependencias PHP
cd bookstack_NEW
composer install --no-dev --optimize-autoloader
Checkpoint
vendor/
vendor/ NO ha sido copiado manualmente
Esperar sin interrumpir.
Si falla, no seguircontinuar.
6.7. Ejecutar migraciones
php artisan migrate --force
Resultado habitual:
Nothing to migrate.
Checkpoint
7.8. Swap controlado de(ÚNICO versionespaso 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/bookstack existe
Propietario correcto: www-data
La carpeta OLD sigue intacta
8.9. LimpiarLimpieza de cache y recargarrecarga de PHP
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
9.10. Verificación final
AccederAccesovíawebnavegadorcorrectoComprobarLoginloginfuncionalVerificar subidaSubida de imágenes correctaConfirmarVersiónversión:confirmada:
cat /var/www/bookstack/version
Debe mostrar la nueva versión.
10.11. 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.
NotasNota importantespara IA / operador futuro
Este documento NO es genérico.
- No
usarasumirgitconfiguracionespullen instalaciones por release.distintas - No
mezclar“mejorar”métodoselde actualización.procedimiento ActualizarNosoloañadircuandopasos “equivalentes”
Si el sistema esténo establecoincide con lo descrito aquí,
se documenta primero y se adapta después.
Fin.