在Ubuntu上安装Wiki.js完整指南

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界面

  1. 打开浏览器
  2. 访问 http://您的服务器IP地址
  3. 首次访问会看到安装向导页面

Wiki.js安装页面

7.2 完成安装配置

  1. 点击 INSTALL 按钮开始安装
  2. 等待安装过程完成

安装进行中

  1. 安装完成后,使用注册的管理员账号登录

登录界面

步骤八:基础配置

8.1 进入管理界面

登录后进入管理员控制面板:

管理员界面

8.2 配置中文语言

  1. 切换到 Locale 页面
  2. 安装 Chinese Simplified(简体中文)语言包

语言配置

  1. 将界面语言切换为中文

切换中文

8.3 创建首页

  1. 点击 创建首页 开始创建第一篇文章

创建首页

  1. 选择 Markdown 编辑器

选择编辑器

  1. 配置页面信息(首页路径必须为 home

页面配置

  1. 编辑内容并点击 创建

编辑内容

  1. 首页创建成功

创建成功

步骤九:系统优化与管理

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的各项功能。

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笃行其道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值