Dokumentacja zespołu zwykle umiera na jeden z dwóch sposobów: rozproszona po wątkach czatu, których nikt nie umie przeszukać, albo pogrzebana w wiki tak topornej, że nikt jej nie aktualizuje. BookStack to ta rzadka samodzielnie hostowana wiki, której ludzie naprawdę używają. Treść leży na półkach, w książkach, rozdziałach i stronach — to struktura, którą każdy rozumie bez szkolenia. A serwera prawie nie potrzebuje.
Dlaczego BookStack
- Oczywista struktura. Książki i rozdziały zamiast płaskiego stosu stron.
- Edytor, który nikogo nie straszy. Domyślnie WYSIWYG, Markdown dla chętnych.
- Porządne uprawnienia. Role na poziomie półki, książki lub strony — dokumenty HR z dala od podwykonawców.
- Firmowe logowanie. LDAP, SAML2 i OpenID Connect są wbudowane.
- Twoje dane. Wszystko leży w bazie MariaDB i folderze na twoim serwerze.
To nie jest narzędzie do wszystkiego. Dokumentacja deweloperska, która powinna zmieniać się razem z kodem, należy do repozytorium, nie do wiki.
Czego potrzebuje
BookStack jest lekki. Dla większości zespołów Micro-IP — 1 vCPU, 2 GB, $10 miesięcznie — w zupełności wystarczy. Dedykowane IP pozwala współpracownikom wchodzić przez HTTPS na twojej domenie. Dysk rośnie z przesłanymi zrzutami ekranu i PDF-ami, a nie z liczbą stron.
Instalacja w Docker Compose
Użyjemy popularnych obrazów LinuxServer.io. Najpierw wygeneruj klucz aplikacji:
docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey
Skopiuj wypisaną wartość base64:.... Potem utwórz 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 musi zgadzać się z adresem, którego będą używać ludzie, łącznie z https://. Pomyłka sprawi, że obrazy i linki psują się w dziwny sposób. Więcej o Compose w naszym poradniku wdrażania stacka.
HTTPS i pierwsze logowanie
Skieruj subdomenę na serwer (jak), postaw nginx przed 127.0.0.1:6875 i dodaj certyfikat przez certbota — poradnik reverse proxy prowadzi krok po kroku.
Potem zaloguj się na domyślne konto: admin@admin.com / password. Zmień e-mail i hasło od razu, zanim udostępnisz link. Pozostali dostają własne konta albo logują się przez waszego dostawcę tożsamości.
Kopie zapasowe
Dwie rzeczy do ochrony: baza danych i przesłane pliki w ./bookstack. Nocne zadanie takie jak to obsłuży bazę:
docker compose exec -T db mysqldump -u bookstack -pchange-me bookstack > /var/backups/bookstack.sql
Potem skopiuj /var/backups i folder compose poza serwer — dokładnie to robi nasz poradnik restic. Managed Backups dokładają do tego codzienne punkty przywracania całego serwera.
Utrzymanie
Aktualizacja to docker compose pull && docker compose up -d. BookStack uruchamia migracje bazy przy starcie. Przed głównymi wersjami przeczytaj informacje o wydaniu; są krótkie i jasne.
Jeśli zespół chce też miejsca na zgłoszenia i kod, własny serwer Git świetnie stanie obok, na tym samym typie planu.
Komentarze
Brak komentarzy. Bądź pierwszy.