Документацията на екипа обикновено умира по един от два начина: разпиляна в чат нишки, в които никой не може да търси, или погребана в уики, толкова тромаво, че никой не го обновява. BookStack е онова рядко уики на собствен сървър, което хората наистина ползват. Съдържанието е подредено по рафтове, книги, глави и страници — структура, която всеки разбира без обучение. И почти не иска сървър.
Защо BookStack
- Очевидна структура. Книги и глави вместо плоска купчина страници.
- Редакция, която не плаши никого. WYSIWYG редактор по подразбиране, Markdown за тези, които го предпочитат.
- Истински права. Роли за рафт, книга или страница — документите на HR стоят далеч от външните изпълнители.
- Фирмен вход. LDAP, SAML2 и OpenID Connect са вградени.
- Вашите данни. Всичко е в база MariaDB и папка на вашия сървър.
Не е инструмент за всичко. Мястото на документацията за разработчици, която трябва да се променя заедно с кода, е в хранилището, а не в уики.
Какво му трябва
BookStack е лек. За повечето екипи Micro-IP — 1 vCPU, 2 GB, $10 на месец — е повече от достатъчен. Dedicated IP е това, което позволява на колегите да го достъпват през HTTPS на вашия домейн. Дискът расте с качените екранни снимки и PDF файлове, а не с броя страници.
Инсталиране с Docker Compose
Ще ползваме популярните image-и на 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 — ръководството за reverse proxy ви води стъпка по стъпка.
После влезте с акаунта по подразбиране: 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 пуска миграциите на базата при старт. Четете бележките към версията преди основни версии; кратки и ясни са.
Ако екипът ви иска и място за задачи и код, собствен Git сървър пасва чудесно до него, на същия вид план.
Коментари
Още няма коментари. Бъди първият.