Alojar BookStack en un VPS administrado: su documentación en su casa

Alojar BookStack en un VPS administrado significa guardar su documentación en una máquina propia, que nuestros equipos mantienen actualizada y supervisan día y noche. BookStack es software libre con licencia MIT, fácil de ejecutar: PHP, MySQL o MariaDB y un servidor web, sin Docker. Esta guía sigue su documentación oficial: la instalación, HTTPS, los datos, los correos, la seguridad, las copias de seguridad y las actualizaciones.

Simon Vasconcelos Lee Por Publicado el 13 de noviembre de 202611 minutos de lectura

Todas las guías

Lo esencial

  1. La licencia MIT de BookStack permite cualquier uso en una empresa, y el proyecto mantiene una sola versión, libre, sin edición empresarial.
  2. BookStack prescinde de Docker: requiere PHP 8.2 o superior, MySQL 8.0 o MariaDB 10.6 o superior, y un servidor web que sirva su carpeta public.
  3. Instálelo con el script del proyecto en un Ubuntu recién instalado, o a mano con Git y Composer en una máquina que ya esté en servicio.
  4. Sírvalo en HTTPS con Certbot y escriba después la dirección exacta en APP_URL: los enlaces y las cookies seguras dependen de ella.
  5. Haga copia de la base, de .env, de public/uploads, de storage/uploads y de themes, y guarde con esmero APP_KEY.

Qué hace BookStack

BookStack es una plataforma de documentación pensada para seguir siendo sencilla: su README busca una toma de contacto inmediata, con unas simples nociones de procesador de textos. Sus equipos escriben en ella sus procedimientos, su documentación y su base de conocimiento, en un navegador, en español si lo desean.

El proyecto asume sus decisiones: su README precisa que BookStack no está concebido como una plataforma extensible hacia otros usos, y sigue centrado en la documentación. Su renderizado de PDF pasa por dompdf, sin instalar nada más, con capacidades limitadas; el proyecto documenta otros motores con EXPORT_PDF_COMMAND.

Lo que permite la licencia MIT

BookStack se publica bajo la licencia MIT por Dan Brown y los colaboradores del proyecto. Autoriza cualquier uso, cualquier modificación y cualquier distribución, con una condición: conservar el aviso de copyright y el texto de la licencia en toda copia del software. Las preguntas frecuentes del proyecto precisan que esta atribución se refiere al código que usted comparte: nada le obliga a mostrar el nombre o el logotipo de BookStack en su instancia.

El proyecto mantiene una sola versión, libre y gratuita: no ofrece edición empresarial, y no tiene alojamiento oficial ni proyecto de abrir uno. En cambio, vende planes de soporte, que contribuyen a su financiación junto con las donaciones y los patrocinios. BookStack se instala, por tanto, en su servidor, sin ninguna licencia que comprar.

Los requisitos de BookStack

ElementoVersión requeridaPrecisión
PHP8.2 o superiorExtensiones curl, dom, gd, iconv, mbstring, mysqlnd, openssl, pdo, pdo_mysql, tokenizer, xml y zip
Base de datosMySQL 8.0 o superior, MariaDB 10.6 o superiorUna sola base, cuyo esquema gestiona el propio BookStack
Composer2.2 o superiorPara las dependencias de PHP
GitSin versión precisadaPara obtener el código y aplicar las actualizaciones
Servidor webCompatible con PHPApache o Nginx, raíz web en la carpeta public

Docker sigue siendo opcional. El proyecto no publica una imagen oficial: las instalaciones en contenedor proceden de proyectos de la comunidad, LinuxServer.io y solidnerd. Esta guía sigue la vía oficial, PHP y MySQL directamente en el servidor, que no exige nada más.

La documentación descarta el alojamiento PHP compartido: BookStack requiere un servidor que usted administre. No cifra ni la memoria ni el procesador necesarios. En un VPS administrado, descríbanos su uso, el número de personas y el volumen de imágenes y de archivos adjuntos, y le recomendamos el tamaño adecuado.

La instalación de BookStack

El proyecto propone dos vías: un script para Ubuntu, el más corto en un servidor nuevo, y una instalación manual para todos los demás casos.

Con el script del proyecto, en un Ubuntu recién instalado

SistemaLo que instala el script
Ubuntu 26.04Apache, MySQL 8.4 y PHP 8.5
Ubuntu 24.04Apache, MySQL 8.0 y PHP 8.3
Ubuntu 22.04Apache, MySQL 8.0 y PHP 8.4
Terminal, para Ubuntu 24.04
wget https://codeberg.org/bookstack/devops/raw/branch/main/scripts/installation-ubuntu-24.04.sh
chmod a+x installation-ubuntu-24.04.sh
sudo ./installation-ubuntu-24.04.sh

Estos scripts están reservados a un sistema recién instalado: pueden sobrescribir una configuración web existente. Dejan también de lado dos asuntos, los ajustes de correo y la seguridad del sistema, que hay que prever aparte.

El script coloca BookStack en /var/www/bookstack. El de Ubuntu 26.04 pide el dominio y la dirección de la cuenta de administrador, y muestra al final una contraseña generada al azar, que no figura en su registro: anótela. Con otro script, tome nota de los accesos que se muestran al final y cambie cualquier acceso por defecto desde el primer inicio de sesión.

A mano, en cualquier otra máquina

Empiece por la base de datos: una base y un usuario limitado a esa base. El script del proyecto procede así, con la contraseña que usted elija en lugar de change-me:

Terminal
sudo mysql -u root --execute="CREATE DATABASE bookstack;"
sudo mysql -u root --execute="CREATE USER 'bookstack'@'localhost' IDENTIFIED BY 'change-me';"
sudo mysql -u root --execute="GRANT ALL ON bookstack.* TO 'bookstack'@'localhost';FLUSH PRIVILEGES;"

Descargue después la rama release, aplique los permisos que da la documentación para /var/www/bookstack e instale las dependencias:

Terminal
cd /var/www
sudo git clone https://source.bookstackapp.com/bookstack.git --branch release --single-branch bookstack
sudo chown -R $USER:www-data /var/www/bookstack
sudo chmod -R 755 /var/www/bookstack
sudo chmod -R 775 /var/www/bookstack/storage /var/www/bookstack/bootstrap/cache /var/www/bookstack/public/uploads
cd bookstack
composer install --no-dev
cp .env.example .env
sudo chmod 640 .env

Indique la base y la dirección en .env:

.env
APP_URL=https://docs.example.com
DB_HOST=localhost
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=change-me
Terminal, en /var/www/bookstack
php artisan key:generate
php artisan migrate

Apunte por último la raíz web a la carpeta public: DocumentRoot en Apache, root en Nginx. Sin Apache, o cuando los archivos .htaccess están desactivados, añada las reglas de reescritura de direcciones: el proyecto publica ejemplos para Apache y para Nginx.

Una instalación manual se abre con la cuenta admin@admin.com y la contraseña password. Cambie la dirección y la contraseña desde el primer inicio de sesión.

HTTPS y APP_URL

Los visitantes llegan por los puertos 80 y 443, bajo el nombre de dominio del servidor. Cree para ese nombre registros A y AAAA y solicite después el certificado: el script de Ubuntu 26.04 configura Apache solo en el puerto 80, y la página de instalación deja HTTPS en sus manos. Certbot instala el certificado Let’s Encrypt, adapta Apache y renueva el certificado por sí mismo. Con Nginx, sustituya --apache por --nginx.

Terminal
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
sudo certbot --apache -d docs.example.com

Pase después la dirección a HTTPS en .env. APP_URL debe corresponder exactamente a la dirección de visita, prefijo incluido: una discrepancia se nota por estilos ausentes, iconos desmesurados y menús rotos. Una dirección en https activa por sí misma las cookies seguras.

.env
APP_URL=https://docs.example.com

Si ya existen páginas, sus enlaces conservan la dirección antigua en la base. Haga copia de la base y ejecute después el comando del proyecto:

Terminal, en /var/www/bookstack
php artisan bookstack:update-url http://docs.example.com https://docs.example.com

BookStack se sirve en la raíz de un dominio o de un subdominio, y la documentación describe también una instalación en una subcarpeta, como example.com/bookstack. Si se añade un proxy inverso delante de Apache, declare su dirección en APP_PROXIES: sin ella, el registro de auditoría y la limitación de caudal ven la dirección del proxy en lugar de la de los visitantes. La documentación reserva APP_PROXIES="*" para el diagnóstico.

Dónde viven sus datos

UbicaciónLo que contiene
La base MySQL o MariaDBTodos los datos de la aplicación, entre ellos el contenido de sus páginas
.envLa configuración, con APP_KEY y los accesos a la base y al servidor de correo
public/uploadsLas imágenes, con el almacenamiento por defecto
storage/uploadsLos archivos adjuntos, protegidos por los permisos de BookStack
themesSus personalizaciones de tema, si las hay

Conserve la misma APP_KEY a lo largo del tiempo y haga copia de ella. BookStack la usa para cifrar, entre otras cosas, los secretos de doble autenticación: cambiarla puede romper esas funciones, y desde la versión 26.09 la aplicación devuelve un error si falta.

Las imágenes son públicas por defecto

Con el almacenamiento por defecto, el servidor web sirve directamente las imágenes, lo que es rápido, y cualquier persona que conozca su dirección puede abrirlas. Para una documentación interna, la elección se hace en STORAGE_TYPE:

<code>STORAGE_TYPE</code>ImágenesAcceso
localpublic/uploads/imagesServidas directamente por el servidor web
local_securestorage/uploads/imagesReservadas a las personas conectadas, salvo que se active el acceso público
local_secure_restrictedstorage/uploads/imagesSegún los permisos de la página, la opción más exigente en recursos
s3Un bucket compatible con S3Imágenes que se hacen públicas al enviarlas

Para los archivos pesados, hay que ajustar tres valores a la vez: FILE_UPLOAD_SIZE_LIMIT en .env, post_max_size y upload_max_filesize en php.ini, y client_max_body_size en Nginx, que vale 1 MB por defecto.

Otros dos ajustes cuentan también para una documentación viva: cada página conserva 100 revisiones por defecto (REVISION_LIMIT), y la papelera guarda los elementos eliminados durante 30 días (RECYCLE_BIN_LIFETIME).

Los correos: SMTP y cola de espera

BookStack envía correos para la confirmación de las direcciones, el olvido de contraseña, las invitaciones y las notificaciones. Desde un VPS de Simafri, el envío pasa por un relé SMTP autenticado, en el puerto 587: la dirección de una cuenta de correo que ya tenga, o Simafri Suite.

.env
MAIL_DRIVER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_ENCRYPTION=tls
MAIL_USERNAME=bookstack@example.com
MAIL_PASSWORD=change-me
MAIL_FROM=bookstack@example.com
MAIL_FROM_NAME=BookStack

Compruebe el resultado en «Settings», «Maintenance», con la acción «Send a Test Email», que muestra los errores encontrados. Un fallo durante una invitación se muestra en pantalla, mientras que un fallo de notificación queda en el registro de la aplicación.

Enviar en segundo plano

Por defecto, BookStack envía correos y webhooks durante la petición, lo que puede ralentizar las páginas. Para pasar a segundo plano, escriba QUEUE_CONNECTION=database en .env y ponga en marcha un servicio, con el ejemplo que da la documentación para una instalación Ubuntu por script:

/etc/systemd/system/bookstack-queue.service
[Unit]
Description=BookStack Queue Worker

[Service]
User=www-data
Group=www-data
Restart=always
ExecStart=/usr/bin/php /var/www/bookstack/artisan queue:work --sleep=3 --tries=1 --max-time=3600

[Install]
WantedBy=multi-user.target
Terminal
sudo systemctl daemon-reload
sudo systemctl enable bookstack-queue.service
sudo systemctl start bookstack-queue.service

Proteger su instancia de BookStack

La documentación de seguridad da una lista que conviene repasar desde la instalación:

  1. Cambie la dirección y la contraseña del primer administrador.
  2. Compruebe que el servidor web sirve solo la carpeta public, sobre todo si BookStack vive en /var/www.
  3. Limite el usuario de la base a la única base de BookStack.
  4. Indique APP_URL, para que las direcciones generadas por el sistema no puedan manipularse.
  5. Revise los ajustes de registro y de acceso público, y después los roles.

La doble autenticación se impone después por rol. Suscríbase también a la lista de distribución de seguridad del proyecto, para recibir sus alertas. La dirección /status sirve para una supervisión: responde 200 cuando todo va bien, y un código de error igual o superior a 400 en caso contrario.

PHP cuenta tanto como BookStack. El proyecto publicó el 21 de octubre de 2026 una alerta sobre una actualización crítica de PHP, corregida en 8.5.12, 8.4.27, 8.3.36 y 8.2.35. Ubuntu publica esas correcciones con sus propios números de paquete, como 8.3.6-0ubuntu0.24.04.13 para Ubuntu 24.04.

Para sus contenidos, mantenga activado el filtrado por defecto, y reserve su relajación para las instancias donde solo escriben personas de confianza. Si se pierde una cuenta de administrador, php artisan bookstack:create-admin crea otra, y php artisan bookstack:reset-mfa retira la doble autenticación de un usuario.

Copias de seguridad y actualizaciones

Una copia de seguridad completa reúne la base y las cuatro ubicaciones de archivos propias de su instancia. Las exportaciones de contenido sirven para otra cosa: la documentación precisa que no sustituyen a una copia de seguridad.

Terminal, en /var/www/bookstack
sudo mysqldump -u root bookstack > bookstack.backup.sql
tar -czvf bookstack-files-backup.tar.gz .env public/uploads storage/uploads themes

La primera línea se dirige a una instalación por script, donde el root de MySQL se conecta mediante sudo; en otros casos, escriba mysqldump -u bookstack -p bookstack. Guarde esos dos archivos aparte, preferiblemente en otra máquina. El archivo comprimido contiene .env, es decir, APP_KEY y sus contraseñas: trátelo como un secreto.

Restaurar

En una máquina nueva, instale BookStack sin ejecutar php artisan migrate, un paso que hay que comentar en el script si lo usa, y restaure después la base y los archivos, conservando la APP_KEY original:

Terminal, en /var/www/bookstack
sudo mysql -u root bookstack < bookstack.backup.sql
tar -xvzf bookstack-files-backup.tar.gz

Si la versión instalada es más reciente que la copia, ejecute después php artisan migrate. Restablezca los permisos de escritura del servidor web en las carpetas restauradas. Si la dirección ha cambiado, corrija APP_URL y ejecute bookstack:update-url.

Actualizar

Haga copia de la base y de los archivos antes de cada actualización y, después, desde la carpeta de BookStack:

Terminal, en /var/www/bookstack
git pull origin release
composer install --no-dev
php artisan migrate
php artisan cache:clear
php artisan config:clear
php artisan view:clear

El script para Ubuntu 26.04 instala BookStack sin Composer. La página de las actualizaciones propone entonces, en beta, ./bookstack-system-cli download-vendor en lugar de composer install --no-dev. Esa misma herramienta sabe copiar y restaurar, pero el proyecto aún no la considera lista para producción: pruébela antes de fiarse de ella.

La documentación mantiene una lista de indicaciones propias de cada versión, que hay que leer para la versión que se vaya a instalar. Algunos ejemplos:

Los fallos se corrigen en versiones de mantenimiento, como la 26.09.3 del 11 de noviembre de 2026: las imágenes y los dibujos de una página en borrador o en la papelera seguían siendo accesibles y modificables, y el borrador personal de un editor podía quedar visible para otras personas.

Quién hace qué en un VPS administrado

El autoalojamiento exige mantener el servidor además de la aplicación. En un VPS administrado, nuestros equipos se encargan del servidor y siguen su instancia de forma proactiva; BookStack sigue siendo su software, con sus ajustes y sus datos.

TemaNuestros equiposUsted
El servidorActualizaciones del sistema y de seguridad, con intervenciones en el servidor incluidasEl momento que mejor convenga a su actividad
La supervisiónServidor vigilado las 24 horas del día, los 7 días de la semana, con intervención sin esperar su llamadaSus usuarios, sus roles y sus contenidos
BookStackSeguimiento proactivo: errores, lentitud y espacio en disco detectados, corrección recomendadaSu instalación, sus actualizaciones y sus ajustes, que aplica usted o su asistente de IA
Las copias de seguridadCada noche, cifradas y guardadas fuera de la máquina; restauración incluidaLa petición de restauración, cuando la necesite
La migraciónSu servidor actual migrado, gratisEl momento del cambio

Si prefiere que nuestros equipos intervengan en la propia aplicación, ese servicio se factura por horas o a precio cerrado, con un presupuesto comunicado antes de la intervención.

BookStack, en un servidor que cuidamos por usted

Con un VPS administrado de Simafri, nuestros equipos mantienen actualizado el servidor de su instancia de BookStack, lo vigilan día y noche e intervienen sin esperar su llamada; también siguen su instancia de forma proactiva y le recomiendan las correcciones útiles, que aplica usted o su asistente de IA. Las copias de seguridad se cifran cada noche y se guardan fuera de la máquina, su restauración está incluida, y la migración de su servidor actual es gratuita.

Descubrir los VPS administrados

Preguntas frecuentes

¿BookStack es gratuito para una empresa?

Sí. BookStack tiene licencia MIT, que autoriza cualquier uso, y el proyecto mantiene una sola versión, sin edición empresarial. Ofrece también planes de soporte de pago, que son opcionales. Queda el coste del servidor que lo ejecuta.

¿Cómo instalar BookStack en Ubuntu?

En un Ubuntu 26.04, 24.04 o 22.04 recién instalado, descargue el script de instalación del proyecto, hágalo ejecutable y ejecútelo con sudo. Instala Apache, MySQL y PHP. En una máquina que ya esté en servicio, siga la instalación manual, porque el script puede sobrescribir una configuración web existente.

¿Existe una imagen Docker oficial de BookStack?

No. Las instalaciones en contenedor proceden de proyectos de la comunidad, LinuxServer.io y solidnerd. La vía oficial instala BookStack directamente en el servidor, con PHP, MySQL o MariaDB y un servidor web, a mano o con el script para Ubuntu.

¿Qué configuración hace falta para alojar BookStack?

PHP 8.2 o superior, MySQL 8.0 o MariaDB 10.6 o superior, Composer 2.2 o superior, Git y un servidor web compatible con PHP. El proyecto no cifra ni la memoria ni el procesador, y descarta el alojamiento PHP compartido.

¿Cuál es la contraseña por defecto de BookStack?

Una instalación manual se abre con admin@admin.com y la contraseña password, que hay que cambiar desde el primer inicio de sesión. El script para Ubuntu 26.04 muestra al final una contraseña generada al azar. Si pierde el acceso, php artisan bookstack:create-admin crea un nuevo administrador.

¿Cómo hacer copia de seguridad de BookStack?

Exporte la base con mysqldump y archive .env, public/uploads, storage/uploads y themes. Conserve la APP_KEY original al restaurar, y guarde todo fuera de la máquina. Las exportaciones de contenido de BookStack no sustituyen a esta copia de seguridad.

¿Cómo configurar los correos de BookStack?

Indique MAIL_DRIVER, MAIL_HOST, MAIL_PORT, MAIL_ENCRYPTION, MAIL_USERNAME, MAIL_PASSWORD, MAIL_FROM y MAIL_FROM_NAME en el archivo .env y ejecute después Send a Test Email en Settings, Maintenance. Desde un VPS de Simafri, el envío pasa por un relé SMTP autenticado, en el puerto 587.

¿Un VPS administrado cubre BookStack?

Un VPS administrado cubre el servidor: sistema, seguridad, supervisión y copias de seguridad. Nuestros equipos siguen también su instancia de forma proactiva y le recomiendan las correcciones útiles, que aplica usted. Una intervención en la aplicación se factura por horas o a precio cerrado.

Fuentes y documentación oficial

Contáctenos