使用Docker Compose部署Wiki.js知识库系统
2025-07-05 05:14:20作者:鲍丁臣Ursa
前言
Wiki.js是一款现代化的开源知识库系统,基于Node.js开发,支持Markdown编辑和丰富的扩展功能。本文将详细介绍如何使用Docker Compose快速部署Wiki.js系统,包含PostgreSQL数据库的完整配置方案。
系统架构概述
该部署方案采用Docker容器化技术,包含两个核心服务:
- 数据库服务:使用PostgreSQL 15作为Wiki.js的后端存储
- 应用服务:Wiki.js主应用服务
这种分离式架构设计既保证了系统的可扩展性,又便于维护和升级。
详细配置解析
1. PostgreSQL数据库配置
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: wikijsrocks
POSTGRES_USER: wikijs
logging:
driver: "none"
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
关键配置说明:
- 使用轻量级的
postgres:15-alpine
镜像,减少资源占用 - 预设了数据库名称(
wiki
)、用户(wikijs
)和密码(wikijsrocks
) - 禁用日志记录以提升性能
- 配置了持久化存储卷,确保数据安全
unless-stopped
重启策略保证服务高可用
2. Wiki.js应用配置
wiki:
image: requarks/wiki:2
depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: wikijsrocks
DB_NAME: wiki
restart: unless-stopped
ports:
- "80:3000"
- "443:3443"
关键配置说明:
- 使用官方
requarks/wiki:2
镜像 - 显式声明依赖数据库服务,确保启动顺序
- 完整配置数据库连接参数,与数据库服务匹配
- 端口映射:
- 将容器内3000端口映射到主机80端口(HTTP)
- 将容器内3443端口映射到主机443端口(HTTPS)
- 同样配置
unless-stopped
重启策略
3. 数据持久化配置
volumes:
db-data:
- 声明命名卷
db-data
用于持久化PostgreSQL数据 - 确保数据库内容在容器重启后不会丢失
部署步骤指南
- 确保已安装Docker和Docker Compose
- 创建
docker-compose.yml
文件并填入上述配置 - 在文件所在目录执行命令:
docker-compose up -d
- 等待容器启动完成
- 访问
http://服务器IP
进行初始设置
安全建议
- 修改默认凭证:部署后应立即修改数据库密码和应用管理员密码
- 启用HTTPS:建议配置SSL证书替代默认HTTP访问
- 定期备份:可扩展配置定期备份
db-data
卷中的数据 - 网络隔离:生产环境建议将数据库服务置于内部网络
性能调优
- 可根据服务器资源调整PostgreSQL的内存参数
- Wiki.js支持配置缓存,可显著提升访问速度
- 高并发场景可考虑增加Wiki.js实例数量
常见问题解决
- 端口冲突:如主机80/443端口被占用,可修改映射端口
- 启动失败:检查数据库连接参数是否匹配
- 性能问题:可增加数据库资源分配或优化查询
总结
通过Docker Compose部署Wiki.js系统,开发者可以快速搭建功能完善的知识管理平台。这种容器化方案具有部署简单、维护方便、易于扩展等优势,适合从开发测试到生产环境的各种场景。配置中的每个参数都经过精心设计,在保证功能完整性的同时兼顾了性能和安全性。