BookStack, Wiki.js au Outline: Wiki Ipi Bora?
Linganisha BookStack, Wiki.js na Outline kwa uzito wa usanidi, uandishi, kuingia na utafutaji. Pata chaguo bora kwa msimamizi mmoja au timu.
Ni wiki ipi ya kujihudumia unapaswa kuendesha
Wiki ya kujihudumia huweka nyaraka za timu yako katika sehemu moja inayoweza kutafutwa kwenye seva unayodhibiti. BookStack, Wiki.js na Outline zote hufanya kazi hiyo. Tofauti kubwa iko katika kiasi cha usanidi unaohitaji kukamilisha kabla ukurasa wa kwanza kupakiwa, na katika watu wanaoruhusiwa kuingia.
BookStack ndiyo rahisi zaidi kuanzisha na ina msimamo mkali zaidi kuhusu muundo. Wiki.js inakupa chaguo pana zaidi la wahariri kwenye mti mmoja wa kurasa. Outline ina matumizi bora zaidi ya uandishi kati ya hizi tatu, na haitamruhusu mtu yeyote kuingia hadi uunganishe mtoa huduma wa utambulisho wa nje.
Kila kitu hapa chini kimetokana na nyaraka za miradi yenyewe na faili zao za usanidi zilizochapishwa. Huu ni ulinganisho wa uwezo, si kipimo cha utendaji. Nambari za matoleo na mahitaji zimewekewa tarehe kwa sababu miradi yote mitatu hubadilika.
Muundo ndio chaguo halisi
BookStack huweka umbo la maudhui yako. Ukurasa huwa ndani ya kitabu, kitabu kinaweza kuwa na sura, na rafu hupanga vitabu katika vikundi. Huwezi kubuni kiwango cha tano. Kikomo hicho ndicho msingi wa bidhaa: mwandishi mpya anajua mahali pa kuweka ukurasa kwa sababu kuna mahali pamoja tu ambapo unaweza kuwekwa. Hasara ni kwamba maudhui yasiyolingana na muundo huo hulazimishwa kuufuata.
Wiki.js hutumia mti wa njia, kama folda zilizo kwenye diski. Ukurasa ulio kwenye ops/backup/restic huwekwa mahali unapouchagua, na wewe huamua kina chake. Hakuna kinachowazuia watu wawili kuweka mada hiyo hiyo chini ya matawi mawili tofauti, kwa hiyo mfumo wa Wiki.js unahitaji mtu mmoja anayesimamia mti huo.
Outline hutumia mikusanyo yenye hati zilizowekwa ndani ya hati nyingine. Kuhamisha hati ni kuiburuta kwa kipanya. Ndiyo inayobadilika zaidi kati ya mifumo hiyo mitatu, kwa hiyo pia ndiyo rahisi zaidi kuiacha ipoteze mpangilio.
BookStack: usakinishaji mdogo zaidi
BookStack ni programu ya PHP inayotumia MySQL. Kufikia Julai 2026, mahitaji yaliyoandikwa ni PHP 8.2 au mpya zaidi, pamoja na MySQL 8.0 au MariaDB 10.6 au mpya zaidi. Unahitaji pia Composer 2.2 au mpya zaidi ikiwa unasakinisha kutoka kwenye msimbo chanzi. Mfululizo wa toleo la sasa ni 26.05.
Mradi huchapisha script moja ya usakinishaji kwa kila toleo la Ubuntu. Script ya 24.04 hukusakinishia Apache, MySQL 8.0 na PHP 8.3.
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.shSoma onyo lililo kwenye script hiyo kabla ya kuiendesha. Nyaraka zinasema kuwa ni "ONLY FOR A FRESH OS, it will install Apache, MySQL 8.0 & PHP 8.3 and could OVERWRITE any existing web setup on the machine". Kwenye server ambayo tayari inajibu kwenye port 80, script inachukua port hiyo na kuandika upya usanidi wa Apache. Tumia containers badala yake, au sakinisha BookStack mwenyewe juu ya LAMP stack iliyopo kwenye Ubuntu 24.04.
Njia ya container hutumia image ya LinuxServer.io, ambayo ndiyo chaguo linalopendekezwa na nyaraka za BookStack. BookStack inahitaji key ya usimbaji fiche wa session na haitahudumia kurasa bila key hiyo, kwa hiyo itengeneze kwanza.
docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkeyNakili thamani iliyochapishwa kwenye APP_KEY, kisha andika service:
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 lazima ilingane na anwani ambayo wasomaji huandika, ikijumuisha scheme na port yoyote. Iweke kuwa http://localhost, kisha uhudumie tovuti kupitia HTTPS. Vinginevyo, links na redirects zinazozalishwa zitaelekeza kwenye host isiyo sahihi, na wasomaji wataona ukurasa wa kuingia unaorudi kwake wenyewe bila mwisho. Ikiwa compose files ni mpya kwako, anza na Misingi ya Docker Compose kwenye VPS kabla ya huu mwongozo.
Iwashe na uhakikishe kuwa programu inajibu, si kwamba container inaendesha tu:
docker compose up -d
docker compose ps
curl -sI http://127.0.0.1:6875/login200 OK inamaanisha kuwa programu ya PHP iliwashwa na kufikia database. 500 karibu kila mara inamaanisha kuwa APP_KEY ni tupu au credentials za database hazilingani, na docker compose logs bookstack huonyesha ni ipi kati ya hizo mbili.
Wiki.js: mti mmoja, vihariri kadhaa
Wiki.js ni programu ya Node.js. Usanidi wa Docker ulioandikwa huioanisha na PostgreSQL, ingawa programu pia inakubali MySQL, MariaDB, MSSQL na SQLite. Hii ni faili ya compose kutoka ukurasa rasmi wa Docker wa mradi:
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:Badilisha POSTGRES_PASSWORD na DB_PASS pamoja kabla ya kuiendesha, kwa sababu ni kitambulisho kimoja cha uthibitishaji na thamani ya mfano iko wazi kwa umma. Tag imewekwa kwenye ghcr.io/requarks/wiki:2 kwa makusudi. Nyaraka zinashauri usitumie latest, kwa sababu kuruka toleo kuu hubadilisha schema ya hifadhidata wakati instance inaendelea kufanya kazi.
Toleo la 2 ndilo la kutumia. Kufikia Julai 2026, toleo jipya zaidi la toleo la 2 ni 2.5.314, lililotolewa Mei 2026. Toleo la 3 lipo, na nyaraka zake zinasema: "Tovuti hii ni ya toleo la beta lisilo thabiti la Wiki.js 3.0. HUPASWI kusakinisha hili katika mazingira ya uzalishaji." Chukulia tag ya :3 kuwa ya majaribio.
Katika upakiaji wa kwanza, Wiki.js hukuongoza kupitia usanidi wa ndani ya kivinjari unaounda akaunti ya msimamizi. Mpaka ukamilishe usanidi huo, mtu yeyote anayefikia port ataona wizard hiyo. Kwa hiyo, weka huduma nyuma ya reverse proxy na TLS (usalama wa safu ya usafirishaji) kabla ya kufungua firewall. Wiki iliyo kwenye hostname yake huwekwa kwa urahisi nyuma ya Traefik mbele ya programu kadhaa za Docker wakati server inapangisha huduma nyingi.
Chaguo la editor ndilo sababu inayowafanya watu kuchagua Wiki.js. Instance moja inaweza kuwa na kurasa za Markdown, kurasa za visual editor, kurasa za raw HTML na kurasa za AsciiDoc kwa pamoja. Hilo husaidia unapohamisha maudhui ya zamani katika format ambayo hungependa kuyabadilisha. Pia linaweza kusababisha wiki moja kuwa na mitindo minne ya uandishi wa ndani. Kwa hiyo, amua editor chaguo-msingi siku ya kwanza na uandike uamuzi huo.
Muhtasari: kihariri bora, mahitaji ya awali yaliyo mengi zaidi
Outline ndicho watu wengi humaanisha wanaposema wanataka kitu kinachofanana na zana ya kibiashara ya kuandika madokezo. Ni programu ya Node.js, na toleo la sasa kufikia Julai 2026 ni 1.9.2. Faili yake ya mfano ya mazingira inaorodhesha mahitaji yake: PostgreSQL kupitia DATABASE_URL, Redis kupitia REDIS_URL, siri mbili za nasibu, na URL inayoweza kufikiwa hadharani.
openssl rand -hex 32
openssl rand -hex 32Iendeshe mara mbili na uhifadhi thamani zote mbili. Ya kwanza inakuwa SECRET_KEY, na ya pili UTILS_SECRET. Sehemu kuu ya faili ya mazingira inaonekana hivi:
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 ni sahihi tu wakati hifadhidata iko kwenye mashine hiyo hiyo au kwenye mtandao huo huo wa Docker. Iache ikiwa hifadhidata inafikiwa kupitia mtandao, la sivyo muunganisho utapitishwa bila usimbaji fiche. Viambatisho havikulazimishi tena kutumia hifadhi ya vitu: FILE_STORAGE=local huandika faili zilizopakiwa kwenye saraka iliyo hapo juu. Saraka hiyo lazima iwe volume ambayo kontena linaweza kuiandikia na ambayo imejumuishwa katika nakala zako rudufu. Weka FILE_STORAGE=s3 kwa kutumia thamani za AWS_* badala yake ikiwa unataka kuhifadhi faili hizo kwenye bucket inayooana na S3.
Sasa kuna sehemu inayowashangaza watu. Outline haina mfumo wa ndani wa kuingia kwa jina la mtumiaji na nenosiri. Usanidi wake wa mfano unasema kuwa vitambulisho vya kuingia kupitia huduma za wahusika wengine vinahitajika: "at least ONE OF these is required for a working installation or you'll have no sign-in options". Watoa huduma waliorekodiwa ni pamoja na Google, Slack, Microsoft Entra, Discord, na seva yoyote ya jumla ya OpenID Connect (OIDC) kupitia OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_AUTH_URI, OIDC_TOKEN_URI na OIDC_USERINFO_URI.
Kwa hiyo, gharama halisi ya Outline ni Outline pamoja na PostgreSQL, Redis na mtoa huduma wa utambulisho. Ikiwa timu yako tayari inaingia kwa kutumia Google Workspace au Microsoft Entra, sehemu hiyo ya mwisho inakuchukua dakika kumi na Outline inakuwa chaguo linalovutia sana. Ikiwa sivyo, pia utakuwa ukijisimamia huduma kama Keycloak au Authentik, ambayo ni huduma ya pili ya kusasisha na kuhifadhi nakala zake rudufu. Panga kumbukumbu ya kutosha ipasavyo: mwongozo wa Outline unapendekeza takriban 512 MB kwa kila mchakato wa wavuti, unaowekwa na WEB_CONCURRENCY, juu ya kumbukumbu inayohitajika na hifadhidata pamoja na Redis.
Jinsi kila moja inavyodhibiti wanaoweza kusoma nini
BookStack ina akaunti za ndani za barua pepe na nenosiri tangu mwanzo, na inasaidia LDAP, SAML2 na OIDC kama njia mbadala. Ruhusa huwekwa kwa kila jukumu na zinaweza kubatilishwa kwenye shelf, book, chapter au page moja. Kwa kuwa mpangilio wake ni thabiti, ruhusa hurithiwa katika viwango vya chini kwa njia inayotabirika.
Wiki.js pia huja na akaunti za ndani na huongeza orodha ndefu ya mikakati unayowasha katika eneo la usimamizi. Kanuni za page zake huruhusu au hukataa ufikiaji kulingana na muundo wa path. Hii ina uwezo mkubwa, lakini ni rahisi kuiweka vibaya, kwa sababu kanuni iliyoandikwa kwa ops/* hujumuisha kimya kila page utakayoweka chini ya path hiyo baadaye.
Outline huachia mtoa huduma wa utambulisho uamuzi huo wote. Uanachama hufuata mtoa huduma wako wa utambulisho, na ndani ya Outline unadhibiti ufikiaji kwa collection na group. Hakuna akaunti ya ndani inayobaki mtu anapoondoka kwenye kampuni, jambo ambalo ni faida muhimu ikiwa mtoa huduma wa utambulisho tayari ndiye mfumo unaotumia kuondoa ufikiaji.
Jinsi utafutaji unavyofanya kazi katika kila mfumo
Utafutaji huamua kama wiki inafaa kutumiwa au inageuka kuwa folda iliyojaa faili zilizosahaulika.
BookStack hutafuta katika hifadhidata na huwapa wasomaji lugha ya hoja wanayoweza kujifunza ndani ya dakika moja. Kuweka kishazi katika alama za kunukuu, kama katika "london meeting", huhitaji mfuatano huo kamili. Mabano ya mraba hutafuta lebo: [location=london] hulingana kwa jina la lebo, thamani yake au vyote viwili, kwa ulinganisho unaojumuisha !=, >= na like. Mabano yaliyopinda huchuja kulingana na metadata, kama katika {created_after:2016-12-30}. Neno lolote kamili, la lebo au la kichujio linaweza kukanushwa kwa kulitanguliza na -. BookStack huweka kikomo cha idadi ya maneno ya kila aina ambayo hoja moja inaweza kuwa nayo. Kwa hiyo, hoja ndefu sana hukatwa badala ya kutekelezwa.
Wiki.js huchukulia utafutaji kama moduli inayoweza kuchomekwa. Injini zilizoandikwa katika nyaraka ni injini ya msingi ya hifadhidata, injini ya PostgreSQL, Elasticsearch, Algolia, AWS CloudSearch na Azure Search. Injini ya msingi inafaa kwa kurasa mia chache. Ikiwa unaendesha PostgreSQL, badilisha hadi injini ya PostgreSQL katika eneo la usimamizi, kwa sababu hutumia faharasa kamili ya maandishi ya hifadhidata yenyewe badala ya ulinganishaji rahisi. Tumia Elasticsearch kwa wiki kubwa kiasi kwamba uko tayari kuendesha na kusasisha huduma ya pili ya utafutaji.
Outline hutafuta katika faharasa kamili za maandishi za PostgreSQL. Hakuna injini ya kuchagua wala mipangilio ya kurekebisha, na pia hutafuta maandishi yaliyo ndani ya hati zilizopakiwa. Kwa wiki ya timu yenye hati katika maelfu machache, huu ndio mfumo unaohitaji kazi kidogo zaidi kati ya mifumo hiyo mitatu. Pia hakuna mipangilio ya kurekebisha ikiwa utafutaji utaacha kuwa wa haraka vya kutosha.
Ipi inayokufaa
Chagua BookStack ikiwa unataka wiki ianze kufanya kazi leo mchana na unapendelea kujadili maudhui badala ya muundo. Ina vipengele vichache zaidi vinavyotegemeana: programu moja ya PHP na hifadhidata moja ya MySQL. Inafaa kwa miongozo ya uendeshaji ya ndani na nyaraka za wateja. Pia inafaa kwa timu ambazo waandishi wengi si wahandisi. Ni rahisi zaidi kati ya hizi tatu kuweka nakala rudufu. Hii ni kwa sababu hali yote iko katika database dump moja pamoja na saraka ya uploads.
Chagua Wiki.js ikiwa unahitaji mhariri mahususi au mkakati mahususi wa uthibitishaji ambao mingine haitoi. Pia chagua ikiwa unaingiza kiasi kikubwa cha Markdown au AsciiDoc iliyopo na unataka muundo wa njia uhifadhiwe. Kubali kwamba unaendesha stack nzito zaidi. Weka major version tag isibadilike.
Chagua Outline ikiwa ubora wa uandishi ni muhimu zaidi, wiki ni ya timu badala ya umma, na tayari una identity provider. Usanidi huo hukupa mhariri ambao watu hufurahia kutumia. Usiichague kama programu yako ya kwanza ya self-hosted.
Ikiwa hakuna kati ya hizi tatu inayokufaa, tatizo kwa kawaida huwa aina ya maudhui. Ankara na mikataba iliyochanganuliwa vinapaswa kuwekwa katika mfumo wa usimamizi wa nyaraka kama Paperless-ngx badala ya wiki. Kuzilazimisha ziingie kwenye wiki ndiyo sababu wiki nyingi huishia kuachwa. Kwa mtazamo mpana wa huduma nyingine zinazostahili nafasi kwenye server yako mwenyewe, tazama orodha fupi ya self-hosting ya 2026.
Ukubwa wa rasilimali na nakala rudufu
Zote tatu zinaweza kuendeshwa kwenye VPS ndogo, lakini kiwango cha chini kinachofaa hutofautiana kutokana na vipengele vinavyoendesha kila moja. BookStack ni mchakato mmoja wa programu pamoja na MySQL. Wiki.js ni mchakato wa Node pamoja na PostgreSQL. Outline ni mchakato wa Node, PostgreSQL na Redis, kwa kawaida ikiwa na mtoa huduma wa utambulisho pia. Ndiyo sababu inahitaji kupewa kumbukumbu ya ziada.
Fanya nakala rudufu ya hifadhidata na faili zilizopakiwa kwa pamoja, kisha urejeshe vyote viwili kwenye instansii ya muda mara moja kabla ya kutegemea nakala hiyo. Nakala rudufu ya wiki ambayo haijawahi kurejeshwa ni makadirio tu. Kwa BookStack, hii inamaanisha mysqldump pamoja na volume ya /config. Kwa Wiki.js na Outline, inamaanisha pg_dump pamoja na data volume, na kwa Outline pia chochote kilicho kwenye FILE_STORAGE_LOCAL_ROOT_DIR.
FAQ
Ni wiki gani ya kujihudumia ni rahisi zaidi kusakinisha?
BookStack. Ni programu moja ya PHP iliyo na hifadhidata ya MySQL, na mradi hutoa hati ya usakinishaji kwa Ubuntu 24.04 inayoweka Apache, MySQL 8.0 na PHP 8.3 kwa utekelezaji mmoja. Picha ya kontena inahitaji tu APP_KEY na vitambulisho vya hifadhidata. Wiki.js huongeza mazingira ya uendeshaji ya Node na seva ya PostgreSQL, huku Outline ikiongeza Redis na mtoa huduma wa utambulisho wa nje juu ya hayo.
Je, ninaweza kutumia Outline bila Google au mtoa huduma mwingine wa SSO?
Hapana. Outline haina kuingia kwa kutumia jina la mtumiaji na nenosiri la ndani. Usanidi wake wa mfano unaeleza wazi kwamba angalau mtoa huduma mmoja wa kuingia wa pihak nyingine anahitajika; vinginevyo hutakuwa na chaguo lolote la kuingia. Unaweza kutumia Google, Slack, Microsoft Entra, Discord, au seva yoyote ya jumla ya OpenID Connect kama vile Keycloak au Authentik inayojihudumia. Kuendesha mtoa huduma huyo ni sehemu ya gharama ya kuendesha Outline.
Je, nisakinishe Wiki.js 3 au Wiki.js 2?
Toleo la 2. Kufikia July 2026, toleo jipya zaidi la toleo la 2 ni 2.5.314, lililotolewa May 2026, na nyaraka za toleo la 3 zinasema wazi kwamba ni beta isiyotulia ambayo hupaswi kuisakinisha katika mazingira ya uzalishaji. Funga picha yako kwenye ghcr.io/requarks/wiki:2 badala ya latest, kwa sababu mabadiliko ya toleo kuu hubadilisha taratibu ya hifadhidata wakati instansi inaendelea kufanya kazi.
Ni ipi iliyo na utafutaji bora zaidi?
Zina uwezo mkubwa kwa njia tofauti. BookStack huwapa wasomaji lugha ya hoja yenye vifungu kamili, vichujio vya lebo kama vile [location=london] na vichujio vya metadata kama vile {created_after:2016-12-30}, na istilahi yoyote kati ya hizo inaweza kukanushwa kwa - mwanzoni. Outline haihitaji usanidi na hutafuta maandishi yaliyo ndani ya faili zilizopakiwa. Wiki.js ndiyo inayoweza kurekebishwa zaidi, kwa sababu unachagua injini; injini ya PostgreSQL inafaa kubadilishiwa mara tu wiki yako inapozidi kurasa mia chache.
Je, ninaweza kuhamisha maudhui yangu kutoka moja hadi nyingine baadaye?
Kwa kiasi fulani, na unapaswa kutarajia kazi ya mikono. Zote tatu zinaweza kuhamisha na kuleta Markdown, kwa hiyo maandishi ya kurasa kwa kawaida huhifadhiwa. Muundo hauhifadhiwi vizuri: vitabu na sura za BookStack hazina kilinganishi katika hati zilizowekwa ndani za Outline, na njia za Wiki.js haziwezi kuendana na mpangilio maalum wa BookStack. Viambatisho, ruhusa na historia ya kurasa ndizo sehemu zinazo uwezekano mkubwa wa kupotea, kwa hiyo hamisha mfano wa maudhui na ukague vitu hivyo kabla ya kuanza uhamishaji.