SSD Nodes Learn RAM 8GB — $66/ปี
คู่มือ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-08-01

เปรียบเทียบวิกิโฮสต์เอง: BookStack, Wiki.js หรือ Outline

เปรียบเทียบ BookStack, Wiki.js และ Outline ด้านความง่ายในการติดตั้ง รูปแบบการแก้ไข ตัวเลือกเข้าสู่ระบบ และการค้นหา พร้อมคำแนะนำสำหรับผู้ดูแลเดี่ยวและทีม

คุณควรใช้วิกิแบบโฮสต์เองตัวใด

วิกิแบบโฮสต์เองจะรวมเอกสารของทีมไว้ในตำแหน่งเดียวที่ค้นหาได้บนเซิร์ฟเวอร์ที่คุณควบคุมได้ BookStack, Wiki.js และ Outline ต่างทำหน้าที่นี้ได้ ความแตกต่างหลักอยู่ที่จำนวนส่วนประกอบที่คุณต้องตั้งค่าก่อนที่หน้าแรกจะแสดง และผู้ที่ได้รับอนุญาตให้เข้าสู่ระบบ

BookStack ติดตั้งและเริ่มใช้งานได้ง่ายที่สุด และกำหนดโครงสร้างไว้อย่างชัดเจนที่สุด Wiki.js ให้ตัวเลือกเครื่องมือแก้ไขที่หลากหลายที่สุดภายใต้โครงสร้างหน้าเดียวกัน Outline มอบประสบการณ์การเขียนที่ดีที่สุดในสามตัวเลือกนี้ และจะไม่อนุญาตให้ผู้ใดเข้าสู่ระบบจนกว่าคุณจะเชื่อมต่อผู้ให้บริการข้อมูลระบุตัวตนภายนอก

เนื้อหาทั้งหมดด้านล่างอ้างอิงจากเอกสารของโครงการและไฟล์การกำหนดค่าที่โครงการเผยแพร่ นี่เป็นการเปรียบเทียบความสามารถ ไม่ใช่การทดสอบประสิทธิภาพ หมายเลขเวอร์ชันและข้อกำหนดมีการระบุวันที่ไว้ เนื่องจากทั้งสามโครงการมีการเปลี่ยนแปลงอยู่เสมอ

โครงสร้างคือทางเลือกที่แท้จริง

BookStack กำหนดโครงสร้างของเนื้อหา หน้าอยู่ภายในหนังสือ หนังสืออาจมีบท และชั้นวางใช้จัดกลุ่มหนังสือ คุณไม่สามารถสร้างระดับที่ 5 ได้ ข้อจำกัดนี้คือจุดประสงค์ของผลิตภัณฑ์ ผู้เขียนคนใหม่จะทราบว่าต้องวางหน้าไว้ที่ใด เพราะมีตำแหน่งที่เป็นไปได้เพียงแห่งเดียว ข้อเสียคือเนื้อหาที่ไม่เข้ากับโครงสร้างจะถูกบังคับให้จัดวางตามโครงสร้างนั้น

Wiki.js ใช้โครงสร้างต้นไม้ของเส้นทาง คล้ายโฟลเดอร์บนดิสก์ หน้าในตำแหน่ง ops/backup/restic จะอยู่ที่ใดก็ได้ตามที่คุณกำหนด และคุณเลือกระดับความลึกได้ ไม่มีสิ่งใดป้องกันไม่ให้คน 2 คนจัดเก็บหัวข้อเดียวกันไว้ใต้สาขาที่แตกต่างกัน ดังนั้นอินสแตนซ์ Wiki.js จึงต้องมีผู้รับผิดชอบโครงสร้างต้นไม้ 1 คน

Outline ใช้คอลเลกชันที่มีเอกสารซ้อนอยู่ภายในเอกสาร การย้ายเอกสารทำได้ด้วยการลากเมาส์ ตัวเลือกนี้ยืดหยุ่นที่สุดใน 3 ระบบ จึงปล่อยให้โครงสร้างค่อย ๆ เบี่ยงเบนได้ง่ายที่สุด

BookStack: การติดตั้งขนาดเล็กที่สุด

BookStack เป็นแอปพลิเคชัน PHP ที่ใช้ MySQL เป็นฐานข้อมูล ณ เดือนกรกฎาคม 2026 ข้อกำหนดที่ระบุไว้คือ PHP 8.2 หรือใหม่กว่า และ MySQL 8.0 หรือ MariaDB 10.6 หรือใหม่กว่าอย่างใดอย่างหนึ่ง รวมถึง Composer 2.2 หรือใหม่กว่า หากติดตั้งจากซอร์ส รุ่นที่อยู่ในสายปัจจุบันคือ 26.05

โครงการมีสคริปต์ติดตั้งแยกตามรุ่นของ Ubuntu แต่ละรุ่น สคริปต์สำหรับ 24.04 จะติดตั้ง Apache, MySQL 8.0 และ 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.sh

อ่านคำเตือนในสคริปต์ก่อนเรียกใช้ เอกสารระบุว่าสคริปต์นี้ “ใช้ได้ ONLY FOR A FRESH OS เท่านั้น โดยจะติดตั้ง Apache, MySQL 8.0 และ PHP 8.3 และอาจ OVERWRITE การตั้งค่าเว็บที่มีอยู่ในเครื่อง” หากเซิร์ฟเวอร์มีบริการตอบสนองที่ port 80 อยู่แล้ว สคริปต์จะยึด port ดังกล่าวและเขียนการตั้งค่า Apache ใหม่ ให้ใช้ containers แทนในกรณีนั้น หรือติดตั้ง BookStack ด้วยตนเองบน LAMP stack ที่มีอยู่บน Ubuntu 24.04

วิธีใช้ container ใช้ image ของ LinuxServer.io ซึ่งเป็นตัวเลือกที่เอกสาร BookStack แนะนำ BookStack ต้องใช้คีย์เข้ารหัสเซสชัน และจะไม่ให้บริการหน้าเว็บหากไม่มีคีย์นี้ ดังนั้นให้สร้างคีย์ก่อน

docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey

คัดลอกค่าที่แสดงไปใส่ใน APP_KEY จากนั้นเขียน 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-stopped

APP_URL ต้องตรงกับที่อยู่ที่ผู้อ่านพิมพ์เข้าจริง รวมถึง scheme และ port หากมี ให้ตั้งค่าเป็น http://localhost แล้วให้บริการเว็บไซต์ผ่าน HTTPS มิฉะนั้นลิงก์และการเปลี่ยนเส้นทางที่สร้างขึ้นจะชี้ไปยัง host ที่ไม่ถูกต้อง ซึ่งผู้อ่านจะเห็นเป็นหน้าเข้าสู่ระบบที่วนกลับมายังหน้าเดิม หากยังไม่คุ้นเคยกับไฟล์ compose ให้เริ่มจาก พื้นฐาน Docker Compose บน VPS ก่อนอ่านหัวข้อนี้

เริ่มระบบและตรวจสอบว่าแอปพลิเคชันตอบสนอง ไม่ใช่ตรวจเพียงว่า container กำลังทำงานอยู่:

docker compose up -d
docker compose ps
curl -sI http://127.0.0.1:6875/login

200 OK หมายความว่าแอปพลิเคชัน PHP เริ่มทำงานและเชื่อมต่อถึงฐานข้อมูลแล้ว 500 โดยเกือบทุกครั้งหมายความว่า APP_KEY ว่างเปล่า หรือข้อมูลรับรองฐานข้อมูลไม่ตรงกัน และ docker compose logs bookstack จะแสดงว่าเป็นกรณีใดจาก 2 กรณีนี้

Wiki.js: ต้นไม้เดียว ตัวแก้ไขหลายรูปแบบ

Wiki.js เป็นแอปพลิเคชัน Node.js การตั้งค่า Docker ตามเอกสารจะใช้งานร่วมกับ PostgreSQL แต่ซอฟต์แวร์ยังรองรับ MySQL, MariaDB, MSSQL และ SQLite ด้วย ไฟล์ compose นี้มาจากหน้า Docker ของโครงการโดยตรง:

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:

เปลี่ยน POSTGRES_PASSWORD และ DB_PASS พร้อมกันก่อนเรียกใช้งาน เนื่องจากทั้งสองรายการเป็นข้อมูลรับรองชุดเดียวกัน และค่าตัวอย่างเป็นข้อมูลสาธารณะ การกำหนด tag เป็น ghcr.io/requarks/wiki:2 มีจุดประสงค์โดยเฉพาะ เอกสารแนะนำไม่ให้ใช้ latest เนื่องจากการข้าม major version จะเปลี่ยน schema ของฐานข้อมูลขณะที่ instance กำลังทำงาน

ควรใช้งานสาย Version 2 ปัจจุบัน ณ เดือน July 2026 รุ่น Version 2 ล่าสุดคือ 2.5.314 ซึ่งเผยแพร่ในเดือน May 2026 มี Version 3 แล้ว และเอกสารของรุ่นดังกล่าวระบุว่า: "ไซต์นี้ใช้สำหรับรุ่นเบตาที่ไม่เสถียรของ Wiki.js 3.0 คุณไม่ควรติดตั้งรุ่นนี้ในระบบ production" ให้ถือว่า tag :3 เป็นรุ่น preview

เมื่อโหลดครั้งแรก Wiki.js จะแนะนำขั้นตอนการตั้งค่าผ่านเบราว์เซอร์ เพื่อสร้างบัญชีผู้ดูแลระบบ ก่อนตั้งค่าเสร็จ ทุกคนที่เข้าถึง port ได้จะเห็นตัวช่วยตั้งค่านี้ ดังนั้นให้วาง service ไว้หลัง reverse proxy และ TLS (transport layer security) ก่อนเปิดใช้งาน firewall หาก server ให้บริการมากกว่าหนึ่ง service การกำหนด wiki ให้ใช้ hostname ของตนเองจะเหมาะกับการวางไว้หลัง Traefik ด้านหน้าแอป Docker หลายรายการ

ตัวเลือก editor คือเหตุผลที่ผู้คนเลือกใช้ Wiki.js instance เดียวสามารถเก็บหน้า Markdown, หน้า visual editor, หน้า raw HTML และหน้า AsciiDoc ไว้ร่วมกันได้ วิธีนี้มีประโยชน์เมื่อนำเข้าเนื้อหาเก่าที่อยู่ในรูปแบบซึ่งคุณไม่ต้องการแปลง นอกจากนี้ยังอาจทำให้ wiki เดียวมีรูปแบบการเขียนภายในองค์กรถึง 4 แบบ ดังนั้นให้กำหนด editor เริ่มต้นตั้งแต่วันแรกและบันทึกการตัดสินใจนั้นไว้

Outline: เครื่องมือแก้ไขที่ดีที่สุด แต่มีข้อกำหนดเบื้องต้นมากที่สุด

Outline คือสิ่งที่ผู้ใช้มักหมายถึงเมื่อบอกว่าต้องการเครื่องมือจดบันทึกที่ให้ความรู้สึกเหมือนผลิตภัณฑ์เชิงพาณิชย์ Outline เป็นแอปพลิเคชัน Node.js และรุ่นปัจจุบัน ณ เดือน July 2026 คือ 1.9.2 ไฟล์สภาพแวดล้อมตัวอย่างระบุสิ่งที่จำเป็น ได้แก่ PostgreSQL ผ่าน DATABASE_URL, Redis ผ่าน REDIS_URL, ค่าลับแบบสุ่ม 2 ค่า และ URL ที่เข้าถึงได้จากสาธารณะ

openssl rand -hex 32
openssl rand -hex 32

เรียกใช้คำสั่งนี้ 2 ครั้งและเก็บค่าทั้ง 2 ค่าไว้ ค่าแรกใช้เป็น SECRET_KEY และค่าที่สองใช้เป็น UTILS_SECRET ส่วนหลักของไฟล์สภาพแวดล้อมจะมีลักษณะดังนี้:

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/data

PGSSLMODE=disable จะถูกต้องเฉพาะเมื่อฐานข้อมูลอยู่ในเครื่องเดียวกันหรืออยู่ใน Docker network เดียวกันเท่านั้น หากเข้าถึงฐานข้อมูลผ่าน network ให้ละเว้นค่านี้ มิฉะนั้นการเชื่อมต่อจะไม่มีการเข้ารหัส ส่วนไฟล์แนบไม่จำเป็นต้องใช้ object storage อีกต่อไป: FILE_STORAGE=local จะเขียนไฟล์ที่อัปโหลดลงในไดเรกทอรีด้านบน ไดเรกทอรีนี้ต้องเป็น volume ที่ container เขียนได้ และต้องอยู่ในขอบเขตที่ระบบสำรองข้อมูลครอบคลุม หากต้องการจัดเก็บไฟล์เหล่านี้ใน bucket ที่รองรับ S3 ให้ตั้งค่า FILE_STORAGE=s3 โดยใช้ค่า AWS_* แทน

ส่วนถัดไปเป็นสิ่งที่ผู้ใช้จำนวนมากไม่คาดคิด Outline ไม่มีการเข้าสู่ระบบด้วยชื่อผู้ใช้และรหัสผ่านในตัว การกำหนดค่าตัวอย่างของ Outline ระบุว่าต้องมีข้อมูลรับรองสำหรับการเข้าสู่ระบบผ่านผู้ให้บริการภายนอก: "ต้องมีอย่างน้อยหนึ่งรายการจากตัวเลือกเหล่านี้เพื่อให้การติดตั้งใช้งานได้ มิฉะนั้นจะไม่มีตัวเลือกการเข้าสู่ระบบ" ผู้ให้บริการที่มีเอกสารรองรับ ได้แก่ Google, Slack, Microsoft Entra, Discord และเซิร์ฟเวอร์ OpenID Connect (OIDC) ทั่วไป ผ่าน OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_AUTH_URI, OIDC_TOKEN_URI และ OIDC_USERINFO_URI

ดังนั้น ต้นทุนที่แท้จริงของ Outline คือ Outline พร้อม PostgreSQL, Redis และ identity provider หากทีมของคุณเข้าสู่ระบบด้วย Google Workspace หรือ Microsoft Entra อยู่แล้ว ส่วนสุดท้ายนี้ใช้เวลาเพียง 10 นาที และทำให้ Outline เป็นตัวเลือกที่น่าสนใจมาก หากไม่ใช่ คุณจะต้องดูแลระบบบางอย่าง เช่น Keycloak หรือ Authentik ด้วยตนเอง ซึ่งเป็นบริการเพิ่มเติมที่ต้องติดตั้งแพตช์และสำรองข้อมูล คุณต้องจัดสรรหน่วยความจำให้เหมาะสม โดยคำแนะนำของ Outline คือประมาณ 512 MB ต่อ web process ซึ่งกำหนดด้วย WEB_CONCURRENCY นอกเหนือจากหน่วยความจำสำหรับฐานข้อมูลและ Redis

วิธีที่แต่ละระบบจัดการว่าใครมีสิทธิ์อ่านอะไรได้บ้าง

BookStack มีบัญชีที่ใช้ email และ password ภายในระบบมาให้ตั้งแต่แรก และรองรับ LDAP, SAML2 และ OIDC เป็นทางเลือกเพิ่มเติม คุณกำหนดสิทธิ์ตาม role และสามารถแทนที่การตั้งค่าใน shelf, book, chapter หรือ page รายการใดรายการหนึ่งได้ เนื่องจากโครงสร้างลำดับชั้นกำหนดไว้ตายตัว สิทธิ์จึงสืบทอดลงมาตามลำดับชั้นในลักษณะที่คาดการณ์ได้

Wiki.js มีบัญชีภายในระบบมาให้เช่นกัน และเพิ่มกลยุทธ์จำนวนมากที่คุณเปิดใช้งานได้ในพื้นที่ผู้ดูแลระบบ กฎของ page จะอนุญาตหรือปฏิเสธการเข้าถึงตามรูปแบบ path วิธีนี้มีความยืดหยุ่นและใช้งานผิดพลาดได้ง่าย เพราะกฎที่เขียนสำหรับ ops/* จะครอบคลุม page ทุกหน้าที่คุณจัดเก็บไว้ภายใต้ path นั้นในภายหลังโดยไม่มีการแจ้งเตือน

Outline มอบหมายเรื่องนี้ให้ระบบภายนอกทั้งหมด การเป็นสมาชิกจะอ้างอิงจาก identity provider และภายใน Outline คุณควบคุมการเข้าถึงตาม collection และ group เมื่อมีคนออกจากบริษัท ระบบจะไม่เหลือบัญชีภายในระบบของบุคคลนั้นไว้ ซึ่งเป็นข้อได้เปรียบที่สำคัญเมื่อ identity provider เป็นระบบที่คุณใช้เพิกถอนสิทธิ์อยู่แล้ว

วิธีการทำงานของการค้นหาในแต่ละระบบ

การค้นหาเป็นตัวตัดสินว่า wiki มีประโยชน์จริงหรือกลายเป็นเพียงโฟลเดอร์ที่เต็มไปด้วยไฟล์ที่ถูกลืม

BookStack ค้นหาในฐานข้อมูลและมีภาษาคิวรีที่ผู้อ่านสามารถเรียนรู้ได้ภายใน 1 นาที การใส่เครื่องหมายอัญประกาศครอบวลี เช่น "london meeting" จะกำหนดให้ต้องตรงกับสตริงนั้นแบบตรงทั้งหมด การใช้วงเล็บเหลี่ยมค้นหาแท็ก: [location=london] จะจับคู่ด้วยชื่อแท็ก ค่าแท็ก หรือทั้งสองอย่าง โดยรองรับการเปรียบเทียบ เช่น !=, >= และ like วงเล็บปีกกาใช้กรองข้อมูลเมทาดาทา เช่น {created_after:2016-12-30} สามารถปฏิเสธเงื่อนไขที่ตรงทั้งหมด เงื่อนไขแท็ก หรือเงื่อนไขตัวกรองได้ด้วยการเติม - ไว้ด้านหน้า BookStack จำกัดจำนวนเงื่อนไขแต่ละประเภทที่คิวรีหนึ่งรายการมีได้ ดังนั้นคิวรีที่ยาวเกินไปจะถูกตัดทอนแทนที่จะถูกประมวลผล

Wiki.js จัดการการค้นหาเป็นโมดูลที่สามารถเปลี่ยนได้ เอนจินที่มีเอกสารระบุไว้ ได้แก่ เอนจินฐานข้อมูลพื้นฐาน เอนจิน PostgreSQL, Elasticsearch, Algolia, AWS CloudSearch และ Azure Search เอนจินพื้นฐานเหมาะสำหรับหน้าจำนวนไม่กี่ร้อยหน้า หากคุณใช้ PostgreSQL ให้เปลี่ยนไปใช้เอนจิน PostgreSQL ในพื้นที่ผู้ดูแลระบบ เนื่องจากเอนจินนี้ใช้ดัชนี full text ของฐานข้อมูลเองแทนการจับคู่แบบง่าย ให้ใช้ Elasticsearch เมื่อ wiki มีขนาดใหญ่พอที่คุณยอมรับภาระการรันและแพตช์บริการค้นหาอีกหนึ่งบริการได้

Outline ค้นหาด้วยดัชนี full text ของ PostgreSQL ไม่มีเอนจินให้เลือกและไม่มีการตั้งค่าที่ต้องปรับแต่ง อีกทั้งยังค้นหาข้อความภายในเอกสารที่อัปโหลดด้วย สำหรับ wiki ของทีมที่มีเอกสารระดับหลักพันรายการ ระบบนี้เป็นตัวเลือกที่ใช้แรงดูแลน้อยที่สุดในบรรดา 3 ระบบ แต่หากวันหนึ่งประสิทธิภาพไม่เพียงพอ ก็ไม่มีตัวเลือกให้ปรับแต่งเพื่อแก้ไขปัญหาดังกล่าว

ตัวเลือกใดเหมาะกับคุณ

เลือก BookStack หากคุณต้องการให้ wiki พร้อมใช้งานภายในบ่ายนี้ และต้องการถกเถียงเรื่องเนื้อหามากกว่าโครงสร้าง ระบบนี้มีองค์ประกอบที่ต้องดูแลน้อยที่สุด ได้แก่ แอปพลิเคชัน PHP 1 รายการและฐานข้อมูล MySQL 1 รายการ เหมาะสำหรับคู่มือปฏิบัติงานภายในและเอกสารสำหรับลูกค้า รวมถึงทีมที่ผู้เขียนส่วนใหญ่ไม่ใช่วิศวกร นอกจากนี้ยังสำรองข้อมูลได้ง่ายที่สุดในบรรดา 3 ตัวเลือก เพราะสถานะทั้งหมดประกอบด้วย database dump 1 ไฟล์และไดเรกทอรี uploads

เลือก Wiki.js หากคุณต้องการ editor หรือกลยุทธ์การยืนยันตัวตนเฉพาะที่ตัวเลือกอื่นไม่มีให้ หรือหากคุณกำลังนำเข้า Markdown หรือ AsciiDoc ที่มีอยู่จำนวนมากและต้องการรักษาโครงสร้าง path ไว้ ยอมรับว่าคุณกำลังใช้งาน stack ที่มีองค์ประกอบมากกว่า และกำหนด major version tag ให้ชัดเจน

เลือก Outline หากคุณให้ความสำคัญกับคุณภาพการเขียนมากที่สุด wiki ใช้สำหรับทีมไม่ใช่สาธารณะ และคุณมี identity provider อยู่แล้ว การตั้งค่านี้ช่วยให้ได้ editor ที่ผู้ใช้สามารถใช้งานได้จริง อย่าเลือกใช้เป็นแอปพลิเคชันแบบ self-hosted ตัวแรกของคุณ

หากไม่มีตัวเลือกใดใน 3 ตัวเลือกนี้ที่เหมาะสม สาเหตุมักอยู่ที่ประเภทของเนื้อหา ใบแจ้งหนี้และสัญญาที่สแกนมาเหมาะกับ ระบบจัดการเอกสาร เช่น Paperless-ngx มากกว่า wiki และการฝืนใส่เอกสารเหล่านี้ลงใน wiki คือสาเหตุที่ wiki จำนวนมากถูกเลิกใช้งาน หากต้องการมุมมองที่กว้างขึ้นเกี่ยวกับสิ่งอื่นที่เหมาะจะติดตั้งบนเซิร์ฟเวอร์ของคุณเอง โปรดดู รายการคัดเลือกซอฟต์แวร์ self-hosting สำหรับ 2026

การกำหนดขนาดทรัพยากรและการสำรองข้อมูล

ทั้ง 3 ระบบสามารถทำงานบน VPS ขนาดเล็กได้ แต่ข้อกำหนดขั้นต่ำที่เหมาะสมแตกต่างกันตามส่วนประกอบที่อยู่เบื้องหลังแต่ละระบบ BookStack ใช้กระบวนการของแอปพลิเคชัน 1 กระบวนการและ MySQL ส่วน Wiki.js ใช้กระบวนการ Node และ PostgreSQL ส่วน Outline ใช้กระบวนการ Node, PostgreSQL และ Redis โดยปกติมักมีผู้ให้บริการข้อมูลประจำตัวทำงานร่วมด้วย จึงควรจัดสรรหน่วยความจำเพิ่มให้กับ Outline

สำรองฐานข้อมูลและไฟล์อัปโหลดไปพร้อมกัน จากนั้นกู้คืนทั้ง 2 ส่วนลงในอินสแตนซ์ชั่วคราว 1 ครั้งก่อนที่จะพึ่งพาข้อมูลสำรองนั้น ข้อมูลสำรองของ wiki ที่ยังไม่เคยกู้คืนถือเป็นเพียงการคาดเดา สำหรับ BookStack หมายถึง mysqldump พร้อมกับโวลุ่ม /config สำหรับ Wiki.js และ Outline หมายถึง pg_dump พร้อมกับโวลุ่มข้อมูล และสำหรับ Outline ยังรวมถึงสิ่งที่อยู่ใน FILE_STORAGE_LOCAL_ROOT_DIR ด้วย

FAQ

วิกิที่โฮสต์เองใดติดตั้งได้ง่ายที่สุด?

BookStack เป็นตัวเลือกที่ง่ายที่สุด โดยเป็นแอปพลิเคชัน PHP เดี่ยวที่ใช้ฐานข้อมูล MySQL และโครงการมีสคริปต์ติดตั้งสำหรับ Ubuntu 24.04 ซึ่งตั้งค่า Apache, MySQL 8.0 และ PHP 8.3 ให้เสร็จในครั้งเดียว อิมเมจคอนเทนเนอร์ต้องการเพียง APP_KEY และข้อมูลรับรองฐานข้อมูลเท่านั้น Wiki.js ต้องใช้ Node runtime และเซิร์ฟเวอร์ PostgreSQL เพิ่มเติม ส่วน Outline ต้องใช้ Redis และผู้ให้บริการยืนยันตัวตนภายนอกเพิ่มจากนั้น

สามารถใช้ Outline โดยไม่ใช้ Google หรือผู้ให้บริการ SSO รายอื่นได้หรือไม่?

ไม่ได้ Outline ไม่มีการเข้าสู่ระบบด้วยชื่อผู้ใช้และรหัสผ่านภายในเครื่อง การกำหนดค่าตัวอย่างระบุว่าต้องมีผู้ให้บริการเข้าสู่ระบบจากบุคคลที่สามอย่างน้อย 1 ราย มิฉะนั้นจะไม่มีตัวเลือกการเข้าสู่ระบบเลย คุณสามารถใช้ Google, Slack, Microsoft Entra, Discord หรือเซิร์ฟเวอร์ OpenID Connect ทั่วไป เช่น Keycloak หรือ Authentik ที่โฮสต์เอง การดูแลผู้ให้บริการดังกล่าวเป็นส่วนหนึ่งของต้นทุนการใช้งาน Outline

ควรติดตั้ง Wiki.js 3 หรือ Wiki.js 2?

Wiki.js 2 ณ เดือน July 2026 รุ่นล่าสุดของ version 2 คือ 2.5.314 ซึ่งเผยแพร่ใน May 2026 และเอกสารของ version 3 ระบุอย่างชัดเจนว่าเป็น unstable beta ที่ไม่ควรติดตั้งในระบบ production ให้ตรึงอิมเมจไว้ที่ ghcr.io/requarks/wiki:2 แทน latest เนื่องจากการเปลี่ยน major version จะเปลี่ยน database schema ขณะที่ instance กำลังทำงาน

ตัวใดมีระบบค้นหาที่ดีที่สุด?

แต่ละตัวมีจุดแข็งต่างกัน BookStack มีภาษาคิวรีสำหรับผู้อ่าน พร้อมตัวกรองแท็ก เช่น [location=london] และตัวกรองข้อมูลเมทาดาทา เช่น {created_after:2016-12-30} และสามารถทำให้คำค้นหาใดๆ เหล่านี้เป็นเงื่อนไขปฏิเสธได้ด้วย - ที่อยู่ด้านหน้า Outline ไม่ต้องกำหนดค่าเพิ่มเติมและค้นหาข้อความภายในไฟล์ที่อัปโหลดได้ Wiki.js ปรับแต่งได้มากที่สุด เนื่องจากคุณเป็นผู้เลือก engine และควรเปลี่ยนไปใช้ engine ของ PostgreSQL ทันทีที่วิกิของคุณมีขนาดเกินสองสามร้อยหน้า

สามารถย้ายเนื้อหาจากตัวหนึ่งไปยังอีกตัวหนึ่งภายหลังได้หรือไม่?

ทำได้บางส่วน และควรคาดว่าจะต้องดำเนินการด้วยตนเอง ทั้ง 3 ตัวสามารถส่งออกและนำเข้า Markdown ได้ ดังนั้นข้อความในหน้ามักจะยังคงอยู่ แต่โครงสร้างจะไม่ถูกถ่ายโอนได้อย่างสมบูรณ์: books และ chapters ของ BookStack ไม่มีโครงสร้างเทียบเท่าในเอกสารแบบซ้อนระดับของ Outline และ paths ของ Wiki.js ไม่สอดคล้องกับลำดับชั้นแบบตายตัวของ BookStack ไฟล์แนบ สิทธิ์ และประวัติหน้าเป็นส่วนที่มีโอกาสสูญหายมากที่สุด ดังนั้นให้ส่งออกตัวอย่างและตรวจสอบรายการเหล่านี้ก่อนเริ่มการย้ายระบบ lod.

#bookstack#wikijs#outline#wiki#self-hosting#knowledge-base