BookStack, Wiki.js czy Outline: którą wiki wybrać?
Porównanie systemów wiki typu self-hosted. Analiza wymagań konfiguracyjnych, edytorów oraz metod autoryzacji. Sprawdź, która aplikacja najlepiej sprawdzi się w pracy zespołowej.
Którą wiki z własnym hostingiem wybrać
Własna instancja wiki pozwala przechowywać dokumentację zespołu w jednym, przeszukiwalnym miejscu na serwerze pod Twoją kontrolą. BookStack, Wiki.js oraz Outline realizują to zadanie. Różnią się one głównie stopniem złożoności konfiguracji przed uruchomieniem pierwszej strony oraz mechanizmami kontroli dostępu dla użytkowników.
BookStack jest najprostszy w instalacji i narzuca sztywną strukturę danych. Wiki.js oferuje najszerszy wybór edytorów w ramach jednego drzewa stron. Outline zapewnia najlepsze wrażenia podczas pisania, jednak jego udokumentowana konfiguracja produkcyjna wymaga zewnętrznego dostawcy tożsamości do utworzenia początkowego obszaru roboczego.
Poniższe zestawienie opracowano na podstawie dokumentacji projektów oraz opublikowanych plików konfiguracyjnych. Jest to porównanie możliwości, a nie test wydajności. Numery wersji oraz wymagania są opatrzone datą, ponieważ wszystkie trzy projekty podlegają ciągłym zmianom.
Struktura to kluczowy wybór
BookStack narzuca określoną formę treści. Strona znajduje się wewnątrz książki, książka może zawierać rozdziały, a półki grupują książki. Nie ma możliwości utworzenia piątego poziomu. To ograniczenie stanowi o wartości produktu: nowy autor wie, gdzie umieścić stronę, ponieważ istnieje tylko jedno poprawne miejsce. Kosztem jest konieczność dopasowania treści, która nie wpisuje się w ten schemat.
Wiki.js wykorzystuje drzewo ścieżek, podobnie jak foldery na dysku. Strona w ops/backup/restic znajduje się tam, gdzie zostanie umieszczona, a użytkownik sam decyduje o głębokości struktury. Nic nie stoi na przeszkodzie, aby dwie osoby sklasyfikowały ten sam temat w dwóch różnych gałęziach, dlatego instancja Wiki.js wymaga osoby odpowiedzialnej za utrzymanie porządku w drzewie.
Outline korzysta z kolekcji, w których dokumenty są zagnieżdżone w innych dokumentach. Przenoszenie dokumentu odbywa się za pomocą przeciągnięcia myszą. Jest to najbardziej elastyczne z omawianych rozwiązań, przez co najłatwiej doprowadzić do utraty przejrzystości struktury.
BookStack: minimalna instalacja
BookStack to aplikacja PHP korzystająca z bazy danych MySQL. Według stanu na październik 2026 r. wymagane jest PHP 8.2 lub nowsze oraz MySQL 8.0 lub MariaDB 10.6 lub nowsze. W przypadku instalacji ze źródeł wymagany jest Composer 2.2 lub nowszy. Obecna linia wydawnicza to 26.09, opublikowana 24 września 2026 r. Najnowsza stabilna wersja to 26.09.2, wydanie bezpieczeństwa z 20 października 2026 r. Od wersji 26.09 wymagane jest ustawienie wartości APP_KEY, co uwzględniono w poniższych krokach dla kontenera. 21 października 2026 r. opublikowano krytyczny komunikat dotyczący bezpieczeństwa PHP w BookStack: należy zaktualizować pakiety PHP lub pobrać i odtworzyć kontener z poprawionym obrazem, ponieważ sama wersja BookStack nie gwarantuje załatania PHP.
Projekt oficjalnie wspiera skrypty instalacyjne oraz wytyczne dla wymienionych wydań Ubuntu LTS, obecnie 22.04, 24.04 oraz 26.04. Czasami publikowane są nieoficjalne przewodniki i skrypty dla innych środowisk. Skrypt dla 24.04 instaluje Apache, MySQL 8.0 oraz PHP 8.3. W przypadku 26.04 należy użyć installation-ubuntu-26.04.sh w poniższych poleceniach; instaluje on MySQL 8.4 oraz PHP 8.5.
wget https://codeberg.org/bookstack/devops/raw/branch/main/scripts/installation-ubuntu-24.04.sh
chmod a+x installation-ubuntu-24.04.sh
sudo ./installation-ubuntu-24.04.shPrzed uruchomieniem skryptu należy zapoznać się z ostrzeżeniem. Dokumentacja wskazuje, że jest on przeznaczony „WYŁĄCZNIE DLA CZYSTEGO SYSTEMU OPERACYJNEGO; zainstaluje Apache, MySQL 8.0 oraz PHP 8.3 i może NADPISAĆ istniejącą konfigurację serwera WWW”. Skrypt dla 24.04 sprawdza obecność konfiguracji Apache oraz danych MySQL i przerywa działanie w przypadku ich wykrycia. W takiej sytuacji należy użyć kontenerów lub zainstalować BookStack ręcznie na istniejącym stosie LAMP na Ubuntu 24.04.
Metoda kontenerowa wykorzystuje obraz LinuxServer.io, jedną z dwóch społecznościowych konfiguracji kontenerów wymienionych w dokumentacji BookStack. BookStack wymaga klucza szyfrowania sesji i nie wyświetli stron bez jego podania, dlatego należy go najpierw wygenerować.
docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkeySkopiuj wyświetloną wartość do APP_KEY, a następnie utwórz usługę. Usługa ta wymaga również istniejącej bazy danych MySQL lub MariaDB; ustaw wartości DB_* zgodnie z konfiguracją bazy, ponieważ poniższy fragment nie tworzy usługi bazy danych.
services:
bookstack:
image: lscr.io/linuxserver/bookstack:latest
container_name: bookstack
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- APP_URL=https://wiki.example.com
- APP_KEY=paste_the_generated_key_here
- DB_HOST=bookstack_db
- DB_PORT=3306
- DB_USERNAME=bookstack
- DB_PASSWORD=change_me
- DB_DATABASE=bookstackapp
volumes:
- ./config:/config
ports:
- 6875:80
restart: unless-stoppedAPP_URL musi odpowiadać adresowi wpisywanemu przez użytkowników, włącznie ze schematem i portem. Ustawienie http://localhost przy serwowaniu witryny przez HTTPS spowoduje, że wygenerowane linki i przekierowania będą wskazywać na błędny host, co użytkownicy zobaczą jako stronę logowania zapętlającą się w nieskończoność. Jeśli pliki Compose są nowością, przed przystąpieniem do tego zadania zapoznaj się z podstawami Docker Compose na VPS.
Uruchom usługę i sprawdź, czy aplikacja odpowiada, a nie tylko czy kontener działa:
docker compose up -d
docker compose ps
curl -sI http://127.0.0.1:6875/loginKod 200 OK oznacza, że aplikacja PHP uruchomiła się i połączyła z bazą danych. Kod 500 wymaga analizy dziennika błędów aplikacji w celu diagnozy. Domyślnie BookStack zapisuje błędy do pliku dziennika, a nie do wyjścia kontenera, dlatego należy otworzyć ./config/log/bookstack/laravel.log na hoście, aby poznać przyczynę. docker compose logs bookstack wyświetla komunikaty startowe samego kontenera, które mogą nie zawierać błędów aplikacji.
Wiki.js: jedno drzewo, wielu redaktorów
Wiki.js to aplikacja Node.js. Udokumentowana konfiguracja Docker łączy ją z PostgreSQL, choć oprogramowanie obsługuje również MySQL, MariaDB, MSSQL oraz SQLite. Poniżej znajduje się plik compose pochodzący ze strony projektu Wiki.js poświęconej Dockerowi:
services:
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: wikijsrocks
POSTGRES_USER: wikijs
logging:
driver: none
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
wiki:
image: ghcr.io/requarks/wiki:2
depends_on:
- db
init: true
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: wikijsrocks
DB_NAME: wiki
restart: unless-stopped
ports:
- "80:3000"
volumes:
db-data:Zmień jednocześnie POSTGRES_PASSWORD oraz DB_PASS przed uruchomieniem, ponieważ stanowią one jedną parę poświadczeń, a przykładowa wartość jest publicznie znana. Znacznik jest celowo przypięty do ghcr.io/requarks/wiki:2. Dokumentacja odradza używanie latest, ponieważ przeskok między głównymi wersjami zmienia schemat bazy danych w działającej instancji.
Wersja 2 to linia przeznaczona do uruchomienia. Według stanu na dzień 27 października 2026 r. najnowszym wydaniem wersji 2 jest 2.5.317, poprawka błędów z dnia 23 października 2026 r., która przebudowuje obraz z najnowszymi aktualizacjami bezpieczeństwa Node. Wydania wersji 2 są obecnie publikowane z oddzielnego repozytorium requarks/wiki-v2, a znacznik obrazu :2 nadal je śledzi. Wersja 3 znajduje się w fazie publicznej bety. Dokumentacja instalacji podaje, że jej obrazy są oznaczone jako 3.0.0-beta, a zwykłe znaczniki 3 oraz 3.0 nie będą działać do czasu zakończenia fazy beta. Należy traktować ją jako wersję poglądową, a nie gotową do zastosowań produkcyjnych. Poprzednie wydanie, 2.5.316 z dnia 2 października 2026 r., dodało narzędzie eksportu umożliwiające późniejsze przeniesienie zawartości do wersji 3.
Przy pierwszym uruchomieniu Wiki.js przeprowadza użytkownika przez konfigurację w przeglądarce, która tworzy konto administratora. Do momentu zakończenia tego procesu każdy, kto uzyska dostęp do portu, zobaczy ten kreator, dlatego należy umieścić usługę za reverse proxy i TLS (transport layer security) przed otwarciem firewalla. Wiki działająca na własnej nazwie hosta naturalnie znajduje się za Traefik przed kilkoma aplikacjami Docker, gdy serwer obsługuje więcej niż tę jedną usługę.
Wybór edytora jest powodem, dla którego użytkownicy wybierają Wiki.js. Jedna instancja może przechowywać strony Markdown, strony edytora wizualnego, strony w surowym HTML oraz strony AsciiDoc obok siebie. Pomaga to podczas importowania starej zawartości w formacie, którego użytkownik woli nie konwertować. Jest to również sposób na uzyskanie czterech różnych stylów w jednej wiki, dlatego należy zdecydować o domyślnym edytorze pierwszego dnia i odnotować tę decyzję.
Zarys: najlepszy edytor, najbardziej wymagające warunki wstępne
Zarys (Outline) jest tym, czego oczekują użytkownicy poszukujący narzędzia do notatek o funkcjonalności rozwiązań komercyjnych. Jest to aplikacja Node.js, a jej bieżące wydanie z dnia 27 października 2026 r. to 1.12.0, opublikowane 23 października 2026 r. Wersja ta przenosi obraz Docker na wersję Node, która usuwa kilka niedawno ujawnionych luk w zabezpieczeniach, dlatego należy zaktualizować starsze instalacje. Przykładowy plik środowiskowy zawiera wymagane zależności: PostgreSQL przez DATABASE_URL, Redis przez REDIS_URL, dwa losowe klucze tajne oraz publicznie dostępny URL.
openssl rand -hex 32
openssl rand -hex 32Wykonaj to polecenie dwukrotnie i zachowaj obie wartości. Pierwsza stanie się SECRET_KEY, druga UTILS_SECRET. Rdzeń pliku środowiskowego wygląda następująco:
NODE_ENV=production
URL=https://docs.example.com
PORT=3000
SECRET_KEY=<first openssl value>
UTILS_SECRET=<second openssl value>
DATABASE_URL=postgres://outline:change_me@postgres:5432/outline
PGSSLMODE=disable
REDIS_URL=redis://redis:6379
FILE_STORAGE=local
FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/dataPGSSLMODE=disable jest poprawne tylko wtedy, gdy baza danych znajduje się na tej samej maszynie lub w tej samej sieci Docker. W przypadku bazy danych dostępnej przez sieć należy pominąć ten parametr, w przeciwnym razie połączenie będzie przesyłane otwartym tekstem. Załączniki nie wymagają już korzystania z pamięci obiektowej: FILE_STORAGE=local zapisuje przesłane pliki w powyższym katalogu, który musi być wolumenem z uprawnieniami zapisu dla kontenera i być uwzględniony w kopiach zapasowych. Jeśli pliki mają trafiać do zasobnika zgodnego z S3, należy skonfigurować FILE_STORAGE=s3 przy użyciu wartości AWS_*.
Teraz część, która może zaskoczyć. Outline nie posiada wbudowanego mechanizmu logowania za pomocą nazwy użytkownika i hasła. Przykładowa konfiguracja wskazuje na konieczność użycia zewnętrznych danych uwierzytelniających: „do poprawnego działania instalacji wymagane jest co najmniej JEDNO z poniższych, w przeciwnym razie opcje logowania będą niedostępne”. Udokumentowani dostawcy to Google, Slack, Microsoft Entra, Discord oraz dowolny serwer OpenID Connect (OIDC) poprzez OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_AUTH_URI, OIDC_TOKEN_URI i OIDC_USERINFO_URI. Istniejące obszary robocze mogą również włączyć klucze dostępu (passkeys) oraz logowanie za pomocą linków lub kodów e-mail; logowanie e-mail wymaga SMTP i nie pomija SSO w przypadku kont powiązanych z dostawcą SSO.
Rzeczywisty koszt produkcyjnej konfiguracji Outline obejmuje zatem samą aplikację Outline, PostgreSQL, Redis oraz dostawcę tożsamości. Jeśli zespół korzysta już z Google Workspace lub Microsoft Entra, Outline staje się bardzo atrakcyjnym rozwiązaniem. W przeciwnym razie konieczne jest samodzielne utrzymywanie usługi typu Keycloak lub Authentik, co stanowi kolejny komponent wymagający aktualizacji i tworzenia kopii zapasowych. Należy odpowiednio zaplanować zasoby pamięci: wytyczne Outline wskazują na około 512 MB na proces webowy, określane przez WEB_CONCURRENCY, poza pamięcią wymaganą przez bazę danych i Redis.
Sposób zarządzania uprawnieniami do odczytu
BookStack oferuje wbudowaną obsługę kont lokalnych z adresem e-mail i hasłem, a także wspiera LDAP, SAML2 oraz OIDC jako alternatywne metody uwierzytelniania. Uprawnienia definiuje się dla poszczególnych ról i można je nadpisywać dla konkretnej półki, książki, rozdziału lub strony. Uprawnienia książek i rozdziałów są dziedziczone przez zawartość podrzędną, chyba że zostaną nadpisane; uprawnienia półek muszą być kopiowane do książek jawnie.
Wiki.js również udostępnia konta lokalne i oferuje szeroką listę strategii, które można aktywować w panelu administracyjnym. Reguły stron pozwalają na przyznawanie lub odbieranie dostępu na podstawie wzorca ścieżki. Jest to rozwiązanie wydajne, lecz podatne na błędy, ponieważ reguła utworzona dla ops/* automatycznie obejmuje każdą stronę, która zostanie później przypisana do tej ścieżki.
Outline wykorzystuje zewnętrznego dostawcę tożsamości do obsługi członkostwa SSO, a wewnątrz aplikacji dostęp kontroluje się na poziomie kolekcji, dokumentów oraz grup. Użytkownicy usunięci u dostawcy tożsamości zostaną wylogowani przy kolejnym załadowaniu Outline; aby natychmiast zakończyć istniejące sesje, należy zawiesić użytkownika bezpośrednio w Outline.
Jak działa wyszukiwanie w poszczególnych rozwiązaniach
Wyszukiwanie decyduje o tym, czy wiki jest użytecznym narzędziem, czy zbiorem zapomnianych plików.
BookStack przeszukuje bazę danych i udostępnia użytkownikom język zapytań, którego można nauczyć się w minutę. Ujęcie frazy w cudzysłów, jak w "london meeting", wymusza wyszukanie dokładnie tego ciągu znaków. Nawiasy kwadratowe służą do wyszukiwania tagów: [location=london] dopasowuje wyniki według nazwy tagu, wartości lub obu tych elementów, przy czym dostępne operatory porównania to !=, >= oraz like. Nawiasy klamrowe pozwalają filtrować metadane, jak w {created_after:2016-12-30}. Każdy termin – dokładny, tag lub filtr – można zanegować, poprzedzając go znakiem -. BookStack ogranicza liczbę terminów każdego typu w jednym zapytaniu, więc zbyt długie zapytania są przycinane zamiast wykonywane.
Wiki.js traktuje wyszukiwanie jako moduł typu pluggable. Udokumentowane silniki to podstawowy silnik bazodanowy, silnik PostgreSQL, Elasticsearch, Algolia, AWS CloudSearch oraz Azure Search. Silnik podstawowy dopasowuje wyniki na podstawie tytułów, opisów i ścieżek, a nie treści stron. W przypadku korzystania z PostgreSQL należy przełączyć się na silnik PostgreSQL w panelu administracyjnym, ponieważ wykorzystuje on natywny indeks pełnotekstowy bazy danych zamiast prostego dopasowywania. Elasticsearch warto zachować dla wiki na tyle dużych, że utrzymywanie i aktualizowanie dodatkowej usługi wyszukiwania jest uzasadnione.
Outline przeszukuje indeksy pełnotekstowe PostgreSQL. Wbudowane wyszukiwanie słów kluczowych nie wymaga osobnej usługi wyszukiwania. Dla wiki zespołowej liczącej kilka tysięcy dokumentów jest to rozwiązanie wymagające najmniej pracy spośród trzech wymienionych.
Które rozwiązanie wybrać
Wybierz BookStack, jeśli chcesz uruchomić wiki jeszcze dziś i wolisz dyskutować o treści niż o strukturze. To rozwiązanie ma najmniej ruchomych elementów: jedną aplikację PHP i jedną bazę danych MySQL. Sprawdza się w przypadku wewnętrznych podręczników operacyjnych (runbooks) i dokumentacji dla klientów, a także w zespołach, w których większość autorów nie jest inżynierami. Jest to również najłatwiejsze do wykonania kopii zapasowej z całej trójki, ponieważ stan aplikacji to jeden zrzut bazy danych oraz przesłane pliki i konfiguracja .env, w tym APP_KEY.
Wybierz Wiki.js, jeśli potrzebujesz konkretnego edytora lub określonej strategii uwierzytelniania, której nie oferują pozostałe rozwiązania, albo jeśli importujesz duży zbiór istniejących plików Markdown lub AsciiDoc i chcesz zachować strukturę ścieżek. Zaakceptuj fakt, że uruchamiasz cięższy stos technologiczny i przypnij tag głównej wersji (major version).
Wybierz Outline, jeśli najważniejsza jest jakość pisania, wiki jest przeznaczone dla zespołu, a nie dla odbiorców publicznych, oraz jeśli posiadasz już dostawcę tożsamości (identity provider). W zamian za taką konfigurację otrzymasz edytor, z którego użytkownicy faktycznie chętnie korzystają. Nie wybieraj tego rozwiązania jako swojej pierwszej samodzielnie hostowanej aplikacji.
Jeśli żadne z powyższych trzech rozwiązań nie pasuje, przyczyną jest zazwyczaj niedopasowanie do typu treści. Zeskanowane faktury i umowy powinny trafiać do systemu zarządzania dokumentami, takiego jak Paperless-ngx, a nie do wiki; wymuszanie ich przechowywania w wiki jest powodem, dla którego tak wiele projektów tego typu zostaje porzuconych. Innym częstym niedopasowaniem jest potrzeba posiadania przestrzeni roboczej zamiast wiki, z dokumentami, tabelami i tablicą na jednym płótnie – w takim przypadku samodzielnie hostowana przestrzeń robocza AFFiNE sprawdzi się lepiej niż którekolwiek z powyższych rozwiązań. Szerszy przegląd oprogramowania wartego uruchomienia na własnym serwerze znajduje się w skróconej liście self-hosting na rok 2026.
Dobór zasobów i kopie zapasowe
Wszystkie trzy aplikacje mogą działać na małym VPS, jednak realne zapotrzebowanie na zasoby zależy od wymagań poszczególnych komponentów. BookStack to jeden proces aplikacji oraz MySQL. Wiki.js to proces Node oraz PostgreSQL. Outline wymaga procesu Node, PostgreSQL oraz Redis, a zazwyczaj także zewnętrznego dostawcy tożsamości, dlatego wymaga większej ilości pamięci RAM.
Należy tworzyć kopie zapasowe bazy danych oraz plików przesłanych przez użytkowników jednocześnie. Przed poleganiem na kopii zapasowej należy przynajmniej raz przeprowadzić proces przywracania danych na instancji testowej. Kopia zapasowa wiki, która nigdy nie została przywrócona, jest jedynie przypuszczeniem. W przypadku BookStack oznacza to wykonanie mysqldump oraz zabezpieczenie wolumenu /config. Dla Wiki.js i Outline oznacza to pg_dump oraz wolumen z danymi, a w przypadku Outline dodatkowo zawartość FILE_STORAGE_LOCAL_ROOT_DIR.
FAQ
Która wiki do samodzielnego hostowania jest najłatwiejsza w instalacji?
BookStack. Jest to pojedyncza aplikacja PHP z bazą danych MySQL, a projekt dostarcza skrypt instalacyjny dla Ubuntu 24.04, który konfiguruje Apache, MySQL 8.0 oraz PHP 8.3 w jednym przebiegu. Obraz kontenera wymaga APP_KEY, APP_URL oraz danych uwierzytelniających do istniejącej bazy danych. Wiki.js dodaje środowisko uruchomieniowe Node oraz serwer PostgreSQL, natomiast Outline wymaga dodatkowo Redis oraz zewnętrznego dostawcy tożsamości do udokumentowanej konfiguracji początkowej.
Czy mogę używać Outline bez Google lub innego dostawcy SSO?
Udokumentowana konfiguracja produkcyjna wymaga dostawcy do utworzenia początkowego obszaru roboczego. Outline nie posiada lokalnego logowania za pomocą nazwy użytkownika i hasła. Przykładowa konfiguracja wskazuje, że wymagany jest co najmniej jeden zewnętrzny dostawca logowania, w przeciwnym razie użytkownik nie będzie miał żadnych opcji logowania. Można użyć Google, Slack, Microsoft Entra, Discord lub dowolnego serwera OpenID Connect, takiego jak samodzielnie hostowany Keycloak lub Authentik. Istniejące obszary robocze mogą włączyć klucze dostępu (passkeys) lub logowanie za pomocą linków i kodów e-mail, przy czym do logowania e-mail wymagany jest SMTP; konta powiązane z SSO nadal korzystają z tego dostawcy.
Czy powinienem zainstalować Wiki.js 3 czy Wiki.js 2?
Wersję 2. Według stanu na dzień 27 października 2026 r. najnowsze wydanie wersji 2 to 2.5.317 z 23 października 2026 r., a wersja 3 jest nadal w fazie beta, której obrazy posiadają tag 3.0.0-beta. Należy przypiąć obraz do ghcr.io/requarks/wiki:2 zamiast latest, ponieważ zmiana głównej wersji zmienia schemat bazy danych w działającej instancji.
Która z nich posiada najlepszą wyszukiwarkę?
Każda z nich oferuje inne mocne strony. BookStack zapewnia czytelnikom język zapytań z dokładnymi frazami, filtrami tagów, takimi jak [location=london], oraz filtrami metadanych, takimi jak {created_after:2016-12-30}; każdy z tych terminów można zanegować za pomocą znaku - na początku. Wbudowana wyszukiwarka słów kluczowych w Outline nie wymaga oddzielnej usługi wyszukiwania. Wiki.js jest najbardziej konfigurowalna, ponieważ użytkownik wybiera silnik, a silnik PostgreSQL przeszukuje treść stron, czego nie robi silnik podstawowy.
Czy mogę później przenieść swoje treści z jednej do drugiej?
Częściowo, należy jednak przygotować się na pracę ręczną. Wszystkie trzy aplikacje eksportują dane w formacie Markdown, ale wbudowany import w BookStack akceptuje format Portable ZIP, więc sam Markdown nie jest bezpośrednią ścieżką importu do BookStack. Struktura nie zachowuje się w pełni: książki i rozdziały w BookStack nie mają odpowiednika w zagnieżdżonych dokumentach Outline, a ścieżki w Wiki.js nie mapują się na sztywną hierarchię BookStack. Załączniki, uprawnienia i historia stron to elementy, które najprawdopodobniej zostaną utracone, dlatego przed migracją należy wyeksportować próbkę danych i sprawdzić poprawność przeniesienia.