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.
Por Simon Vasconcelos Lee
Publicado el 13 de noviembre de 202611 minutos de lectura
public.APP_URL: los enlaces y las cookies seguras dependen de ella..env, de public/uploads, de storage/uploads y de themes, y guarde con esmero APP_KEY.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.
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.
| Elemento | Versión requerida | Precisión |
|---|---|---|
| PHP | 8.2 o superior | Extensiones curl, dom, gd, iconv, mbstring, mysqlnd, openssl, pdo, pdo_mysql, tokenizer, xml y zip |
| Base de datos | MySQL 8.0 o superior, MariaDB 10.6 o superior | Una sola base, cuyo esquema gestiona el propio BookStack |
| Composer | 2.2 o superior | Para las dependencias de PHP |
| Git | Sin versión precisada | Para obtener el código y aplicar las actualizaciones |
| Servidor web | Compatible con PHP | Apache 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.
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.
| Sistema | Lo que instala el script |
|---|---|
| Ubuntu 26.04 | Apache, MySQL 8.4 y PHP 8.5 |
| Ubuntu 24.04 | Apache, MySQL 8.0 y PHP 8.3 |
| Ubuntu 22.04 | Apache, MySQL 8.0 y PHP 8.4 |
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.
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:
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:
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:
APP_URL=https://docs.example.com
DB_HOST=localhost
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=change-me
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.
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.
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.
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:
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.
| Ubicación | Lo que contiene |
|---|---|
| La base MySQL o MariaDB | Todos los datos de la aplicación, entre ellos el contenido de sus páginas |
.env | La configuración, con APP_KEY y los accesos a la base y al servidor de correo |
public/uploads | Las imágenes, con el almacenamiento por defecto |
storage/uploads | Los archivos adjuntos, protegidos por los permisos de BookStack |
themes | Sus 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.
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ágenes | Acceso |
|---|---|---|
local | public/uploads/images | Servidas directamente por el servidor web |
local_secure | storage/uploads/images | Reservadas a las personas conectadas, salvo que se active el acceso público |
local_secure_restricted | storage/uploads/images | Según los permisos de la página, la opción más exigente en recursos |
s3 | Un bucket compatible con S3 | Imá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).
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.
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.
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:
[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
sudo systemctl daemon-reload
sudo systemctl enable bookstack-queue.service
sudo systemctl start bookstack-queue.service
La documentación de seguridad da una lista que conviene repasar desde la instalación:
public, sobre todo si BookStack vive en /var/www.APP_URL, para que las direcciones generadas por el sistema no puedan manipularse.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.
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.
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.
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:
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.
Haga copia de la base y de los archivos antes de cada actualización y, después, desde la carpeta de 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:
APP_KEY pasa a ser obligatoria.storage/fonts debe seguir siendo escribible para el servidor web, sin lo cual las exportaciones a PDF pueden fallar.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.
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.
| Tema | Nuestros equipos | Usted |
|---|---|---|
| El servidor | Actualizaciones del sistema y de seguridad, con intervenciones en el servidor incluidas | El momento que mejor convenga a su actividad |
| La supervisión | Servidor vigilado las 24 horas del día, los 7 días de la semana, con intervención sin esperar su llamada | Sus usuarios, sus roles y sus contenidos |
| BookStack | Seguimiento proactivo: errores, lentitud y espacio en disco detectados, corrección recomendada | Su instalación, sus actualizaciones y sus ajustes, que aplica usted o su asistente de IA |
| Las copias de seguridad | Cada noche, cifradas y guardadas fuera de la máquina; restauración incluida | La petición de restauración, cuando la necesite |
| La migración | Su servidor actual migrado, gratis | El 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.
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.
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.
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.
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.
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.
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.
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.
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 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.
Simafri
Hablemos de su proyecto
Díganos en pocas palabras lo que necesita: le respondemos rápidamente.
¡Gracias! Su solicitud ha sido enviada. Le responderemos en breve.
¿Prefiere el correo? Escríbanos a support@simafri.com.