Wiki.js 简介
Wiki.js 是一个现代、高性能的开源 Wiki 软件,基于 Node.js 构建,支持 Markdown、WYSIWYG 编辑,并提供实时协作功能。通过 Docker Compose 部署可以简化安装和管理过程,使其更易于在各种环境中运行。
先决条件
- Linux 服务器: 建议使用 Debian, Ubuntu, RHEL 等 Linux 发行版。
- Root 或 sudo 访问权限: 需要对服务器进行配置。
- Docker 和 Docker Compose: 确保已在服务器上安装。
-
安装 Docker Compose: 通常可以通过包管理器安装,例如在 Ubuntu 上:
sudo apt update sudo apt install docker-compose
如果您的系统不直接提供
docker-compose
,您可能需要根据 Docker 官方文档安装(通常是sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
或下载二进制文件)。
-
- 基本 Linux 命令知识: 熟悉命令行操作。
- 域名 (可选但推荐): 用于通过 HTTPS 访问 Wiki.js,并配合 Nginx 等反向代理使用。
详细部署步骤
步骤 1: 创建项目目录
首先,为 Wiki.js 创建一个专门的目录,并进入该目录。
mkdir ~/wikijs
cd ~/wikijs
步骤 2: 创建 docker-compose.yml
文件
在该目录中创建 docker-compose.yml
文件,并使用文本编辑器(如 nano
或 vim
)打开它。
nano docker-compose.yml
将以下内容粘贴到 docker-compose.yml
文件中。此示例使用 PostgreSQL 作为数据库:
version: '3'
services:
db:
image: postgres:13-alpine # 推荐使用 PostgreSQL 13 或更高版本 [6]
environment:
POSTGRES_DB: wiki
POSTGRES_USER: wikijs
POSTGRES_PASSWORD: your_secure_db_password # 请替换为您自己的安全密码 [1]
volumes:
- db-data:/var/lib/postgresql/data
restart: unless-stopped
wiki:
image: ghcr.io/requarks/wiki:3 # 推荐使用官方镜像 [6]
depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: your_secure_db_password # 与上面数据库的密码一致
DB_NAME: wiki
ADMIN_EMAIL: your_admin_email@example.com # 替换为您的管理员邮箱 [6]
ADMIN_PASS: your_admin_password # 替换为您自己的安全密码 [6]
ports:
- "80:3000" # 将宿主机的 80 端口映射到容器的 3000 端口 [1]
volumes:
- wiki-data:/data # 挂载数据卷,用于持久化 Wiki.js 的配置和内容 [6]
restart: unless-stopped
volumes:
db-data:
wiki-data:
配置说明:
db
服务:image
: 使用 PostgreSQL 镜像。推荐使用13-alpine
或更高版本。environment
: 设置数据库名、用户名和密码。请务必将your_secure_db_password
替换为一个强密码。volumes
:db-data:/var/lib/postgresql/data
用于持久化 PostgreSQL 的数据,防止数据丢失。
wiki
服务:image
: 使用 Wiki.js 的官方 Docker 镜像ghcr.io/requarks/wiki:3
。您也可以指定特定版本,但建议使用最新的稳定主版本(例如:3
)。避免使用:latest
标签,以防未来版本更新导致兼容性问题。depends_on
: 确保数据库服务 (db
) 在 Wiki.js 服务启动之前启动。environment
:DB_TYPE
,DB_HOST
,DB_PORT
,DB_USER
,DB_PASS
,DB_NAME
: 配置 Wiki.js 连接到 PostgreSQL 数据库。DB_HOST
设置为db
是因为在 Docker Compose 中,服务名可以直接用作主机名。 务必确保DB_PASS
与数据库服务中设置的密码一致。ADMIN_EMAIL
,ADMIN_PASS
: 这些是用于创建 Wiki.js 的初始管理员账户。请务必替换为您自己的邮箱和强密码。
ports
:"80:3000"
表示将您服务器的 80 端口映射到 Wiki.js 容器内的 3000 端口。这意味着您可以通过访问服务器的 IP 地址或域名(在 80 端口)来访问 Wiki.js。您也可以根据需要修改宿主机端口(例如"8080:3000"
)。volumes
:wiki-data:/data
用于持久化 Wiki.js 的数据,包括配置文件、上传的文件等。restart: unless-stopped
: 确保在 Docker 服务重启时,这些容器也会自动启动。
步骤 3: 启动 Wiki.js 容器
在 ~/wikijs
目录下,运行以下命令来启动 Wiki.js 和 PostgreSQL 服务:
docker compose up -d
up
命令会创建并启动服务。-d
(detached) 参数表示在后台运行容器。
您可以检查容器是否正在运行:
docker compose ps
步骤 4: 访问 Wiki.js
启动完成后,打开您的 Web 浏览器,访问您的服务器 IP 地址或配置的域名。如果使用默认的端口映射 (80:3000
),您应该访问:
http://your_server_ip_address
或者
http://your_domain.com
您将看到 Wiki.js 的设置向导。按照屏幕上的提示完成初始配置,包括设置管理员账户(如果您在 docker-compose.yml
中没有预设 ADMIN_EMAIL
和 ADMIN_PASS
,或者想在第一次运行时更改)。
进阶配置 (可选)
- Nginx 反向代理和 SSL: 为了安全地访问 Wiki.js(特别是通过 HTTPS),强烈建议配置 Nginx 作为反向代理,并启用 SSL/TLS。这允许 Wiki.js 在后台监听一个非特权端口,而 Nginx 则处理 SSL 证书和域名解析。
- 更改数据库: Wiki.js 3.0 及更高版本推荐使用 PostgreSQL。虽然其他数据库可能已被支持,但 PostgreSQL 是官方的首选。
- 调整资源限制: 根据您的服务器资源和预期负载,您可能需要在
docker-compose.yml
中为服务设置 CPU 和内存限制。 - 备份: 定期备份
db-data
和wiki-data
卷中的数据至关重要。
通过以上步骤,您应该能够成功地使用 Docker Compose 部署一个运行中的 Wiki.js 实例。