Wiki.js是一个现代化、功能强大的开源Wiki平台,支持Markdown编辑、多语言界面、权限管理等丰富功能。本指南将详细介绍如何在Ubuntu系统上使用Docker快速部署Wiki.js。
文章目录
系统要求
在开始安装之前,请确保您的系统满足以下要求:
- 操作系统:Ubuntu 18.04 或更高版本
- 内存:至少 2GB RAM
- 存储空间:至少 10GB 可用磁盘空间
- 权限:root 或 sudo 权限
步骤一:系统更新
首先更新系统软件包,确保系统处于最新状态。
# 获取最新的软件包列表
sudo apt -qqy update
# 自动安装所有更新(无交互模式)
sudo DEBIAN_FRONTEND=noninteractive apt-get -qqy -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' dist-upgrade
参数说明:
-qqy
:静默模式,自动确认所有操作DEBIAN_FRONTEND=noninteractive
:避免安装过程中的交互提示--force-confdef
和--force-confold
:使用默认配置文件设置
步骤二:安装Docker环境
2.1 安装必要依赖包
sudo apt -qqy -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' install ca-certificates curl gnupg lsb-release
2.2 添加Docker官方GPG密钥
# 创建密钥存储目录
sudo mkdir -p /etc/apt/keyrings
# 下载并添加Docker GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
2.3 添加Docker软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2.4 安装Docker及相关组件
# 刷新软件包列表
sudo apt -qqy update
# 安装Docker和相关组件
sudo apt -qqy -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' install docker-ce docker-ce-cli containerd.io docker-compose-plugin
2.5 验证Docker安装
# 检查Docker版本
docker --version
# 检查Docker服务状态
sudo systemctl status docker
步骤三:配置Docker镜像加速
为了提高Docker镜像下载速度,建议配置国内镜像源:
# 创建Docker配置目录
sudo mkdir -p /etc/docker
# 配置镜像加速器
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run"
]
}
EOF
# 重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
# 验证配置是否生效
docker info | grep -A 10 "Registry Mirrors"
步骤四:准备Wiki.js运行环境
4.1 创建项目目录
# 创建Wiki.js配置目录
mkdir -p /etc/wiki
# 进入目录
cd /etc/wiki
4.2 生成数据库密码
# 生成32位随机密码并保存到文件
openssl rand -base64 32 > /etc/wiki/.db-secret
# 查看生成的密码(可选)
cat /etc/wiki/.db-secret
4.3 创建Docker网络和存储卷
# 创建内部网络(用于容器间通信)
docker network create wikinet
# 创建PostgreSQL数据存储卷
docker volume create pgdata
步骤五:创建并配置容器
5.1 创建PostgreSQL数据库容器
docker create \
--name=db \
-e POSTGRES_DB=wiki \
-e POSTGRES_USER=wiki \
-e POSTGRES_PASSWORD_FILE=/etc/wiki/.db-secret \
-v /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro \
-v pgdata:/var/lib/postgresql/data \
--restart=unless-stopped \
-h db \
--network=wikinet \
postgres:17
参数详解:
--name=db
:设置容器名称为db-e POSTGRES_DB=wiki
:创建名为wiki的数据库-e POSTGRES_USER=wiki
:设置数据库用户名为wiki-e POSTGRES_PASSWORD_FILE
:从文件读取数据库密码-v /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro
:只读方式挂载密码文件-v pgdata:/var/lib/postgresql/data
:持久化数据库数据--restart=unless-stopped
:设置自动重启策略--network=wikinet
:连接到内部网络
5.2 创建Wiki.js主应用容器
docker create \
--name=wiki \
-e DB_TYPE=postgres \
-e DB_HOST=db \
-e DB_PORT=5432 \
-e DB_PASS_FILE=/etc/wiki/.db-secret \
-v /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro \
-e DB_USER=wiki \
-e DB_NAME=wiki \
-e UPGRADE_COMPANION=1 \
--restart=unless-stopped \
-h wiki \
--network=wikinet \
-p 80:3000 \
-p 443:3443 \
ghcr.io/requarks/wiki:2
参数详解:
-e DB_TYPE=postgres
:指定数据库类型为PostgreSQL-e DB_HOST=db
:数据库主机地址(容器名)-e UPGRADE_COMPANION=1
:启用自动更新功能-p 80:3000
:将容器的3000端口映射到主机的80端口(HTTP)-p 443:3443
:将容器的3443端口映射到主机的443端口(HTTPS)
5.3 创建更新伴侣容器
docker create \
--name=wiki-update-companion \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--restart=unless-stopped \
-h wiki-update-companion \
--network=wikinet \
ghcr.io/requarks/wiki-update-companion:latest
步骤六:启动服务
6.1 按顺序启动容器
# 首先启动数据库容器
docker start db
# 等待数据库完全启动(约10-15秒)
sleep 15
# 启动Wiki.js主应用
docker start wiki
# 启动更新伴侣
docker start wiki-update-companion
6.2 验证容器运行状态
# 查看所有容器状态
docker ps -a
# 如遇问题,可查看容器日志
docker logs db
docker logs wiki
docker logs wiki-update-companion
步骤七:初始化Wiki.js
7.1 访问Web界面
- 打开浏览器
- 访问
http://您的服务器IP地址
- 首次访问会看到安装向导页面
7.2 完成安装配置
- 点击 INSTALL 按钮开始安装
- 等待安装过程完成
- 安装完成后,使用注册的管理员账号登录
步骤八:基础配置
8.1 进入管理界面
登录后进入管理员控制面板:
8.2 配置中文语言
- 切换到 Locale 页面
- 安装 Chinese Simplified(简体中文)语言包
- 将界面语言切换为中文
8.3 创建首页
- 点击 创建首页 开始创建第一篇文章
- 选择 Markdown 编辑器
- 配置页面信息(首页路径必须为
home
)
- 编辑内容并点击 创建
- 首页创建成功
步骤九:系统优化与管理
9.1 设置开机自启
# 确保Docker服务开机自启
sudo systemctl enable docker
9.2 创建管理脚本
为了方便日常管理,创建一个便捷的管理脚本:
# 创建管理脚本
sudo nano /usr/local/bin/wiki-manage
在脚本中添加以下内容:
#!/bin/bash
case "$1" in
start)
echo "正在启动Wiki.js服务..."
docker start db wiki wiki-update-companion
echo "Wiki.js服务启动完成"
;;
stop)
echo "正在停止Wiki.js服务..."
docker stop wiki-update-companion wiki db
echo "Wiki.js服务已停止"
;;
restart)
echo "正在重启Wiki.js服务..."
docker restart db wiki wiki-update-companion
echo "Wiki.js服务重启完成"
;;
status)
echo "Wiki.js服务状态:"
docker ps -a --filter name=db --filter name=wiki --filter name=wiki-update-companion
;;
logs)
if [ -z "$2" ]; then
echo "请指定要查看日志的容器名称: db, wiki, 或 wiki-update-companion"
else
docker logs $2
fi
;;
*)
echo "使用方法: $0 {start|stop|restart|status|logs <容器名>}"
echo " start - 启动所有服务"
echo " stop - 停止所有服务"
echo " restart - 重启所有服务"
echo " status - 查看服务状态"
echo " logs - 查看指定容器日志"
exit 1
;;
esac
设置执行权限:
sudo chmod +x /usr/local/bin/wiki-manage
9.3 使用管理脚本
# 启动所有服务
wiki-manage start
# 停止所有服务
wiki-manage stop
# 重启所有服务
wiki-manage restart
# 查看服务状态
wiki-manage status
# 查看特定容器日志
wiki-manage logs wiki
wiki-manage logs db
总结
通过本指南,您已经成功在Ubuntu系统上使用Docker部署了Wiki.js。这种部署方式具有以下优势:
- 容器化部署:环境隔离,易于管理和迁移
- 自动化配置:减少手动配置错误
- 高可用性:支持自动重启和更新
- 扩展性强:便于后续功能扩展和性能优化
Wiki.js作为一个功能丰富的现代化Wiki平台,为团队协作、知识管理和文档编写提供了强大的支持。希望本指南能帮助您快速上手并充分利用Wiki.js的各项功能。