Decentralization? We're still early!

Bookstack:开源的个人知识管理系统(终身学习者和研究者必备)

  • Bookstack:开源的个人知识管理系统(终身学习者和研究者必备)

    發布人 Brave 2023-12-31 07:38

    在当今的信息时代,我们经常需要收集、整理和分享各种知识和信息,比如学习笔记、工作文档、个人日记、在线书籍等。有时候,我们也需要和其他人协作和交流,比如家人、朋友、同事等。

    为了实现这些功能,我们通常会使用一些云服务或应用程序,比如 Evernote、OneNote、Google Docs 等。这些服务或应用程序虽然方便,但也有一些缺点,比如:

    • 📤 需要上传数据到云端,占用网络带宽和存储空间,可能产生费用。
    • 🔒 需要信任第三方服务提供商,可能存在隐私泄露、数据丢失、安全风险等问题。
    • 📜 需要遵守第三方服务提供商的规则,可能受到限制或封禁。
    • 🌐 需要依赖互联网连接,可能受到网络不稳定、速度慢、断网等影响。

    那么,有没有一种方法,可以让我们在自己的设备上创建和组织知识和信息,而不需要依赖任何第三方服务呢?答案是有的,那就是 BookStack。你可以把 BookStack 理解为一个功能更强大且自托管的 GitBook。


    BookStack 的特点和功能

    BookStack 是一个开源的个人知识管理系统,它可以让你在你自己的设备上创建和组织文档、笔记、书籍等,支持 Markdown 和 WYSIWYG 两种编辑模式,支持多语言和多主题,支持搜索和标签,支持导入和导出,支持权限和角色,支持社交登录和 LDAP 认证,支持二次开发和扩展。

    BookStack 由英国开发者 Dan Brown 于 2015 年 7 月创建,至今已走过十年历程。项目基于 PHP 语言和 Laravel 框架构建,使用 MySQL 作为数据存储。截至 2025 年底,BookStack 已发布超过 5 个功能版本和 18 个补丁版本,最新稳定版本为 v25.12.3。项目在 GitHub 上持续活跃,社区赞助收入从 2024 年的约 4.65 万英镑增长至 2025 年的约 5.88 万英镑,显示出强劲的社区支持力度。

    🟢 开源免费

    BookStack 是完全免费和开源的,遵循 MIT 协议。源代码都在 GitHub 上,你可以查看、修改和贡献。

    与 Confluence、Notion 等商业产品不同,BookStack 不存在订阅费用或用户数限制。对于中小企业和个人用户而言,这意味着可以零成本构建专业级的文档管理系统。MIT 协议的宽松性也允许企业根据自身需求进行深度定制,甚至将其整合到商业产品中。

    🟢 简单直观

    BookStack 的设计和操作都非常简单和直观,即使是新手也可以轻松上手。所有的内容都按照书籍、章节和页面的层级结构来组织,你可以随时创建、编辑和删除。你也可以使用 Markdown 或 WYSIWYG 两种编辑模式来编写你的内容,支持实时预览和历史版本。

    BookStack 采用四层内容组织架构,模拟真实书籍的阅读体验:

    层级名称说明是否必需
    📚 第一层书架(Shelves)用于归类和管理多本书籍,一本书可同时放置在多个书架上可选
    📖 第二层书籍(Books)知识内容的主要容器,是组织文档的基本单位✅ 必需
    📑 第三层章节(Chapters)用于在书籍内部进一步分类页面,便于大型文档的管理可选
    📄 第四层页面(Pages)实际承载内容的最小单位,支持富文本编辑✅ 必需

    这种"书籍隐喻"设计使得用户无需学习复杂的标签系统或文件夹嵌套规则,即可快速理解内容的组织方式。相比 Notion 的自由度过高可能导致的"结构混乱",BookStack 的规范化层级更适合需要标准化文档管理的团队场景。

    🟢 功能丰富

    BookStack 支持多种类型的内容,比如文本、图片、视频、音频、代码、表格、公式等。你可以根据自己的需求和喜好,选择不同的主题和语言,创建不同的书籍和页面。你也可以使用搜索和标签来快速找到你想要的内容,或者使用导入和导出来备份和迁移你的内容。

    BookStack 的核心功能可归纳为以下几个模块:

    📝 编辑器功能

    • 双模式编辑:WYSIWYG(所见即所得)编辑器适合非技术人员,Markdown 编辑器则满足开发者偏好。v25.07 版本新增了纯文本 Markdown 页面编辑器输入选项,进一步扩展了编辑灵活性。
    • 内置绘图:集成 diagrams.net 绘图功能,可直接在文档中创建流程图、架构图等专业图表
    • 代码高亮:支持多种编程语言的语法高亮显示
    • 实时预览:Markdown 编辑时提供实时渲染预览
    • 版本历史:自动保存页面的历史版本,支持版本对比和回滚

    🔍 搜索与发现

    • 全文搜索:可在整个实例范围或特定书籍内进行内容搜索
    • 标签系统:为页面添加标签,便于跨书籍的内容聚合
    • 评论功能v25.05 版本重点增强了评论功能,支持页面级别的讨论和协作

    📦 导入导出

    • 支持导出为 PDF、HTML、纯文本、Markdown 等多种格式
    • v25.07 版本推出了全新的 ZIP 导出格式,并通过 REST API 提供了完整的 ZIP 导入/导出端点(books、chapters、pages),支持批量数据迁移和自动化备份
    • 可从其他平台导入内容

    🌍 国际化支持

    • 提供 30 多种语言的用户界面
    • v25.07 版本新增了尼泊尔语支持
    • 支持自定义翻译文本

    🎨 主题与定制

    • 内置明暗两种主题,用户可自行切换
    • 可视化主题系统(Visual Theme System)允许自定义视图、翻译文本和图标
    • 逻辑主题系统(Logical Theme System)支持通过 PHP 代码扩展后端功能

    🟢 安全可控

    BookStack 不会存储或访问你的任何私密信息,你的数据只存储在你自己的设备上,不会上传到任何其他地方。你可以完全控制你的数据和隐私,不用担心任何安全风险或隐私泄露。你也可以设置不同的权限和角色,来控制谁可以查看或编辑你的内容,或者使用社交登录或 LDAP 认证,来方便和安全地登录你的账户。

    BookStack 提供企业级的安全与权限管理能力:

    🔐 认证方式

    认证类型适用场景
    📧 邮箱/密码个人用户或小型团队的默认登录方式
    🔗 LDAP与企业现有目录服务(如 Active Directory)集成
    🎫 SAML2支持单点登录(SSO),适配 KeyCloak 等身份提供商
    🆔 OIDCOpenID Connect 协议支持,兼容现代身份认证系统
    🌐 社交登录支持 Google、GitHub、Twitter 等第三方账号登录

    👥 权限与角色

    • 细粒度权限控制:可针对书架、书籍、章节、页面分别设置查看/编辑权限
    • 角色管理:预设或自定义角色,批量分配权限
    • MFA 多因素认证:支持基于角色强制启用双因素认证
    • 审计日志:完整记录系统内所有修改操作,便于合规审查和问题追溯

    ⚠️ 安全更新

    v25.12.3 是一个重要的安全更新版本,修复了页面内容中表单元素可能被用于诱骗高权限用户发起 API 请求的漏洞。如果你的 BookStack 实例允许不受信任的用户创建或编辑页面,强烈建议立即更新。

    此外,2026 年欧盟《网络弹性法案》(Cyber Resilience Act, CRA)的主要义务将正式生效,BookStack 项目团队正在积极应对相关合规要求,确保开源项目符合新的安全标准。


    BookStack 与同类产品对比

    在选择知识管理工具时,了解不同产品的定位和特点非常重要。以下是 BookStack 与几款主流产品的对比:

    特性BookStackNotionGitBookConfluence
    部署方式🏠 自托管☁️ 云服务☁️ 云服务☁️ 云服务/自托管
    开源协议✅ MIT❌ 闭源❌ 闭源❌ 闭源
    费用💚 完全免费💰 $8+/用户/月💰 付费为主💰 付费为主
    数据主权✅ 完全自主❌ 存储在云端❌ 存储在云端部分自主
    学习曲线🟢 简单🟡 中等🟡 中等🔴 较陡
    适合场景内部知识库、文档管理全能工作空间技术文档、API 文档企业级协作

    选择建议:

    • 🏆 选择 BookStack:如果你重视数据主权、需要完全控制自己的数据、有基本的技术能力进行自托管部署,或者希望避免持续的订阅费用
    • 📱 选择 Notion:如果你需要一个集笔记、数据库、项目管理于一体的全能工作空间,且团队成员分布广泛需要实时协作
    • 💻 选择 GitBook:如果你的主要需求是面向开发者的技术文档,需要与 GitHub/GitLab 深度集成,并发布公开的 API 文档

    API 与集成能力

    BookStack 不仅是一个独立的文档系统,还提供了强大的扩展和集成能力,使其能够融入现有的技术栈和工作流程。

    🔌 REST API

    BookStack 内置完整的 REST API,支持对核心内容类型(书架、书籍、章节、页面)的 CRUD 操作。API 文档可在你的 BookStack 实例的 /api/docs 路径访问。

    主要功能包括:

    • 📚 书籍、章节、页面的创建、读取、更新、删除
    • 🔢 通过 priority 参数管理页面和章节的排序
    • 📦 v25.07 新增:ZIP 格式的导入/导出 API 端点
    • 🔑 基于 API Token 的认证机制

    使用 API 需要用户具有"访问系统 API"的角色权限。API 访问的内容权限受用户角色限制,确保安全性。

    🪝 Webhooks

    BookStack 支持 Webhooks,当系统内发生特定事件时(如页面更新、书籍创建等),可自动向指定端点发送 HTTP POST 请求。

    配置路径:设置 > Webhooks

    可选触发事件包括审计日志中记录的所有操作类型,支持:

    • 📨 全部事件触发
    • 🎯 特定事件触发

    实用场景示例:

    场景实现方式
    🔔 页面更新时发送 Slack 通知Webhook 直接支持 Slack 兼容格式
    📧 应用设置变更时邮件通知管理员配合邮件服务或 Zapier
    📝 记录页面变更到 Google 文档通过 n8n 或 Zapier 中间件
    🔄 新用户注册时自动更新指定页面结合 REST API 实现

    对于更复杂的集成需求,可使用 Zapier、n8n 等自动化平台作为中间件,将 BookStack 与其他服务连接起来。


    典型应用场景

    BookStack 的灵活性使其适用于多种组织类型和使用场景:

    🏢 企业内部知识库

    企业可以使用 BookStack 构建集中化的知识管理平台:

    • 新员工入职指南:将公司政策、工具配置、团队介绍等整合到一本"新员工手册"中,新人可按自己的节奏学习,HR 团队只需维护一份文档
    • 标准操作流程(SOP):运营团队可以在不学习 Markdown 的情况下创建 SOP,无需 IT 支持
    • 客户资料管理:为每个主要客户创建独立书籍,记录项目历史、联系偏好、历史问题等,账户交接时无需冗长的会议

    💻 技术团队文档

    开发团队可以使用 BookStack 管理:

    • 📘 项目技术文档
    • 🏗️ 系统架构设计
    • 🔧 开发环境配置指南
    • 🐛 故障排查手册

    📚 个人知识管理

    个人用户可以将 BookStack 作为:

    • 📝 学习笔记库
    • 📖 读书摘录集
    • 💡 创意灵感库
    • 📅 个人日志

    🎓 教育培训

    教育机构可以利用 BookStack:

    • 📖 创建在线课程资料
    • 📋 管理培训手册
    • 💬 支持学员讨论(通过评论功能)

    适用组织类型:中小企业、初创公司、自由职业者、非营利组织、政府机构、企业团队


    如何安装和使用 BookStack

    其实,安装和使用 BookStack 非常简单,一种方法是自行安装,但比较繁琐,这里推荐的方法是使用 Umbrel 或 Runtipi 等 Homelab 工具,在应用商店里一键安装。

    方法一:使用 Homelab 平台一键安装(推荐)

    对于大多数个人用户和家庭实验室爱好者,使用 Homelab 管理平台是最简单的安装方式。

    📦 支持 BookStack 的 Homelab 平台

    平台说明BookStack 支持
    Runtipi轻量级自托管应用管理器,无需刷写系统,可在现有 OS 上运行✅ 官方应用商店收录
    Umbrel美观的家庭服务器操作系统,支持树莓派和 x86 系统⚠️ 需通过第三方应用商店或手动 Docker 部署
    CasaOSUmbrel 的开源替代品,界面友好✅ 应用商店收录
    TrueNAS企业级 NAS 操作系统✅ 应用市场收录

    安装步骤(以 Runtipi 为例):

    1️⃣ 安装 Runtipi:在你的 Linux 服务器(包括树莓派)上安装 Runtipi

    2️⃣ 访问应用商店:打开 Runtipi 的 Web 管理界面,进入 App Store 标签页

    3️⃣ 安装 BookStack:搜索并点击 BookStack,选择反向代理设置后点击安装

    4️⃣ 访问 BookStack:安装完成后点击 Open 按钮,即可在浏览器中访问

    方法二:Docker 部署

    对于有一定技术基础的用户,Docker 部署提供了更大的灵活性。

    🐳 推荐镜像

    LinuxServer.io 维护的 Docker 镜像是社区最广泛使用的版本:

    docker pull lscr.io/linuxserver/bookstack:latest

    ⚙️ 关键配置项

    环境变量说明示例值
    APP_URL应用访问地址http://192.168.1.100:6875https://bookstack.yourdomain.com
    APP_KEY会话加密密钥使用命令生成(见下方)
    DB_HOST数据库主机地址mariadb
    DB_DATABASE数据库名称bookstack
    DB_USERNAME数据库用户名bookstack
    DB_PASSWORD数据库密码自定义强密码

    生成 APP_KEY:

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

    ⚠️ 数据库依赖

    BookStack 需要 MariaDB 数据库支持。如果你没有现成的数据库实例,可以使用 LinuxServer.io 提供的 MariaDB 镜像一并部署。

    🔑 默认登录凭据

    • 用户名admin@admin.com
    • 密码password
    • 默认端口6875

    ⚠️ 重要安全提示:首次登录后请立即修改默认密码!

    方法三:手动安装

    如果你需要完全控制安装过程,可以参考 BookStack 官方文档进行手动安装。需要准备:

    • PHP 8.1+(含必要扩展)
    • MySQL 5.7+ 或 MariaDB 10.2+
    • Nginx 或 Apache Web 服务器
    • Composer(PHP 依赖管理器)

    详细安装指南请访问:https://www.bookstackapp.com/docs/admin/installation/


    首次配置指南

    成功安装 BookStack 后,建议按以下步骤进行初始配置:

    1️⃣ 修改管理员密码

    访问 设置 > 我的账户,立即更改默认密码

    2️⃣ 配置应用设置

    访问 设置 > 应用设置

    • 📛 设置应用名称
    • 🖼️ 上传 Logo
    • 🎨 选择默认主题(明/暗)
    • 🔒 配置注册设置(开放/关闭/仅邀请)

    3️⃣ 创建角色和用户

    访问 设置 > 角色

    • 根据团队结构创建不同角色(如:管理员、编辑、访客)
    • 为每个角色分配适当的权限

    4️⃣ 开始创建内容

    点击"创建书架"或"创建书籍"开始构建你的知识库:

    📚 书架:技术文档
       └── 📖 书籍:后端开发指南
           ├── 📑 章节:环境搭建
           │   ├── 📄 页面:本地开发环境配置
           │   └── 📄 页面:测试环境说明
           └── 📑 章节:编码规范
               ├── 📄 页面:命名约定
               └── 📄 页面:代码审查流程

    进阶技巧

    以下是一些帮助你更高效使用 BookStack 的进阶技巧:

    ⌨️ 快捷键

    快捷键功能
    Ctrl + S保存页面
    Ctrl + Enter保存并关闭编辑器
    /快速搜索

    🔗 页面链接

    在页面中可以使用以下语法创建内部链接:

    [链接文字](/books/书籍slug/page/页面slug)

    📊 嵌入内容

    BookStack 支持嵌入多种外部内容:

    • YouTube 视频
    • Diagrams.net 图表
    • 代码片段(支持语法高亮)

    🔄 自动排序

    v25.02 版本引入了自动排序功能,可按名称或创建日期自动整理页面和章节的顺序,大幅减少手动排序的工作量。


    资源与社区

    如果你在使用 BookStack 过程中遇到问题,可以通过以下渠道获取帮助:

    资源链接
    📖 官方文档https://www.bookstackapp.com/docs/
    💻 GitHub 仓库https://github.com/BookStackApp/BookStack
    🎨 演示站点https://demo.bookstackapp.com/
    🛠️ 官方 Hackshttps://www.bookstackapp.com/hacks/
    📰 版本发布日志https://www.bookstackapp.com/tags/releases/

    小结

    BookStack 是一款优秀的开源知识管理系统,它以"书籍"为隐喻的直观设计、强大的权限管理、丰富的扩展能力,使其成为个人和团队构建知识库的理想选择。无论你是想要掌控自己数据的隐私保护主义者,还是寻求低成本文档解决方案的中小企业,亦或是热衷于自托管的 Homelab 爱好者,BookStack 都值得一试。

    通过 Runtipi、Umbrel 等现代化的 Homelab 工具,即使没有深厚的技术背景,你也可以在几分钟内部署属于自己的知识管理系统,开始构建你的数字图书馆。

    Brave 回复 12 months ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在