BookStack 文档知识库搭建教程

BookStack 是一款简洁易用的开源 Wiki 和文档管理平台,基于 PHP Laravel 框架构建。它采用"书架 > 书籍 > 章节 > 页面"的四级层级结构来组织内容,就像管理一个虚拟图书馆。BookStack 的特色是上手简单、界面清晰、支持 WYSIWYG 和 Markdown 双编辑器。本文将介绍如何在搬瓦工 VPS 上使用 Docker 部署 BookStack。部署前请确保已安装好 Docker 和 Docker Compose

一、系统要求

  • 操作系统:Ubuntu 20.04+ 或 Debian 11+。
  • 内存:至少 512MB,建议 1GB。
  • 磁盘:至少 5GB 可用空间。

二、Docker Compose 部署

mkdir -p /opt/bookstack
cd /opt/bookstack

cat > /opt/bookstack/docker-compose.yml <<'EOF'
version: '3.8'

services:
  db:
    image: mariadb:10.11
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
      MYSQL_DATABASE: bookstack
      MYSQL_USER: bookstack
      MYSQL_PASSWORD: your_db_password
    volumes:
      - db_data:/var/lib/mysql

  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    restart: always
    depends_on:
      - db
    ports:
      - "6875:80"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - APP_URL=https://docs.yourdomain.com
      - DB_HOST=db
      - DB_PORT=3306
      - DB_USER=bookstack
      - DB_PASS=your_db_password
      - DB_DATABASE=bookstack
    volumes:
      - bookstack_data:/config

volumes:
  db_data:
  bookstack_data:
EOF

docker compose up -d

三、配置 Nginx 反向代理

cat > /etc/nginx/sites-available/bookstack <<'EOF'
server {
    listen 80;
    server_name docs.yourdomain.com;

    client_max_body_size 50M;

    location / {
        proxy_pass http://127.0.0.1:6875;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
EOF

ln -s /etc/nginx/sites-available/bookstack /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d docs.yourdomain.com

四、登录与初始设置

访问 https://docs.yourdomain.com,使用默认管理员账户登录:

  • 邮箱:admin@admin.com
  • 密码:password

登录后务必立即修改默认密码和管理员邮箱。进入 Settings > Users 修改。

五、内容组织结构

BookStack 使用四级层级结构管理内容:

  • 书架(Shelves):最高层级的分类容器,用于归类相关书籍。
  • 书籍(Books):一个独立的知识主题或项目文档。
  • 章节(Chapters):书籍中的分组,用于组织相关页面。
  • 页面(Pages):实际的内容页面,是最基本的内容单元。

这种结构非常适合技术文档、产品手册、操作指南等内容的组织。

六、编辑器功能

BookStack 提供两种编辑器:

  • WYSIWYG 编辑器:所见即所得编辑器,支持富文本格式、插入图片、表格、代码块、链接等。
  • Markdown 编辑器:支持标准 Markdown 语法和实时预览。在用户设置中可以切换默认编辑器。

两种编辑器都支持代码语法高亮、数学公式(需启用)和图片拖拽上传。

七、页面模板

BookStack 支持创建页面模板来标准化文档格式。在任意页面中,点击 "More Actions" > "Save as Template" 即可将当前页面保存为模板。创建新页面时可以从模板列表中选择。

八、用户与权限

BookStack 提供了灵活的角色权限系统:

  • 内置角色:Admin(管理员)、Editor(编辑者)、Viewer(查看者)。
  • 自定义角色:可以创建自定义角色并精确控制每种操作的权限。
  • 内容权限:每个书架、书籍、章节和页面都可以独立设置权限。

九、导出功能

BookStack 支持将页面导出为多种格式:

  • PDF:导出为 PDF 文档。
  • HTML:导出为独立的 HTML 文件。
  • Markdown:导出为 Markdown 纯文本。
  • 纯文本:导出为无格式文本。

十、配置邮件通知

在 BookStack 的环境变量中配置 SMTP 以启用邮件功能:

- MAIL_DRIVER=smtp
- MAIL_HOST=smtp.example.com
- MAIL_PORT=587
- MAIL_USERNAME=your-email@example.com
- MAIL_PASSWORD=your-smtp-password
- MAIL_ENCRYPTION=tls
- MAIL_FROM=noreply@yourdomain.com
- MAIL_FROM_NAME=BookStack

十一、数据备份

# 备份数据库
docker exec bookstack-db-1 mysqldump -u bookstack -p'your_db_password' bookstack > /opt/bookstack/backup_$(date +%Y%m%d).sql

# 备份上传文件和配置
tar -czf /opt/bookstack/backup_files_$(date +%Y%m%d).tar.gz /opt/bookstack/bookstack_data/

十二、常见问题

PDF 导出失败

BookStack 使用 wkhtmltopdf 或 Dompdf 生成 PDF。LinuxServer 镜像已内置 wkhtmltopdf。如果导出失败,检查容器日志中的错误信息。

图片上传失败

检查 bookstack_data 目录的权限,确保容器内的用户有写入权限。

总结

BookStack 是一款上手简单、结构清晰的文档知识库工具。"书架-书籍-章节-页面"的组织方式非常直观,适合搭建技术文档库、产品手册和团队知识库。在搬瓦工 VPS 上部署 BookStack 只需较少的资源即可流畅运行。更多知识管理工具请参考:Wiki.js 部署Outline 部署Memos 笔记部署。选购搬瓦工 VPS 请参考全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。