Командная документация обычно умирает одним из двух способов: разбросана по чатам, где ничего не найти, или похоронена в вики настолько неудобной, что её никто не обновляет. 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-сервер.
Комментарии
Пока нет комментариев. Будьте первым.