La documentación de un equipo suele morir de una de dos formas: dispersa en hilos de chat que nadie puede buscar, o enterrada en una wiki tan torpe que nadie la actualiza. BookStack es esa rara wiki autoalojada que la gente usa de verdad. El contenido vive en estanterías, libros, capítulos y páginas: una estructura que todo el mundo entiende sin formación. Y apenas necesita servidor.
Por qué BookStack
- Estructura evidente. Libros y capítulos en lugar de un montón plano de páginas.
- Un editor que no asusta a nadie. WYSIWYG por defecto, Markdown para quien lo prefiera.
- Permisos de verdad. Roles por estantería, libro o página: los documentos de RR. HH. quedan lejos de los externos.
- Acceso corporativo. LDAP, SAML2 y OpenID Connect vienen integrados.
- Tus datos. Todo está en una base de datos MariaDB y en una carpeta de tu servidor.
No es la herramienta adecuada para todo. La documentación de desarrollo que debe cambiar junto con el código va en el repositorio, no en una wiki.
Qué necesita
BookStack es ligero. Para la mayoría de equipos, Micro-IP (1 vCPU, 2 GB, $10 al mes) es más que suficiente. La IP dedicada es lo que permite a tus compañeros llegar por HTTPS a tu dominio. El disco crece con las capturas y los PDF que subís, no con el número de páginas.
Instalación con Docker Compose
Usaremos las conocidas imágenes de LinuxServer.io. Primero genera una clave de aplicación:
docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey
Copia el valor base64:... que imprime. Después crea docker-compose.yml:
services:
bookstack:
image: lscr.io/linuxserver/bookstack:latest
environment:
- PUID=1000
- PGID=1000
- APP_URL=https://wiki.example.com
- APP_KEY=base64:paste-your-key-here
- DB_HOST=db
- DB_PORT=3306
- DB_DATABASE=bookstack
- DB_USERNAME=bookstack
- DB_PASSWORD=change-me
volumes:
- ./bookstack:/config
ports:
- 127.0.0.1:6875:80
depends_on:
- db
restart: unless-stopped
db:
image: lscr.io/linuxserver/mariadb:latest
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=change-me-too
- MYSQL_DATABASE=bookstack
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=change-me
volumes:
- ./db:/config
restart: unless-stopped
docker compose up -d
docker compose logs -f bookstack
APP_URL debe coincidir con la dirección que usará la gente, incluido https://. Si falla, las imágenes y los enlaces se rompen de formas raras. Más sobre Compose en nuestra guía de despliegue de stacks.
HTTPS y primer acceso
Apunta un subdominio al servidor (cómo), pon nginx delante de 127.0.0.1:6875 y añade un certificado con certbot: la guía de proxy inverso te lleva paso a paso.
Después entra con la cuenta por defecto: admin@admin.com / password. Cambia el correo y la contraseña enseguida, antes de compartir el enlace. El resto de personas tendrá su propia cuenta o entrará con tu proveedor de identidad.
Copias de seguridad
Hay dos cosas que proteger: la base de datos y las subidas dentro de ./bookstack. Una tarea nocturna como esta cubre la base de datos:
docker compose exec -T db mysqldump -u bookstack -pchange-me bookstack > /var/backups/bookstack.sql
Luego copia /var/backups y la carpeta de compose fuera del servidor: justo lo que hace nuestra guía de restic. Managed Backups añade encima puntos de restauración diarios de todo el servidor.
Mantenimiento
Actualizar es docker compose pull && docker compose up -d. BookStack ejecuta sus migraciones de base de datos al arrancar. Lee las notas de la versión antes de las versiones mayores; son cortas y claras.
Si tu equipo quiere además un sitio para tickets y código, un servidor Git autoalojado encaja muy bien a su lado en el mismo tipo de plan.
Comentarios
Aún no hay comentarios. Sé el primero.