Командна документація зазвичай помирає одним із двох способів: розкидана по чатах, де нічого не знайти, або похована у вікі настільки незручній, що її ніхто не оновлює. BookStack — рідкісна вікі на власному сервері, якою люди справді користуються. Вміст лежить на полицях, у книгах, розділах і сторінках — структура зрозуміла всім без навчання. І сервер їй майже не потрібен.
Чому BookStack
- Зрозуміла структура. Книги й розділи замість пласкої купи сторінок.
- Редактор, який нікого не лякає. За замовчуванням візуальний, для любителів — Markdown.
- Нормальні права. Ролі на полицю, книгу чи сторінку — документи HR підрядники не побачать.
- Корпоративний вхід. LDAP, SAML2 і OpenID Connect вбудовані.
- Ваші дані. Усе лежить у базі MariaDB і в теці на вашому сервері.
Для всього підряд вона не годиться. Документація розробників, яка має змінюватися разом із кодом, живе в репозиторії, а не у вікі.
Що потрібно
BookStack легкий. Більшості команд із головою вистачить Micro-IP — 1 vCPU, 2 ГБ, $10 на місяць. Виділений IP потрібен, щоб колеги заходили через HTTPS на ваш домен. Диск росте від завантажених скриншотів і PDF, а не від кількості сторінок.
Встановлення через Docker Compose
Використовуємо популярні образи LinuxServer.io. Спершу згенеруйте ключ застосунку:
docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey
Скопіюйте виведене значення base64:.... Потім створіть 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 має збігатися з адресою, за якою заходитимуть люди, включно з https://. Помилитеся — картинки й посилання почнуть ламатися дивним чином. Більше про Compose — у нашій інструкції з розгортання стека.
HTTPS і перший вхід
Спрямуйте піддомен на сервер (як), поставте nginx перед 127.0.0.1:6875 і додайте сертифікат через certbot — інструкція зі зворотного проксі проведе кроками.
Потім увійдіть під акаунтом за замовчуванням: admin@admin.com / password. Одразу змініть пошту й пароль, до того як поділитеся посиланням. Решта отримують свої акаунти або входять через ваш провайдер ідентифікації.
Бекапи
Захищати треба дві речі: базу й завантаження всередині ./bookstack. Нічне завдання на кшталт цього покриває базу:
docker compose exec -T db mysqldump -u bookstack -pchange-me bookstack > /var/backups/bookstack.sql
Далі бекапте /var/backups і теку з compose поза сервером — саме це робить наша інструкція з restic. Managed Backups додадуть згори щоденні точки відновлення всього сервера.
Супровід
Оновлення — це docker compose pull && docker compose up -d. BookStack сам запускає міграції бази під час старту. Перед мажорними версіями читайте release notes — вони короткі й зрозумілі.
Якщо команді потрібне ще й місце для задач і коду, поруч на такому самому тарифі чудово стане свій Git-сервер.
Коментарі
Поки немає коментарів. Будьте першим.