帮助中心
如何在Debian 12上安装Wiki.js



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 实例进行加密。


先决条件


在继续之前,请确保您拥有:

  • 一台 Debian 12 服务器。
  • 具有管理员权限的非 root 用户。
  • 一个指向服务器 IP 地址的域名。本示例将使用域名 wiki.howtoforge.local。


安装依赖项


在第一阶段,您将安装 Wiki.js 所需的一些依赖项,包括:

  • PostgreSQL 数据库服务器:这将作为 Wiki.js 的数据库使用。
  • Nginx 网页服务器:Nginx 网页服务器将作为 Wiki.js 的反向代理。
  • Node.js 和 NPM:JavaScript 运行时引擎 Node.js 及 NPM 包管理器。
  • Certbot 和 Nginx Certbot 插件:Certbot 用于通过 Let's Encrypt 生成 SSL/TLS 证书,而 Nginx Certbot 插件将自动为 Nginx 服务器块配置 HTTPS。

开始前,请先使用以下命令更新并刷新 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


创建 PostgreSQL 数据库和用户


安装依赖项后,下一步是为 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 源代码


在接下来的部分中,您将把 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


下载完成后,您需要配置 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 的配置,下一步将设置 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 端口。



配置 Nginx 作为反向代理


现在 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 安装页面:



使用 SSL/TLS 证书保护 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


返回您的网页浏览器,访问您的 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 构建公司文档了。

文章相关标签: Debian 12 Wiki.js
购物车