轻量级自托管Wiki工具LeafWiki

简介

什么是 LeafWiki ?

LeafWiki 是一个开源的自托管 Wiki 工具,专为工程师和自托管用户设计。它采用单个 Go 二进制文件运行,无需外部数据库,所有数据以 Markdown 文件形式存储在磁盘上,配合 SQLite 实现搜索和元数据管理。

主要特点

  • 单二进制部署:整个应用只有一个 Go 二进制文件,无需安装 Node.jsRedisPostgreSQL 等外部依赖
  • Markdown 原生存储:页面内容以 Markdown 文件形式存储在磁盘上,可直接在应用外读取,备份只需 cp -r 命令- (先停止应用)
  • 轻量高效:基于 Go 语言开发,资源占用极低,可在 LinuxmacOSWindows 甚至树莓派上运行
  • 全文搜索:支持标题和内容的全文搜索,并可通过标签进行过滤
  • 树状导航:采用显式的层级结构,而非扁平的笔记流,更适合结构化文档
  • 灵活的访问控制:支持三种访问模式——完全内部、公开只读、完全开放
  • Markdown 编辑器:内置实时预览编辑器,支持快捷键、自动补全和 Mermaid 图表
  • 移动端友好:响应式 UI 设计,在手机和平板上也能良好使用
  • 开源免费:基于 MIT 协议开源,可免费使用和修改

应用场景

  • 个人知识库:适合个人笔记、技术文档、读书笔记等私人知识管理
  • 团队文档:适合小型团队的内部文档、运维手册、项目记录
  • Homelab 文档:适合家庭实验室的配置记录、网络拓扑、设备管理
  • 开发者笔记本:适合开发者记录代码片段、API 文档、技术方案
  • 开源项目文档:适合开源项目的官方文档、使用指南、贡献指南

LeafWiki 是一个专注于简洁和实用性的自托管 Wiki 工具,特别适合那些需要结构化文档但不想折腾复杂系统的用户。

如果你觉得 Wiki.jsOutline 太过复杂,只是需要一个简单实用的文档工具,那么 LeafWiki 可能正是你需要的。

安装

在群晖上以 Docker 方式安装。

提示:由于 LeafWikiDocker 镜像托管在 ghcr.io,群晖 Docker 套件无法直接搜索,需要通过命令行拉取镜像。

本文写作时, latest 版本对应为 v0.10.2

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 新建文件夹 leafwiki 和 子目录
mkdir -p /volume1/docker/leafwiki/data

# 进入 leafwiki 目录
cd /volume1/docker/leafwiki

# 一键启动
docker run -d \
--name=leafwiki \
--restart=unless-stopped \
-p 8723:8080 \
-v /volume1/docker/leafwiki/data:/app/data \
-e LEAFWIKI_JWT_SECRET=yourSecret \
-e LEAFWIKI_ADMIN_PASSWORD=yourPassword \
-e LEAFWIKI_ALLOW_INSECURE=true \
ghcr.io/perber/leafwiki:latest

提示--allow-insecure=true 参数在使用 HTTP 时必须添加,如果通过 HTTPS 反向代理访问则需要省略该参数,并确保反向代理转发了 X-Forwarded-Proto: https 头。

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3.8'

services:
leafwiki:
image: ghcr.io/perber/leafwiki:latest
container_name: leafwiki
restart: unless-stopped
user: 1000:1000
ports:
- "8723:8080"
environment:
- LEAFWIKI_JWT_SECRET=yourSecret # JWT 密钥,用于签名会话
- LEAFWIKI_ADMIN_PASSWORD=yourPassword # 管理员初始密码
- LEAFWIKI_ALLOW_INSECURE=true # HTTP 访问时必须,HTTPS 时省略
volumes:
- ./data:/app/data # 数据存储目录

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 leafwiki 和 子目录
mkdir -p /volume1/docker/leafwiki/data

# 进入 leafwiki 目录
cd /volume1/docker/leafwiki

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中访问 http://<群晖IP>:8723 即可进入 Web 界面。

使用管理员账号(admin)登录(密码为启动时设置的 LEAFWIKI_ADMIN_PASSWORD

在设置中创建其他用户账号

开始创建文档页面

可以直接预览

默认访问模式

  • 所有访问都需要登录认证
  • 管理员可以创建用户和设置权限
  • 支持管理员、编辑者、查看者三种角色

支持的访问模式

模式 说明 CLI 参数 环境变量
内部 Wiki 所有访问需要登录(默认)
公开只读 任何人可浏览,编辑需登录 --public-access=true LEAFWIKI_PUBLIC_ACCESS=true
完全开放 无需登录,所有人可读写 --disable-auth LEAFWIKI_DISABLE_AUTH=true

注意--disable-auth 模式会完全移除认证,仅适用于可信的内网环境,切勿暴露到公网。

注意事项

  1. 数据持久化:确保将 /app/data 目录挂载到宿主机,容器删除后数据不会丢失
  2. 端口冲突:默认端口为 8080,如已被占用,请修改端口映射
  3. 安全配置
    • 必须设置强密码的 LEAFWIKI_JWT_SECRET
    • 生产环境建议使用 HTTPS 反向代理
    • 不要使用 --disable-auth 模式暴露到公网
  4. 备份建议:由于数据以 Markdown 文件存储,备份只需复制数据目录即可
  5. 权限问题:如果使用非 root 用户运行,确保数据目录可写
  6. 中文支持LeafWiki 完整支持中文,包括搜索和编辑

参考文档

LeafWiki - Self-hosted wiki. Single Go binary, SQLite, Markdown on disk.
地址:https://github.com/perber/leafwiki

LeafWiki 官方网站
地址:https://leafwiki.com

LeafWiki 在线演示
地址:https://demo.leafwiki.com

LeafWiki Docker 镜像
地址:https://ghcr.io/perber/leafwiki