bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Instalación de BookStack en

calendar_month May 31, 2026 schedule 17 min de lectura visibility 22 vistas
Установка BookStack на VPS: личная вики и база знаний для команды
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Instalación de BookStack en un VPS: wiki personal y base de conocimientos para el equipo

TL;DR

En esta guía detallada, configuraremos paso a paso BookStack —un potente e intuitivo sistema de gestión del conocimiento de código abierto— en su propio servidor privado virtual (VPS) con Ubuntu 24.04 LTS. Obtendrá una plataforma completamente funcional para crear y almacenar documentación, accesible para su equipo o para uso personal, con HTTPS automático, un mecanismo de copia de seguridad y protección básica.

  • Configuramos BookStack versión 24.04+ en Ubuntu 24.04 LTS.
  • Utilizamos la pila PHP 8.3/8.4, MySQL 8.0 y el servidor web Caddy para TLS automático.
  • Garantizamos la seguridad básica del servidor con UFW y Fail2ban.
  • Configuramos la copia de seguridad automática de datos y base de datos.
  • Comandos detallados y archivos de configuración listos para copiar y ejecutar.

¿Qué configuramos y por qué?

Esquema: ¿Qué configuramos y por qué?
Esquema: ¿Qué configuramos y por qué?

Instalaremos BookStack — una plataforma gratuita y de código abierto para crear y organizar documentación, ideal para notas personales, wikis de equipo, bases de conocimientos, manuales de productos y mucho más. Está diseñada con un enfoque en la facilidad de uso y una interfaz limpia y moderna. BookStack permite estructurar la información en "libros", "capítulos" y "páginas", admite editores Markdown y WYSIWYG, y cuenta con un potente sistema de búsqueda y control de acceso.

Al final, obtendrá una base de conocimientos completamente independiente, privada y controlada por usted, accesible a través de su nombre de dominio. Esto es especialmente valioso para startups, equipos de desarrollo, fundadores individuales de proyectos SaaS o cualquier persona que valore la privacidad y el control total sobre sus datos.

Existen varias alternativas, como soluciones en la nube (Confluence, Notion, GitLab Wiki, Google Docs) u otras plataformas autoalojadas (Wiki.js, MediaWiki). Los servicios en la nube son convenientes, pero a menudo tienen una tarifa mensual, limitaciones de almacenamiento y, lo más importante, usted no posee los datos por completo, sino que los confía a un proveedor externo. Las soluciones autoalojadas en un VPS, por el contrario, le otorgan soberanía total sobre su información, le permiten configurar el servidor exactamente según sus necesidades y, con el enfoque correcto, pueden ser significativamente más económicas a largo plazo, especialmente si ya alquila un VPS para otras tareas. También puede estar seguro de la ausencia de "características" ocultas y vigilancia, lo cual es crítico para proyectos que requieren un alto grado de confidencialidad.

¿Qué configuración de VPS se necesita para esta tarea?

Esquema: ¿Qué configuración de VPS se necesita para esta tarea?
Esquema: ¿Qué configuración de VPS se necesita para esta tarea?

BookStack en sí mismo no es muy exigente en cuanto a recursos, pero para el funcionamiento estable de todo el conjunto (sistema operativo, base de datos, PHP-FPM, servidor web) se requieren ciertas características mínimas. Estos requisitos son válidos para el año 2026, considerando las versiones modernas del software.

Requisitos mínimos para un proyecto pequeño (hasta 5-10 usuarios activos, hasta 1000 páginas):

  • CPU: 1-2 vCPU. Para un funcionamiento básico, un solo núcleo es suficiente, pero 2 núcleos proporcionarán una mejor capacidad de respuesta cuando varios usuarios trabajen simultáneamente o en tareas en segundo plano.
  • RAM: 2 GB. Esto será suficiente para Ubuntu Server 24.04 LTS, PHP 8.3/8.4, MySQL 8.0 y Caddy. Si planea ejecutar otros servicios en el mismo VPS, considere 4 GB.
  • Disco: 40 GB SSD. El sistema ocupará alrededor de 10-15 GB. El resto se destinará a la base de datos de BookStack, archivos de imagen, adjuntos y registros. El SSD es críticamente importante para el rendimiento de la base de datos y la capacidad de respuesta general del sistema.
  • Red: Puerto de 100 Mbps, 500 GB - 1 TB de tráfico al mes. Para una wiki normal, esto es más que suficiente.

Plan de VPS recomendado para un equipo (hasta 20-30 usuarios activos, miles de páginas, cargas regulares de archivos):

  • CPU: 2 vCPU.
  • RAM: 4 GB.
  • Disco: 80 GB SSD.
  • Red: Puerto de 1 Gbps, 2-3 TB de tráfico al mes.

Para estas características, se puede considerar un VPS con las características indicadas.

Cuándo se necesita un servidor dedicado y no un VPS

Un servidor dedicado se justifica si:

  • Carga muy alta: Cientos de usuarios activos simultáneamente, miles de solicitudes por segundo.
  • Gran volumen de datos: Decenas de miles de páginas, terabytes de adjuntos y archivos.
  • Requisitos de rendimiento: Se necesita un rendimiento máximo y predecible sin la "vecindad" de otros clientes del proveedor.
  • Hardware específico: Necesidad de arreglos RAID especiales, GPU u otras soluciones de hardware no disponibles en un VPS.
  • Ejecución de muchos otros servicios: Si, además de BookStack, el servidor ejecutará otras aplicaciones que consumen muchos recursos (CI/CD, bases de datos pesadas, servidores de juegos).

En la mayoría de los casos, un VPS bien configurado es suficiente para BookStack. Si elige un servidor dedicado, asegúrese de que sus características se ajusten a sus necesidades, por ejemplo, un dedicado adecuado.

Ubicación: qué factores influye

La elección de la ubicación del VPS influye en varios factores clave:

  • Latencia: Cuanto más cerca esté el servidor de su audiencia principal o equipo, más rápida será la respuesta del sitio web. Para un equipo en Europa, elija centros de datos europeos.
  • Legislación: Las leyes de almacenamiento de datos pueden variar mucho entre países. Asegúrese de que la ubicación elegida cumpla con sus requisitos de confidencialidad y normativas legales.
  • Disponibilidad de servicios: Algunos almacenamientos en la nube o CDN pueden tener una mejor integración o rendimiento en ciertas regiones.
  • Costo: Los precios de los VPS pueden variar según la ubicación.

Preparación del servidor

Esquema: Preparación del servidor
Esquema: Preparación del servidor

Antes de instalar BookStack, es necesario realizar una configuración básica del servidor recién instalado. Utilizaremos Ubuntu Server 24.04 LTS.

1. Conexión al servidor

Conéctese a su VPS por SSH. Si su proveedor le da acceso como root, se recomienda crear inmediatamente un nuevo usuario con permisos sudo.


ssh root@SU_DIRECCIÓN_IP_DEL_VPS

2. Creación de un nuevo usuario y configuración de sudo (si es necesario)

Si ha iniciado sesión como root, cree un nuevo usuario, por ejemplo, bookstackuser:


adduser bookstackuser
usermod -aG sudo bookstackuser

Luego, cierre sesión y vuelva a iniciarla con el nuevo usuario:


exit
ssh bookstackuser@SU_DIRECCIÓN_IP_DEL_VPS

3. Actualización del sistema

Siempre comience actualizando la lista de paquetes y los paquetes instalados a las últimas versiones. Esto garantiza que tendrá las últimas correcciones de seguridad y versiones actualizadas de las bibliotecas del sistema.


sudo apt update && sudo apt upgrade -y

4. Configuración del firewall (UFW)

Habilite el firewall UFW y permita solo los puertos necesarios. Esto es críticamente importante para la seguridad.


sudo apt install ufw -y # Instalación de UFW, si aún no está instalado
sudo ufw allow OpenSSH # Permitir SSH (puerto 22)
sudo ufw allow http # Permitir HTTP (puerto 80)
sudo ufw allow https # Permitir HTTPS (puerto 443)
sudo ufw enable # Habilitar UFW
sudo ufw status # Verificar estado del firewall

Cuando se le pida confirmación para habilitar UFW, escriba y.

5. Instalación de Fail2ban

Fail2ban ayuda a proteger el servidor de ataques de fuerza bruta, bloqueando las direcciones IP que realizan demasiados intentos fallidos de inicio de sesión.


sudo apt install fail2ban -y
sudo systemctl enable fail2ban # Habilitar el inicio automático de Fail2ban
sudo systemctl start fail2ban # Iniciar Fail2ban

Para una configuración básica, puede crear el archivo /etc/fail2ban/jail.local:


sudo nano /etc/fail2ban/jail.local

Inserte el siguiente contenido:


[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h

Guarde el archivo (Ctrl+O, Enter) y salga (Ctrl+X). Luego, reinicie Fail2ban:


sudo systemctl restart fail2ban

6. Instalación de utilidades básicas

Instalaremos las utilidades necesarias que se requerirán durante el proceso de instalación de BookStack.


sudo apt install git curl wget unzip -y

Instalación de software — paso a paso

Diagrama: Instalación de software — paso a paso
Diagrama: Instalación de software — paso a paso

Ahora que el servidor está preparado, procederemos a instalar todos los componentes necesarios para BookStack: PHP, Composer, MySQL y Caddy.

1. Instalación de PHP y extensiones necesarias

BookStack versión 24.04+ requiere PHP 8.1 o superior. Instalaremos PHP 8.3/8.4, que será relevante en 2026 y proporcionará un buen rendimiento. Para ello, primero añadiremos el repositorio ondrej/php, que contiene versiones recientes de PHP.


sudo apt install software-properties-common -y # Instalación de la utilidad para trabajar con PPA
sudo add-apt-repository ppa:ondrej/php -y # Añadir repositorio PHP
sudo apt update # Actualizar la lista de paquetes después de añadir el repositorio
sudo apt install php8.3-fpm php8.3-mysql php8.3-gd php8.3-mbstring php8.3-xml php8.3-bcmath php8.3-zip php8.3-curl php8.3-common php8.3-cli -y # Instalación de PHP 8.3 FPM y extensiones necesarias
sudo systemctl enable php8.3-fpm # Habilitar el inicio automático de PHP-FPM
sudo systemctl start php8.3-fpm # Iniciar PHP-FPM

Nota: Si PHP 8.4 se vuelve relevante para 2026, simplemente reemplace php8.3 por php8.4 en todos los comandos.

2. Instalación de Composer

Composer es un gestor de dependencias para PHP, necesario para instalar los componentes de BookStack.


php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # Descargar script de instalación de Composer
php composer-setup.php --install-dir=/usr/local/bin --filename=composer # Instalar Composer globalmente
php -r "unlink('composer-setup.php');" # Eliminar script de instalación
composer --version # Comprobar la versión de Composer

3. Instalación de MySQL Server

BookStack utiliza una base de datos para almacenar toda la información. Instalaremos MySQL 8.0.


sudo apt install mysql-server -y # Instalación de MySQL Server 8.0
sudo systemctl enable mysql # Habilitar el inicio automático de MySQL
sudo systemctl start mysql # Iniciar MySQL
sudo mysql_secure_installation # Ejecutar script para configuración segura de MySQL

Durante mysql_secure_installation, siga las instrucciones:

  • Instale el plugin VALIDATE PASSWORD COMPONENT (recomendado).
  • Establezca una contraseña segura para el usuario root de MySQL.
  • Responda Y a todas las demás preguntas (eliminar usuarios anónimos, denegar el inicio de sesión remoto de root, eliminar la base de datos de prueba, recargar las tablas de privilegios).

Crearemos una base de datos y un usuario para BookStack. Reemplace bookstack_db, bookstack_user y SU_CONTRASEÑA_SEGURA_PARA_LA_BD con sus propios valores.


sudo mysql -u root -p # Iniciar sesión en MySQL como root (se requerirá la contraseña introducida anteriormente)

Dentro de la consola de MySQL, ejecute:


CREATE DATABASE bookstack_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'bookstack_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SU_CONTRASEÑA_SEGURA_PARA_LA_BD';
GRANT ALL PRIVILEGES ON bookstack_db. TO 'bookstack_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

4. Instalación de BookStack

Clonaremos el repositorio de BookStack en el directorio /var/www/bookstack.


sudo mkdir -p /var/www/bookstack # Crear directorio para BookStack
sudo chown bookstackuser:bookstackuser /var/www/bookstack # Cambiar propietario del directorio
cd /var/www/bookstack # Cambiar al directorio
git clone https://github.com/BookStackApp/BookStack.git . # Clonar repositorio en el directorio actual

Instalaremos las dependencias de BookStack usando Composer.


composer install --no-dev # Instalar dependencias sin paquetes de desarrollo

Configuraremos los permisos de acceso para los directorios de BookStack.


sudo chown -R www-data:www-data /var/www/bookstack # Cambiar propietario de los archivos al usuario del servidor web
sudo chmod -R 755 /var/www/bookstack # Establecer permisos de lectura/escritura para los archivos
sudo chmod -R 775 /var/www/bookstack/storage /var/www/bookstack/bootstrap/cache # Establecer permisos de escritura para directorios críticos

5. Instalación del servidor web Caddy

Caddy es un potente servidor web que gestiona automáticamente los certificados HTTPS (Let's Encrypt), lo que simplifica enormemente la configuración. Es una excelente alternativa a Nginx y Apache.


sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https # Instalación de paquetes necesarios
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg # Añadir clave GPG
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list # Añadir repositorio de Caddy
sudo apt update # Actualizar lista de paquetes
sudo apt install caddy -y # Instalación de Caddy
sudo systemctl enable caddy # Habilitar inicio automático de Caddy
sudo systemctl start caddy # Iniciar Caddy

Ahora Caddy está instalado y listo para funcionar. En el siguiente paso lo configuraremos.

Configuración

Diagrama: Configuración
Diagrama: Configuración

Después de instalar todos los componentes, es necesario configurar BookStack y el servidor web Caddy para que trabajen juntos.

1. Configuración del archivo .env de BookStack

BookStack utiliza el archivo .env para almacenar la configuración, incluyendo los datos de conexión a la base de datos y las claves de la aplicación. Vaya al directorio de BookStack y copie el archivo de ejemplo:


cd /var/www/bookstack
cp .env.example .env

Ahora abra el archivo .env para editarlo:


sudo nano .env

Busque y edite las siguientes líneas, reemplazando los valores por los suyos propios:

  • APP_URL: Especifique la URL completa de su BookStack (por ejemplo, https://your-bookstack-domain.com).
  • DB_DATABASE: El nombre de su base de datos MySQL (por ejemplo, bookstack_db).
  • DB_USERNAME: El nombre de usuario de MySQL para BookStack (por ejemplo, bookstack_user).
  • DB_PASSWORD: La contraseña del usuario de MySQL para BookStack.

Ejemplo de líneas editadas:


APP_URL=https://your-bookstack-domain.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bookstack_db
DB_USERNAME=bookstack_user
DB_PASSWORD=SU_CONTRASEÑA_SEGURA_PARA_LA_BD

Guarde el archivo (Ctrl+O, Enter) y salga (Ctrl+X).

2. Generación de la clave de aplicación

BookStack requiere una clave de aplicación única para el cifrado y la seguridad. Ejecute el siguiente comando en el directorio de BookStack:


php artisan key:generate

Este comando generará automáticamente una clave y la añadirá a su archivo .env.

3. Ejecución de migraciones de base de datos

Ahora es necesario crear las tablas en la base de datos de BookStack.


php artisan migrate --force # Ejecutar migraciones de base de datos

Cuando se le solicite confirmación, escriba yes.

4. Configuración de Caddyfile

Caddy gestiona automáticamente HTTPS, lo que lo hace ideal para BookStack. Edite el archivo de configuración predeterminado de Caddy:


sudo nano /etc/caddy/Caddyfile

Elimine todo el contenido del archivo e inserte la siguiente configuración. Reemplace your-bookstack-domain.com con su dominio real:


your-bookstack-domain.com {
    # Especificamos el directorio raíz de BookStack
    root  /var/www/bookstack/public

    # Habilitamos el servidor de archivos estáticos
    file_server

    # Proxy de solicitudes PHP a PHP-FPM
    php_fastcgi unix//run/php/php8.3-fpm.sock

    # Configuramos el registro de acceso
    log {
        output file /var/log/caddy/access.log
        format json
    }

    # Manejo de errores
    handle_errors {
        rewrite  /index.php
    }

    # Redirección rápida de HTTP a HTTPS
    # Caddy lo hace automáticamente, pero esta línea puede ayudar en algunos casos
    # O se puede usar {
    #   redir https://{host}{uri}
    # }
}

Nota: Asegúrese de que php8.3-fpm.sock coincida con la versión de PHP que instaló. Si instaló PHP 8.4, reemplácelo por php8.4-fpm.sock.

Cree el directorio para los registros de Caddy:


sudo mkdir -p /var/log/caddy
sudo chown caddy:caddy /var/log/caddy # Establecer propietario para el directorio de registros

Guarde el archivo (Ctrl+O, Enter) y salga (Ctrl+X).

5. Verificación y reinicio de Caddy

Verifique la configuración de Caddy en busca de errores:


sudo caddy validate --config /etc/caddy/Caddyfile

Si no hay errores, reinicie Caddy para aplicar la nueva configuración:


sudo systemctl reload caddy

Asegúrese de que Caddy funciona correctamente:


sudo systemctl status caddy

El estado debe ser active (running).

6. Verificación de la operatividad

Ahora BookStack debería estar accesible a través de su nombre de dominio con HTTPS. Abra un navegador web y vaya a https://your-bookstack-domain.com.

Debería ver la página de inicio de sesión de BookStack. Las credenciales iniciales de inicio de sesión son:

¡Asegúrese de cambiar estos datos inmediatamente después del primer inicio de sesión!

También puede verificar la disponibilidad desde el servidor:


curl -I https://your-bookstack-domain.com

La respuesta debería contener los encabezados HTTP/2 200 OK.

Copias de seguridad y mantenimiento

Diagrama: Copias de seguridad y mantenimiento
Diagrama: Copias de seguridad y mantenimiento

Las copias de seguridad regulares son la piedra angular de cualquier sistema en producción. BookStack almacena datos en la base de datos y archivos (imágenes, adjuntos) en el disco. El mantenimiento incluye actualizaciones de software y monitorización.

1. Qué respaldar

  • Base de datos de BookStack: Contiene todas las páginas, libros, capítulos, usuarios y configuraciones. Esto es lo más importante.
  • Archivos de BookStack: Incluyen imágenes subidas, adjuntos, así como el archivo .env (con datos confidenciales como la clave de la aplicación y las credenciales de la base de datos).

2. Script simple de copia de seguridad automática

Crearemos un script simple para la copia de seguridad. Se recomienda no almacenar las copias de seguridad en el mismo servidor.


sudo nano /usr/local/bin/bookstack_backup.sh

Pegue el siguiente contenido, reemplazando ВАШ_НАДЕЖНЫЙ_ПАРОЛЬ_ДЛЯ_БД y bookstack_db con sus propios valores:


#!/bin/bash

# Configuración
DB_NAME="bookstack_db"
DB_USER="bookstack_user" # Es mejor crear un usuario MySQL separado solo para copias de seguridad con permisos SELECT, LOCK TABLES
DB_PASS="SU_CONTRASEÑA_SEGURA_PARA_LA_BD"
BOOKSTACK_PATH="/var/www/bookstack"
BACKUP_DIR="/var/backups/bookstack"
DATE=$(date +%Y%m%d%H%M%S)
FILENAME_DB="${DB_NAME}_${DATE}.sql"
FILENAME_FILES="bookstack_files_${DATE}.tar.gz"

# Creación del directorio para copias de seguridad, si no existe
mkdir -p "${BACKUP_DIR}"

echo "Iniciando la copia de seguridad de BookStack..."

# 1. Copia de seguridad de la base de datos
echo "Copia de seguridad de la base de datos..."
mysqldump --user="${DB_USER}" --password="${DB_PASS}" "${DB_NAME}" > "${BACKUP_DIR}/${FILENAME_DB}"
if [ $? -eq 0 ]; then
    echo "Copia de seguridad de la base de datos creada con éxito: ${FILENAME_DB}"
else
    echo "Error al crear la copia de seguridad de la base de datos."
    exit 1
fi

# 2. Copia de seguridad de los archivos de BookStack (excluyendo caché y logs)
echo "Copia de seguridad de los archivos de BookStack..."
tar -czf "${BACKUP_DIR}/${FILENAME_FILES}" -C "${BOOKSTACK_PATH}" \
    --exclude='storage/uploads/images/*' \
    --exclude='storage/uploads/files/*' \
    --exclude='storage/logs/*' \
    --exclude='bootstrap/cache/*' \
    --exclude='vendor/*' \
    .
# Adicionalmente, guardamos solo .env y uploads por separado para facilitar su restauración
cp "${BOOKSTACK_PATH}/.env" "${BACKUP_DIR}/bookstack_env_${DATE}.env"
tar -czf "${BACKUP_DIR}/bookstack_uploads_images_${DATE}.tar.gz" -C "${BOOKSTACK_PATH}/storage/uploads" images
tar -czf "${BACKUP_DIR}/bookstack_uploads_files_${DATE}.tar.gz" -C "${BOOKSTACK_PATH}/storage/uploads" files

if [ $? -eq 0 ]; then
    echo "Copia de seguridad de los archivos de BookStack creada con éxito: ${FILENAME_FILES}"
else
    echo "Error al crear la copia de seguridad de los archivos de BookStack."
    exit 1
fi

# 3. Eliminación de copias de seguridad antiguas (por ejemplo, de más de 7 días)
echo "Eliminando copias de seguridad antiguas..."
find "${BACKUP_DIR}" -type f -name "*.sql" -mtime +7 -delete
find "${BACKUP_DIR}" -type f -name "*.tar.gz" -mtime +7 -delete
find "${BACKUP_DIR}" -type f -name "*.env" -mtime +7 -delete

echo "Copia de seguridad completada."

Guarde el archivo y hágalo ejecutable:


sudo chmod +x /usr/local/bin/bookstack_backup.sh

3. Automatización de copias de seguridad con Cron

Añadiremos el script al planificador Cron para su ejecución diaria.


sudo crontab -e

Seleccione un editor de texto (si se le solicita) y añada la siguiente línea al final del archivo para ejecutar la copia de seguridad cada día a las 3:00 de la madrugada:


0 3 * * * /usr/local/bin/bookstack_backup.sh >> /var/log/bookstack_backup.log 2>&1

Guarde y salga. Ahora las copias de seguridad se crearán automáticamente.

4. Dónde almacenar las copias de seguridad

¡Nunca almacene todas las copias de seguridad solo en el mismo servidor que el servicio principal! Si el servidor falla, perderá todo.

  • Almacenamiento externo compatible con S3: Amazon S3, DigitalOcean Spaces, Backblaze B2. Esta es una opción fiable y relativamente económica. Puede utilizar utilidades como s3cmd o rclone para la sincronización automática.
  • VPS separado: Alquile un VPS pequeño y económico exclusivamente para almacenar copias de seguridad y sincronícelas allí mediante SFTP/RSYNC.
  • Unidad de red local (NAS): Si tiene su propia infraestructura.

Por ejemplo, para enviar copias de seguridad a S3, puede añadir al script bookstack_backup.sh, después de crear los archivos, el comando s3cmd put "${BACKUP_DIR}/${FILENAME_DB}" s3://your-s3-bucket/bookstack/ (requerirá la instalación y configuración de s3cmd).

5. Actualizaciones: rolling vs maintenance window

Las actualizaciones regulares son cruciales para la seguridad y para obtener nuevas funciones.

  • Actualizaciones del sistema (SO, PHP, MySQL):
    • Rolling (continuas): Para parches de seguridad no críticos, se pueden configurar actualizaciones automáticas (por ejemplo, con unattended-upgrades).
    • Maintenance Window (ventana de mantenimiento): Para actualizaciones mayores de PHP, MySQL o el kernel de Linux, se recomienda planificar una ventana de mantenimiento, ya que pueden requerir un reinicio del servidor o provocar una interrupción temporal del servicio. Pruebe las actualizaciones en un servidor de staging, si es posible.
    
    sudo apt update && sudo apt upgrade -y # Actualización del sistema
    
  • Actualizaciones de BookStack:

    BookStack se actualiza a través de Git y Composer. Se recomienda realizarlas durante una ventana de mantenimiento.

    
    cd /var/www/bookstack
    git pull # Descarga los últimos cambios del repositorio
    composer install --no-dev # Actualiza las dependencias
    php artisan migrate --force # Ejecuta las migraciones de la base de datos (si las hay)
    php artisan cache:clear # Limpia la caché de BookStack
    php artisan view:clear # Limpia la caché de las vistas
    sudo chown -R www-data:www-data /var/www/bookstack # Asegúrese de que los permisos son correctos después del pull
    sudo chmod -R 775 /var/www/bookstack/storage /var/www/bookstack/bootstrap/cache
    sudo systemctl reload php8.3-fpm # Reinicia PHP-FPM
    sudo systemctl reload caddy # Reinicia Caddy
    

    Siempre consulte la documentación oficial de BookStack antes de actualizar, ya que el proceso puede cambiar.

Solución de problemas + FAQ

Mi BookStack no funciona, veo un error 500 o una página en blanco. ¿Qué debo hacer?

El error 500 (Internal Server Error) suele indicar un problema en el funcionamiento de PHP o de la aplicación. En primer lugar, revise los logs:

  • Logs de Caddy: sudo tail -f /var/log/caddy/access.log y sudo journalctl -u caddy -f. Busque errores relacionados con el proxying de PHP.
  • Logs de PHP-FPM: sudo tail -f /var/log/php8.3-fpm.log (o la versión de PHP correspondiente).
  • Logs de BookStack: sudo tail -f /var/www/bookstack/storage/logs/laravel.log. Este es el log más importante para depurar problemas del propio BookStack.

Causas frecuentes: permisos de acceso incorrectos a archivos/directorios (especialmente storage y bootstrap/cache), errores en el archivo .env (credenciales de base de datos incorrectas, APP_URL erróneo), extensiones PHP faltantes, problemas de conexión a la base de datos.

¿Qué configuración mínima de VPS es adecuada para BookStack?

Para un uso personal pequeño o un equipo de 2-3 personas con un volumen de datos no muy grande, un VPS con 1-2 vCPU, 2 GB de RAM y 40 GB de disco SSD será suficiente. Esto es adecuado para el funcionamiento estable de Ubuntu 24.04 LTS, PHP 8.3/8.4, MySQL 8.0 y Caddy con BookStack. Es importante que el disco sea SSD para un buen rendimiento de la base de datos.

¿Qué elegir: VPS o dedicado para esta tarea?

Para la mayoría de los escenarios de uso de BookStack (wiki personal, base de conocimientos para un equipo pequeño o mediano de hasta 30-50 personas), un VPS es la opción óptima. Ofrece suficiente rendimiento, flexibilidad y un coste significativamente menor. Un servidor dedicado debe considerarse si tiene un equipo muy grande (cientos de usuarios), un volumen de datos enorme, requisitos críticos de rendimiento sin compromisos, o si planea alojar muchas otras aplicaciones que consumen muchos recursos en el mismo servidor.

He cambiado el nombre de dominio. ¿Qué necesito actualizar?

Si ha cambiado el nombre de dominio, debe actualizar al menos dos lugares:

  1. Archivo .env de BookStack: Cambie el valor de APP_URL al nuevo nombre de dominio (por ejemplo, APP_URL=https://new-domain.com).
  2. Caddyfile: Edite /etc/caddy/Caddyfile y reemplace el nombre de dominio antiguo por el nuevo en la primera línea (por ejemplo, new-domain.com { ... }).
Después de los cambios, no olvide reiniciar Caddy: sudo systemctl reload caddy y limpiar la caché de BookStack: php artisan cache:clear && php artisan view:clear.

¿Cómo actualizar BookStack a una nueva versión?

El proceso de actualización de BookStack generalmente incluye: navegar al directorio de BookStack (cd /var/www/bookstack), obtener los últimos cambios de Git (git pull), actualizar las dependencias de PHP a través de Composer (composer install --no-dev), ejecutar las migraciones de la base de datos (php artisan migrate --force) y limpiar la caché de BookStack (php artisan cache:clear && php artisan view:clear). Siempre se recomienda leer las instrucciones oficiales de actualización para la versión específica de BookStack, ya que puede haber pasos específicos.

BookStack muestra un error "Access Denied" al intentar conectarse a MySQL.

Este error significa que BookStack no puede conectarse a la base de datos MySQL con las credenciales proporcionadas. Verifique lo siguiente:

  • Archivo .env: Asegúrese de que DB_USERNAME, DB_PASSWORD y DB_DATABASE en el archivo /var/www/bookstack/.env coinciden exactamente con los que creó en MySQL.
  • Usuario de MySQL: Asegúrese de que el usuario bookstack_user existe en MySQL y tiene los privilegios correctos sobre la base de datos bookstack_db. Puede verificar esto iniciando sesión en MySQL como root y ejecutando SELECT user, host FROM mysql.user; y SHOW GRANTS FOR 'bookstack_user'@'localhost';.
  • Servicio de MySQL: Verifique que el servicio de MySQL esté en ejecución: sudo systemctl status mysql.

Conclusiones y próximos pasos

Diagrama: Conclusiones y próximos pasos
Diagrama: Conclusiones y próximos pasos

¡Felicidades! Ha instalado y configurado BookStack con éxito en su VPS, creando una plataforma fiable y controlada por usted para la gestión del conocimiento. Ahora tiene una potente herramienta para organizar información, ya sean notas personales, documentación de proyectos o una extensa base de conocimientos para su equipo. Ha obtenido control total sobre los datos y la infraestructura, garantizando la confidencialidad y la seguridad.

¿Qué sigue?

  • Configuración de usuarios y roles: En BookStack, puede crear usuarios, grupos y asignarles diferentes derechos de acceso a libros, capítulos y páginas. Comience creando cuentas para su equipo y configurando los permisos correspondientes.
  • Personalización de la apariencia: BookStack le permite cambiar el logotipo, el esquema de colores y añadir CSS personalizado para adaptar su wiki a su estilo.
  • Integración con servicios externos: Considere configurar el inicio de sesión único (SSO) a través de LDAP, SAML2 o proveedores sociales, si es relevante para su equipo.
  • Monitorización del servidor: Instale sistemas de monitorización (por ejemplo, Prometheus + Grafana o Zabbix) para rastrear la carga de CPU, RAM, disco y el estado de los servicios, con el fin de reaccionar rápidamente a posibles problemas.

¿Te fue útil esta guía?

instalación de BookStack en VPS: wiki personal y base de conocimientos para el equipo
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.