
Wiki.js 是一款基于 Node.js、Git 和 Markdown 的免费开源维基软件。它采用 AGPL-v3 许可证发布,专为性能优化和系统资源节约而设计。Wiki.js 是一款强大的维基软件,可安装在系统中的任何位置。您可以在操作系统上安装它,或使用 Heroku 等云服务,还可将 Wiki.js 部署到容器环境中,如 Docker 和 Kubernetes。
Wiki.js 与 PostgreSQL 数据库兼容,并提供 50 多种集成,用于额外的身份验证、日志系统、搜索引擎、渲染和存储。它是一款基于美丽且直观的界面构建的强大维基软件,适用于管理仪表盘和页面。它是一款完全可定制的维基软件,用于记录您的技术栈。
本文将向您展示如何在 Debian 12 系统上安装 Wiki.js。我们将引导您完成 Wiki.js 的安装过程,使用 PostgreSQL 数据库服务器、Nginx 作为反向代理,并使用 Let's Encrypt 的 SSL/TLS 证书对 Wiki.js 实例进行加密。
在继续之前,请确保您拥有:
在第一阶段,您将安装 Wiki.js 所需的一些依赖项,包括:
开始前,请先使用以下命令更新并刷新 Debian 软件仓库:
sudo apt update
现在通过以下 apt install 命令安装 Wiki.js 的依赖包。以下命令将安装 PostgreSQL 数据库服务器、Node.js 和 NPM、Nginx 网页服务器、Certbot 以及 Certbot Nginx 插件:
sudo apt install postgresql postgresql-common nodejs npm nginx certbot python3-certbot-nginx
输入 y 确认并继续安装。

安装依赖项后,使用以下命令验证每个依赖项。
使用 systemctl 命令验证 PostgreSQL 服务状态。
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
将显示类似以下输出。

使用以下命令验证 Nginx 服务状态,确保其正在运行且已启用。
sudo systemctl is-enabled nginx
sudo systemctl status nginx
如果 Nginx 正在运行且已启用,终端将显示以下输出。

最后,通过执行以下命令验证 Node.js 和 NPM。输出将显示系统中当前安装的 Node.js 和 NPM 版本。
node --version
npm --version

安装依赖项后,下一步是为 Wiki.js 安装创建新的数据库和用户。为此,您必须通过 psql 客户端登录到 PostgreSQL。
通过执行以下命令登录到 PostgreSQL 服务器。
sudo -u postgres psql
登录后,运行以下查询以创建新的 PostgreSQL 数据库和用户 wikijs。请确保在以下查询中更改密码。
CREATE USER wikijs WITH PASSWORD 'p4ssw0rd';
CREATE DATABASE wikijs OWNER wikijs;

数据库和用户创建后,使用以下查询验证其存在,以列出 PostgreSQL 实例中可用的数据库和用户。
\du
\l
您应能看到在 PostgreSQL 中创建的 wikijs 数据库和用户。

输入 quit 退出 PostgreSQL 服务器。
在接下来的部分中,您将把 Wiki.js 源代码下载到您的服务器,并设置安装目录的适当权限和所有权。
通过执行以下命令创建新用户 wikijs。
sudo useradd -m -s /bin/false wikijs
现在创建新目录 /opt/wikijs 并进入该目录。然后,通过以下 wget 命令下载 Wiki.js 源代码。
mkdir -p /opt/wikijs; cd /opt/wikijs
wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
下载完成后,解压 Wiki.js 源代码并将其所属权设置为用户 wikijs。
tar -xf wiki-js.tar.gz
sudo chown -R wikijs:wikijs /opt/wikijs
下载完成后,您需要配置 Wiki.js 安装与 PostgreSQL 数据库及用户,并设置 Wiki.js 的绑定 IP 地址。
将默认的WIki.js配置文件config.sample.yml复制为config.yml,然后使用以下nano编辑器打开它。
sudo -u wikijs cp config.sample.yml config.yml
sudo -u wikijs nano config.yml
将默认的数据库配置修改为您的PostgreSQL数据库、用户和密码。
# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
host: localhost
port: 5432
user: wikijs
pass: p4ssw0rd
db: wikijs
ssl: false
将默认的 bindIP 选项修改为 localhost 或 127.0.0.1。这将使 Wiki.js 在本地主机上运行。
bindIP: 127.0.0.1
完成后保存并退出。
接下来,运行以下命令以启动并测试您的 Wiki.js 安装。
sudo -u wikijs node server
您应看到确认信息,表明 Wiki.js 已在本地主机默认端口 3000 上运行。

最后,按 Ctrl+c 终止 Wiki.js 进程。
现在您已完成 Wiki.js 的配置,下一步将设置 Wiki.js 以系统服务形式在后台运行。通过以下方法,您可以使用 systemctl 工具轻松管理 Wiki.js。
使用 nano 编辑器命令创建 Wiki.js 的系统服务文件 /etc/systemd/system/wikijs.service。
sudo nano /etc/systemd/system/wikijs.service
插入以下配置,使 Wiki.js 能够作为服务在后台运行。
[Unit]
Description=Wiki.js
After=network.target postgresql.service
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=wikijs
Environment=NODE_ENV=production
WorkingDirectory=/opt/wikijs
[Install]
WantedBy=multi-user.target
完成后保存文件并退出编辑器。
接下来,运行以下 systemctl 命令以重新加载 systemd 管理器并应用 Wiki.js 的新服务文件。
sudo systemctl daemon-reload
现在可以使用以下命令启动并启用wiki.js服务。这将在本地主机上以默认端口3000在后台启动Wiki.js,并使其在系统启动时自动运行。
sudo systemctl start wikijs
sudo systemctl enable wikijs

使用以下命令验证wikijs服务,确保服务正在运行。
sudo systemctl status wikijs
应显示以下输出。

最后,运行以下 ss 命令以验证 Wiki.js 应用程序使用的 3000 端口。
ss -tulpn | grep 3000
如果 Wiki.js 正在运行,您应看到 Node.js 应用程序使用 3000 端口。

现在 Wiki.js 已在本地主机上使用默认端口 3000 运行。在下一步中,您将创建一个新的 Nginx 服务器块配置,该配置将用作 Wiki.js 的反向代理。开始之前,请确保您的服务器 IP 地址已指向一个域名。
使用以下 nano 编辑器命令创建新的 Nginx 服务器块配置 /etc/nginx/sites-available/wikijs。
sudo nano /etc/nginx/sites-available/wikijs
插入以下配置,并确保将 Wiki.js 安装的域名替换为您的实际域名。
server {
listen 80;
server_name wiki.howtoforge.local;
root /opt/wikijs;
access_log /var/log/nginx/wikijs.access.log;
error_log /var/log/nginx/wikijs.error.log;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:3000;
}
}保存文件并退出编辑器。
接下来,运行以下命令以启用 Wiki.js 服务器块配置并验证 Nginx 语法。
sudo ln -s /etc/nginx/sites-available/wikijs /etc/nginx/sites-enabled
sudo nginx -t
如果 Nginx 语法正确,您应看到输出“测试成功 - 语法正确”。

现在使用以下命令重启 Nginx 服务以应用您配置的新服务器块。
sudo systemctl restart nginx
Nginx 重启后,打开您首选的网页浏览器并访问 Wiki.js 安装的域名,例如 http://wiki.howtoforge.local/。如果一切正常,您应看到类似下图的 Wiki.js 安装页面:

在接下来的步骤中,您将使用 Letsencrypt 提供的 SSL/TLS 证书保护您的 Wiki.js 安装。同时,您将通过 Certbot Nginx 插件设置自动将 HTTP 转为 HTTPS。
执行以下 certbot 命令以从 Letsencrypt 生成新的 SSL/TLS 证书。请确保将域名和电子邮件地址的详细信息替换为您自己的信息。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email alice@howtoforge.local -d wiki.howtoforge.local
完成后,您的 SSL 证书将存储在 /etc/letsencrypt/live/wiki.howtoforge.local/ 目录中。至于 Wiki.js 服务器块配置,它将通过 Certbot Nginx 插件自动配置为 HTTPS。
返回您的网页浏览器,访问您的 Wiki.js 域名,例如 http://wiki.howtoforge.local/。您应自动重定向到安全的 HTTPS 连接。
现在创建 Wiki.js 的管理员用户,并输入您的电子邮件地址和密码。然后,点击“安装”以确认安装。

安装完成后,您将被重定向到 Wiki.js 登录页面。输入您的管理员电子邮件地址和密码,然后点击“登录”。

如果安装成功,您将看到 Wiki.js 的欢迎页面。从这里,您可以创建新的主页或访问 Wiki.js 管理仪表盘。

如果您点击“管理”,您应该看到类似于下图的 Wiki.js 管理页面:

在“系统”部分,点击“系统信息”菜单以获取有关您的 Wiki.js 安装的详细信息。您应该看到 Wiki.js 2.5 已与 Node.js 18.x 和 PostgreSQL 15.x 一起安装。

就这样!您已完成所有步骤,在 Debian 12 系统上成功安装了 Wiki.js,并配备了 PostgreSQL 数据库服务器、Nginx 反向代理,以及通过 Let's Encrypt 证书实现的 SSL/TLS 加密。现在您可以开始使用 Wiki.js 构建公司文档了。