首页
/ 使用Docker Compose部署Wiki.js知识库系统

使用Docker Compose部署Wiki.js知识库系统

2025-07-05 05:14:20作者:鲍丁臣Ursa

前言

Wiki.js是一款现代化的开源知识库系统,基于Node.js开发,支持Markdown编辑和丰富的扩展功能。本文将详细介绍如何使用Docker Compose快速部署Wiki.js系统,包含PostgreSQL数据库的完整配置方案。

系统架构概述

该部署方案采用Docker容器化技术,包含两个核心服务:

  1. 数据库服务:使用PostgreSQL 15作为Wiki.js的后端存储
  2. 应用服务: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数据
  • 确保数据库内容在容器重启后不会丢失

部署步骤指南

  1. 确保已安装Docker和Docker Compose
  2. 创建docker-compose.yml文件并填入上述配置
  3. 在文件所在目录执行命令:docker-compose up -d
  4. 等待容器启动完成
  5. 访问http://服务器IP进行初始设置

安全建议

  1. 修改默认凭证:部署后应立即修改数据库密码和应用管理员密码
  2. 启用HTTPS:建议配置SSL证书替代默认HTTP访问
  3. 定期备份:可扩展配置定期备份db-data卷中的数据
  4. 网络隔离:生产环境建议将数据库服务置于内部网络

性能调优

  1. 可根据服务器资源调整PostgreSQL的内存参数
  2. Wiki.js支持配置缓存,可显著提升访问速度
  3. 高并发场景可考虑增加Wiki.js实例数量

常见问题解决

  1. 端口冲突:如主机80/443端口被占用,可修改映射端口
  2. 启动失败:检查数据库连接参数是否匹配
  3. 性能问题:可增加数据库资源分配或优化查询

总结

通过Docker Compose部署Wiki.js系统,开发者可以快速搭建功能完善的知识管理平台。这种容器化方案具有部署简单、维护方便、易于扩展等优势,适合从开发测试到生产环境的各种场景。配置中的每个参数都经过精心设计,在保证功能完整性的同时兼顾了性能和安全性。