简介
什么是 PandaWiki ?
PandaWiki 是一款 AI 大模型驱动的开源知识库搭建系统,帮助你快速构建智能化的 产品文档、技术文档、FAQ、博客系统,借助大模型的力量为你提供 AI 创作、AI 问答、AI 搜索 等能力。
主要特点
- AI驱动: 内置 AI 创作、问答和搜索功能,可接入多种 AI 大模型。
- 多功能: 支持构建产品文档、技术文档、
FAQ 和博客等多种形式的知识库。
- 易于使用: 提供富文本编辑器,支持第三方集成和内容导入。
- 开源: 采用
AGPL-3.0 开源协议,可免费使用和二次开发。
- 智能化: 提供智能问答、智能搜索和智能客服等能力。
应用场景
- 产品文档: 快速构建智能化的产品文档,提升用户体验。
- 技术文档: 方便地管理和查询技术文档,提高开发效率。
- FAQ: 建立智能
FAQ 系统,自动回答常见问题。
- 个人知识库: 构建个人的知识体系,方便知识的积累和回顾。

PandaWiki 是一个灵活且功能强大的知识管理工具,适合各种用户需求,特别是在文档管理和知识共享方面提供了优越的体验。
安装
在群晖上以 Docker 方式安装。
但老苏没有使用官方的一键脚本,而是采用了 docker-compose 方式安装
建目录
通过 SSH 客户端登录到你的群晖,执行下面的命令,创建所需的目录
1 2 3 4 5
| mkdir -p /volume1/docker/pandawiki/data/{caddy/{caddy_config,caddy_data,run},conf/api,minio,nats,nginx/ssl,postgres,qdrant,raglite}
cd /volume1/docker/pandawiki
|
env.txt
env.txt 是配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| TIMEZONE=Asia/Shanghai
SUBNET_PREFIX=169.254.15
POSTGRES_PASSWORD={{PASSWORD}} NATS_PASSWORD={{PASSWORD}} JWT_SECRET={{PASSWORD}} S3_SECRET_KEY={{PASSWORD}} QDRANT_API_KEY={{PASSWORD}} REDIS_PASSWORD={{PASSWORD}}
ADMIN_PASSWORD={{PASSWORD}}
ADMIN_PORT=2443
|
- 配置中的
{{PASSWORD}} 部分都是相关内部服务的密码,请生成随机密码来替换掉它们。注意:密码长度需要大于 8 位,且不要包含除了数字字母以外的特殊字符。
ADMIN_PASSWORD 字段是 pandawiki 管理面板的密码,请务必牢记。
ADMIN_PORT 字段是后台访问的端口,不冲突就行
下面是一个老苏设置的示例,如果你保留了中文注释,记得保存要使用 UTF-8 格式
1 2 3 4 5 6 7 8 9 10 11 12 13
| TIMEZONE=Asia/Shanghai SUBNET_PREFIX=169.254.15
POSTGRES_PASSWORD=5JAgNyx9h9xu NATS_PASSWORD=sE5YZjAT7Mtv JWT_SECRET=vyHPZJsfMZEazzGj2Auc7wwPuajSjCSa S3_SECRET_KEY=BRup9kYUp8gMAZ8JtzGzM9VKwuZbsUc8 QDRANT_API_KEY=AD23RJ7iCvsYapidU3dx2SiT3iWtDhuU REDIS_PASSWORD=kB4vVExRdM3W
ADMIN_PASSWORD=laosu123
ADMIN_PORT=8816
|
docker-compose.yml
可以在当前目录中直接下载官方的文件
1 2
| wget "https://release.baizhi.cloud/panda-wiki/docker-compose.yml"
|

也可以将下面的内容保存为 docker-compose.yml 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
| services: caddy: container_name: panda-wiki-caddy restart: always image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/panda-wiki-caddy:2.10-alpine cap_add: - NET_ADMIN volumes: - ./data/caddy/caddy_config:/config - ./data/caddy/caddy_data:/data - ./data/caddy/run:/var/run/caddy environment: - CADDY_ADMIN=unix//var/run/caddy/caddy-admin.sock network_mode: host nginx: container_name: panda-wiki-nginx depends_on: - api restart: always image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/panda-wiki-nginx:v3.31.3 ports: - ${ADMIN_PORT}:8080 volumes: - ./data/nginx/ssl:/etc/nginx/ssl networks: panda-wiki: ipv4_address: "${SUBNET_PREFIX:-169.254.15}.111"
app: container_name: panda-wiki-app restart: always image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/panda-wiki-app:v3.31.3 networks: panda-wiki: ipv4_address: "${SUBNET_PREFIX:-169.254.15}.112"
api: container_name: panda-wiki-api depends_on: - postgres - nats - caddy - raglite restart: always image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/panda-wiki-api:v3.31.3 volumes: - ./data/caddy/run:/app/run - ./data/nginx/ssl:/app/etc/nginx/ssl - ./data/conf/api:/data environment: - NATS_PASSWORD=${NATS_PASSWORD} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - REDIS_PASSWORD=${REDIS_PASSWORD} - S3_SECRET_KEY=${S3_SECRET_KEY} - JWT_SECRET=${JWT_SECRET} - ADMIN_PASSWORD=${ADMIN_PASSWORD} - SUBNET_PREFIX=${SUBNET_PREFIX} networks: panda-wiki: ipv4_address: "${SUBNET_PREFIX:-169.254.15}.2"
consumer: container_name: panda-wiki-consumer depends_on: - nats - api restart: always image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/panda-wiki-consumer:v3.31.3 environment: - NATS_PASSWORD=${NATS_PASSWORD} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - REDIS_PASSWORD=${REDIS_PASSWORD} - S3_SECRET_KEY=${S3_SECRET_KEY} - JWT_SECRET=${JWT_SECRET} networks: panda-wiki: ipv4_address: "${SUBNET_PREFIX:-169.254.15}.3"
postgres: container_name: panda-wiki-postgres image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/panda-wiki-postgres:17.5 restart: always healthcheck: test: ["CMD", "pg_isready", "-U", "panda-wiki", "-d", "panda-wiki"] interval: 10s timeout: 5s retries: 5 start_period: 10s environment: - POSTGRES_USER=panda-wiki - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=panda-wiki volumes: - ./data/postgres:/var/lib/postgresql/data networks: panda-wiki: ipv4_address: "${SUBNET_PREFIX:-169.254.15}.10"
redis: image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/panda-wiki-redis:7.4.2-alpine container_name: panda-wiki-redis restart: always command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}", "--appendonly", "yes", "--appendfilename", "appendonly.aof", "--save", "900 1", "--save", "300 10", "--save", "60 10000"] volumes: - ./data/redis:/data networks: panda-wiki: ipv4_address: "${SUBNET_PREFIX:-169.254.15}.11"
minio: image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/panda-wiki-minio:RELEASE.2025-04-22T22-12-26Z-cpuv1 container_name: panda-wiki-minio restart: always command: ["minio", "server", "/data", "--console-address", ":9001"] volumes: - ./data/minio:/data environment: - MINIO_ACCESS_KEY=s3panda-wiki - MINIO_SECRET_KEY=${S3_SECRET_KEY} networks: panda-wiki: ipv4_address: "${SUBNET_PREFIX:-169.254.15}.12"
nats: image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/panda-wiki-nats:2.11.3-alpine container_name: panda-wiki-nats restart: always command: ["nats-server", "-c", "/etc/nats/nats.conf", "--user", "panda-wiki", "--pass", "${NATS_PASSWORD}"] volumes: - ./data/nats:/data networks: panda-wiki: ipv4_address: "${SUBNET_PREFIX:-169.254.15}.13"
qdrant: image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/panda-wiki-qdrant:v1.14.1 container_name: panda-wiki-qdrant restart: always volumes: - ./data/qdrant:/qdrant/storage environment: - QDRANT__SERVICE__API_KEY=${QDRANT_API_KEY} networks: panda-wiki: ipv4_address: "${SUBNET_PREFIX:-169.254.15}.14"
crawler: image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/anydoc:v0.6.11 container_name: panda-wiki-crawler restart: always init: true environment: - GLOG_GLOBAL_LEVEL=info - NAMESPACE=anydoc - MQ_NATS_URL=nats://panda-wiki-nats:4222 - MQ_NATS_USER=panda-wiki - MQ_NATS_PASSWORD=${NATS_PASSWORD} - OSS_MINIO_ACCESS_KEY=s3panda-wiki - OSS_MINIO_SECRET_KEY=${S3_SECRET_KEY} - OSS_MINIO_ENDPOINT=panda-wiki-minio:9000 networks: panda-wiki: ipv4_address: "${SUBNET_PREFIX:-169.254.15}.17"
raglite: image: chaitin-registry.cn-hangzhou.cr.aliyuncs.com/chaitin/panda-wiki-raglite:1-3-9 container_name: panda-wiki-raglite restart: always volumes: - ./data/raglite:/data environment: - GIN_MODE=release - DATABASE_HOST=panda-wiki-postgres - DATABASE_USER=panda-wiki - DATABASE_PASSWORD=${POSTGRES_PASSWORD} - MINIO_HOST=panda-wiki-minio:9000 - MINIO_USER=s3panda-wiki - MINIO_PASSWORD=${S3_SECRET_KEY} - QDRANT_HOST=panda-wiki-qdrant - QDRANT_API_KEY=${QDRANT_API_KEY} depends_on: - postgres - minio - qdrant networks: panda-wiki: ipv4_address: "${SUBNET_PREFIX:-169.254.15}.18"
networks: panda-wiki: ipam: driver: default config: - subnet: "${SUBNET_PREFIX:-169.254.15}.0/24"
|
当前目录结构如下

现在执行一键启动
1 2
| docker-compose --env-file env.txt up -d
|
如果没有什么意外,会启动 12 个容器

运行
在浏览器中输入 https://群晖IP:8816
注意: 是 https而不是 http 协议

打开 高级,继续前往

就能看到控制台登录界面了
用户名默认为 admin,而密码就是环境变量中 ADMIN_PASSWORD 的值

登录成功

接入 AI 模型
PandaWiki 是由 AI 大模型驱动的,在使用之前请先接入 AI 大模型,否则将无法正常使用

目前硅基流动(SiliconFlow),注册就送 2000 万 Tokens,虽然不是免费,但也够用一阵子的
注册地址:
https://cloud.siliconflow.cn/i/NkUiXVhQ

如果设置没问题,可以获取到模型列表

创建 Wiki 站点
找一个群晖上未被占用的端口,例如: 8817

跟随向导

可以创建或者导入文档

访问 Wiki
因为我们在上一步创建 Wiki 站点时监听的是 8817 端口,所以我们可以用 http://群晖IP:8817 访问
注意: 这次是 http而不是 https 协议

可以问 AI 或者搜索文档

速度还是很快的

参考文档
chaitin/PandaWiki: PandaWiki 是一款 AI 大模型驱动的开源知识库搭建系统,帮助你快速构建智能化的 产品文档、技术文档、FAQ、博客系统,借助大模型的力量为你提供 AI 创作、AI 问答、AI 搜索等能力。
地址:https://github.com/chaitin/PandaWiki
PandaWiki
地址:https://pandawiki.docs.baizhi.cloud/
PandaWiki - PandaWiki 介绍
地址:https://pandawiki.docs.baizhi.cloud/node/0197160c-782c-74ad-a4b7-857dae148f84