−25%

Windows รายปี ถึง 31 ต.ค. ดูแพ็กเกจ

EQVPS

VPS สำหรับ BookStack: วิกิทีมที่โฮสต์เอง

รัน BookStack บน VPS เป็นวิกิเอกสารของทีม: Docker กับ MariaDB, HTTPS บนโดเมนของคุณ การล็อกอินครั้งแรก การสำรองข้อมูล และสเปกที่ต้องการจริง

เอกสารของทีมมักตายด้วยหนึ่งในสองวิธี: กระจัดกระจายอยู่ในเธรดแชตที่ไม่มีใครค้นหาได้ หรือจมอยู่ในวิกิที่ใช้ยากจนไม่มีใครอัปเดต BookStack คือวิกิโฮสต์เองที่หายากเพราะคนใช้กันจริง เนื้อหาจัดอยู่บนชั้นหนังสือ ในหนังสือ บท และหน้า — โครงสร้างที่ทุกคนเข้าใจโดยไม่ต้องอบรม และแทบไม่ต้องใช้เซิร์ฟเวอร์เลย

ทำไมต้อง BookStack

มันไม่ใช่เครื่องมือสำหรับทุกงาน เอกสารสำหรับนักพัฒนาที่ต้องเปลี่ยนไปพร้อมโค้ดควรอยู่ในรีโพ ไม่ใช่ในวิกิ

ต้องใช้อะไร

BookStack เบา สำหรับทีมส่วนใหญ่ Micro-IP — 1 vCPU, 2 GB, $10 ต่อเดือน — เกินพอ 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 ในคู่มือ deploy stack ของเรา

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 รัน migration ของฐานข้อมูลตอนสตาร์ต อ่านบันทึกการออกรุ่นก่อนรุ่นใหญ่ สั้นและชัดเจน

ถ้าทีมของคุณอยากได้ที่สำหรับตั๋วงานและโค้ดด้วย เซิร์ฟเวอร์ Git ที่โฮสต์เองวางข้างกันได้ดี บนแพ็กเกจแบบเดียวกัน

พร้อม deploy แล้วหรือยัง? จ่ายด้วยคริปโต ไม่ต้อง KYC — ใช้งานได้ในราวหนึ่งนาที

Deploy เลย →

FAQ

BookStack ต้องใช้เซิร์ฟเวอร์แค่ไหน?

น้อยมาก BookStack เป็นแอป PHP กับฐานข้อมูล MariaDB ทีมหลักสิบคนรันได้สบายบน 1 vCPU และ RAM 2 GB ดิสก์ส่วนใหญ่ใช้กับรูปภาพและไฟล์แนบที่อัปโหลด

ข้อมูลล็อกอินเริ่มต้นคืออะไร?

admin@admin.com กับรหัสผ่าน 'password' ล็อกอินแล้วเปลี่ยนทั้งสองอย่างทันที — ก่อนแชร์ URL ให้ใคร

ใช้ระบบล็อกอินของบริษัทได้ไหม?

ได้ BookStack รองรับ LDAP, SAML2 และ OpenID Connect ทุกคนจึงล็อกอินผ่านผู้ให้บริการยืนยันตัวตนที่คุณใช้อยู่แล้ว

ต้องใช้ IP เฉพาะไหม?

สำหรับทีม ต้องใช้ เพื่อนร่วมงานเปิดมันในเบราว์เซอร์ผ่าน HTTPS ซึ่งต้องมีทราฟฟิกขาเข้าพอร์ต 443 บน IP ของคุณเอง สำหรับสมุดโน้ตส่วนตัว SSH tunnel บนแพ็กเกจ NAT ก็พอ

สำรองข้อมูลอย่างไร?

dump ฐานข้อมูลและคัดลอกโฟลเดอร์อัปโหลด ซึ่งอยู่ใน volume การตั้งค่าที่เมานต์ไว้ คู่มือ restic ของเราทำทั้งสองอย่างอัตโนมัติเป็น snapshot เข้ารหัสนอกเซิร์ฟเวอร์

ความคิดเห็น

ยังไม่มีความคิดเห็น เป็นคนแรกสิ

แสดงความคิดเห็น

ความคิดเห็นจะถูกตรวจสอบก่อนแสดง