Skip to main content

Actualización manual de BookStack

Instalación por release / tarball (procedimiento reforzado)Procedimiento normativo


⚠️ REGLAS DE INTERPRETACIÓN (LECTURA OBLIGATORIA)

Este documento DocumentoNO operativo,es nouna guía genérica.
Describe este tipo de sistema y este método de instalacióngené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 algoalguna instrucción no coincideencaja exactamente con el estadosistema descrito,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. EstadoESTADO inicialINICIAL verificado (OBLIGATORIO)CONDICIÓN DE EJECUCIÓN

    AntesSI ALGUNO DE LOS SIGUIENTES PUNTOS NO SE CUMPLE,
    ESTE PROCEDIMIENTO NO ES APLICABLE.

    Debe verificarse antes de empezar,hacer todo esto debe ser ciertonada:

    • Método de instalación: release / tarball (NO git)
    • Ruta activa de BookStack: /var/www/bookstack
    • Usuario propietario: www-data:www-data
    • PHP-FPM funcionandooperativo
    • Base de datos operativaaccesible
    • public/uploads puedeexiste ser (directorio o symlink (válido)
    • La versiónVersión actual se obtieneverificable con:
    cd /var/www/bookstack
    cat version
    

    Ejemplo:

    v25.12.2
    

    Si algunola de estos puntos no se cumple,versión no continuar.puede verificarse, NO continuar.


    1. ProhibicionesPROHIBICIONES absolutasABSOLUTAS

    Durante todo el procedimientoproceso:, está prohibido:

    • NO usarUsar git clone, git pull, git checkout
    • NOActualizar actualizar “in place”directamente sobre /var/www/bookstack
    • NO copiarCopiar vendor/ desde la instalación viejaanterior
    • NO ejecutarEjecutar comandos fuera del directorio indicado
    • NO improvisarInventar rutas “equivalentes” o “más limpias”
    • NOEjecutar continuarpasos sifuera de orden
    ❌ Continuar tras un pasoerror fallasin o no queda claroentenderlo

    Este procedimiento es lineallineal, cerrado y controladodeliberado.


    2. BackupBACKUP (fueraFUERA deDE alcance de este documento)ALCANCE)

    Antes de seguir:continuar:

    • Backup completo del sistema realizado
    • VerificadoBackup queverificado puedecomo restaurarserestaurable

    Si no haySin backup, noNO se actualiza.


    3. PrepararPREPARACIÓN directorio deENTORNO trabajoFUERA (fueraDE de producción)PRODUCCIÓN

    mkdir -p /root/tmp-bookstack-update
    cd /root/tmp-bookstack-update
    

    CheckpointCHECKPOINT

    • pwd devuelve /root/tmp-bookstack-update
    • NoProducción seNO ha tocadosido /var/www/bookstacktocada

    4. DescargarDESCARGA nuevaDE releaseLA NUEVA RELEASE

    Ejemplo para (v25.12.3: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
    

    CheckpointCHECKPOINT

    • Existe bookstack_NEW/
    • Contiene artisan, public/, storage/

    Si no, DETENER.


    5. CopiarCOPIA configuraciónDE yCONFIGURACIÓN datosY necesariosDATOS

    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
    

    CheckpointCHECKPOINT

    • bookstack_NEW/.env existe en bookstack_NEW
    • storage/ existe dentroy decontiene bookstack_NEWdatos

    6. InstalarINSTALACIÓN dependenciasDE DEPENDENCIAS PHP

    cd bookstack_NEW
    composer install --no-dev --optimize-autoloader
    

    CheckpointCHECKPOINT

    • ElComando comandofinaliza terminasin loerrores más limpio posiblefatales
    • Existe el directorio vendor/
    • vendor/ NO ha sido copiado manualmente

    Si falla, noNO continuar.


    7. EjecutarMIGRACIONES migracionesDE BASE DE DATOS

    php artisan migrate --force
    

    Resultado habitual:

    Nothing to migrate.
    

    CheckpointCHECKPOINT

    • No hay errores
    • Si hayaparecen migraciones, se leenleerlas antes de continuar

    8. SwapRECORDATORIO controladoCRÍ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 (ÚNICOPASO paso crítico)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
      

      CheckpointCHECKPOINT

      • /var/www/bookstack existe
      • Propietario correcto: www-data
      • La carpetaCarpeta OLD siguepermanece intacta

      9.10. LimpiezaLIMPIEZA deDE cacheCACHE yY recarga de PHPRECARGA

      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
      

      10.11. VerificaciónVERIFICACIÓN finalFINAL

      • Acceso web correcto
      • Login funcional
      • Subida de imágenes correcta
      • Versión confirmada:
      cat /var/www/bookstack/version
      

      Debe mostrar la nueva versión.


      11.12. RollbackROLLBACK inmediatoINMEDIATO (siSI algoALGO falla)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.


      NotaNOTA paraFINAL IAPARA OPERADOR / operador futuroIA

      Este documento NO es genériconormativo.

      • No asumir configuraciones distintas
      • No “mejorar”optimizar” el procedimientoproceso
      • No añadir pasos “equivalentes”
      • No cambiar el orden

      Si el sistema real no coincide con loeste descrito aquí,documento,
      se documenta primero y se adapta después.


      Fin.Fin del procedimiento.