前言

为什么会有这篇教程

呐,大家好,我是暌违已久的星临,今天给大家带来的是Wiki.js最简部署教程!想写这个教程的初衷也很简单:市面上其他的部署教程都太烂了!简洁点的教程操作起来都是坑,复杂点的又让人望而却步。有的东拐西拐,让人不明所以。所以呐,今天这篇教程,简洁的简洁,复杂的复杂,该拓展的地方我都会单独说,让各位都能有所获!

这篇教程不太一样

前几天看一篇教程,那个博主的论调是:自动化脚本是给残疾人用的,要来就来全手动。这个观点咱还是见仁见智吧,在我看来,用合适的工具去做合适的事情,然后把效果最佳化,才是王道!这也解释了为什么我会在接下来的教程中,先让大家安装宝塔面板,也推荐大家使用独立的服务器(AWS RDS)~

准备

  • 服务器一台(最低VPS 1U 512m 吃配置的更多是数据库,我这里是AWS EC2 t2.mirco ubuntu系统)
  • (可选)数据库主机(我这里选的是AWS EC2 db.t2.mirco)

好吧我承认,我是为了把AWS嫖的更干净。

流程

一.(可选)安装宝塔面板

安装宝塔面板的理由

安装宝塔面板,我这里写的是可选,大家可以按照自己的需要进行斟酌。我之所以选择安装宝塔面板,一是可以更简单的配置Nginx,二是要用一下进程守护的功能。如果没有独立数据库的小伙伴,我更推荐你去安装一个面板,那样的话,配置数据库会更方便!(况且,一个面板真的对性能没啥影响)

宝塔面板的安装以及跳过账号登陆

想安装宝塔面板,大家可以去这个页面里获取相应的指令。我的系统是ubuntu20.0,所以用了下面这个:

1
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

咱再执行一下(我用的SSH工具是Xshell7 教育版):

1
2
3
4
5
6
7
8
9
curl -sSO http://download.bt.cn/install/install_panel.sh && bash install_panel.sh
//输出
外网面板地址: http://x.xx.xx.xxx:8888/xxxxxxxx
内网面板地址: http://xxx.xx.xx.xx:8888/xxxxxxxx
username: xxxxxxxx
password: xxxxxxxx
If you cannot access the panel,
release the following panel port [8888] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口

这里插一句,后来有的操作要root权限,新装的系统要执行下面的命令来设定root密码:

1
sudo passwd

然后系统会要求你隐式输入两次密码,隐式输入的话,输入的内容是不会显示的。
现在的宝塔面板,一定会要求用户先登陆宝塔账号,我理解,但是不接受,所以呐,咱们要想办法跳过去:

之前是可以通过删除整个蒙版的元素来跳过的,现在不行了,只能删除验证相关的文件来达到目的:

1
2
cd /www/server/panel/data //这个目录下有一个bind.pl,把这个文件重命名或者删除就行
mv bind.pl bind.pll //我这里是重命名了

然后是配置环境,我这里推荐大家只安装Nginx(要是有其他用途就按需安装,数据库以后再安装,没必要用MySql8.0或者MariaDB):

二.安装node.js

这个步骤因系统的不同会有些许差异,ubuntu用户可以按照我的来。这里注意一下,按照网上的方法安装的node.js,有一定的机率会安装到特别老的版本,不支持某些函数,这里我推荐大家安装最近的LTS版本。

1
2
3
4
5
su //获取root权限
apt update //更新apt
apt install npm //安装npm
npm install -g n //全局安装node.js版本管理工具 n
n lts //安装长期支持版的node.js

搞定!

三.安装并配置数据库

利用宝塔面板安装

我这里介绍的是利用宝塔面板可视化安装PostgreSQL数据库,没有选择安装面板的看官们,可以去菜鸟教程的这个页面看看,很简单哒~
打开服务器面板,点选左侧的软件商店,搜索PostgreSQL管理器,再点选右边的安装:

根据自己的需要选择版本,然后点选安装:

这里我就不继续操作了,安装玩之后,点选服务状态,启动服务。然后在数据库列表中添加数据库,有需要的可以更改端口,储存位置等。

(可选)配置到AWS RDS

AWS为新用户提供了12个月的免费数据库服务–RDS,我选用的是这个方案。

注意一下,RDS服务在某些地域是没有免费服务的,比如香港区,所以我在右上角的菜单中把业务切换到了首尔:

进入RDS,创建数据库:

这里我选择的是老板控制台,我感觉更方便。这里需要注意一下,只有部分数据库有免费套餐,我现在肯确定的是MySQL。
点选下一步,进入配置页面:


因为是免费套餐,所以数据库实例和大小都是固定的,大家需要配置数据库标识符,用户名,密码。注意一下,Wiki.js只支持8.0以上的MySQL。
点按下一步,进行高级设置:


这里主要是配置VPC,默认就行,除非你要和自己的数据库组网。如果组网,就可以将公共可用性选为否,否则的话,选是,这样的话,所有的服务器都可以访问你的数据库了。
还有数据库名称和端口,这个配置完后,就可以创建数据库,创建完之后,还要配置入站与出站规则,否则无法连接到数据库!这个不太复杂,去数据库实例的详情页面就可以操作,一般是设置成自己服务器的ip段。(当然,你也可以设置成所有流量。)
等待几分钟,数据库就配置好了。

四.下载配置运行Wiki.js

下载Wiki.js

这个嘛,去Wiki.js的GitHub的Release页,下载最新的通用包(发行版里非Windows那个)。然后下载到本地。

1
wget https://github.com/Requarks/wiki/releases/download/2.5.201/wiki-js.tar.gz

配置Wiki.js

将压缩包解压到你希望安装的目录:

1
2
mkdir wikijs //创建一个下级目录
tar -zxvf wiki-js.tar.gz -C ./wikijs //解包到下级目录

将解包目录下的config.sample.yml重命名为config.yml

1
mv config.sample.yml config.yml

使用vim打开config.yml,开始配置(这里主要配置数据库部分。 vim的使用教程,请参见菜鸟教程的这个页面):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#######################################################################
# Wiki.js - CONFIGURATION #
#######################################################################
# Full documentation + examples:
# https://docs.requarks.io/install

# ---------------------------------------------------------------------
# Port the server should listen to
# ---------------------------------------------------------------------

port: 3000 //在这里填入Wiki.js启动服务的端口

# ---------------------------------------------------------------------
# Database
# ---------------------------------------------------------------------
# Supported Database Engines:
# - postgres = PostgreSQL 9.5 or later
# - mysql = MySQL 8.0 or later (5.7.8 partially supported, refer to docs)
# - mariadb = MariaDB 10.2.7 or later
# - mssql = MS SQL Server 2012 or later
# - sqlite = SQLite 3.9 or later

db:
type: postgres //这里填入数据库类型,MySQL就填mysql

# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
host: localhost //填入数据库的地址,本地就填localhost
port: 5432 //同理,数据库开放的端口
user: wikijs //数据库的用户名
pass: wikijsrocks //数据库的密码
db: wiki //数据库的名字
ssl: false //默认就可以

运行Wiki.js

在安装目录下,运行以下命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
node server

//输出
2021-08-09T10:29:56.115Z [MASTER] info: =======================================
2021-08-09T10:29:56.119Z [MASTER] info: = Wiki.js 2.5.201 =====================
2021-08-09T10:29:56.119Z [MASTER] info: =======================================
2021-08-09T10:29:56.119Z [MASTER] info: Initializing...
2021-08-09T10:29:56.773Z [MASTER] info: Using database driver mysql2 for mysql [ OK ]
2021-08-09T10:29:56.777Z [MASTER] info: Connecting to database...
2021-08-09T10:29:56.867Z [MASTER] info: Database Connection Successful [ OK ]
2021-08-09T10:30:01.543Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2021-08-09T10:30:01.543Z [MASTER] info: Starting setup wizard...
2021-08-09T10:30:01.732Z [MASTER] info: Starting HTTP server on port 3000...
2021-08-09T10:30:01.733Z [MASTER] info: HTTP Server on port: [ 3000 ]
2021-08-09T10:30:01.737Z [MASTER] info: HTTP Server: [ RUNNING ]
2021-08-09T10:30:01.737Z [MASTER] info: 🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻
2021-08-09T10:30:01.737Z [MASTER] info:
2021-08-09T10:30:01.737Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!
2021-08-09T10:30:01.737Z [MASTER] info:
2021-08-09T10:30:01.738Z [MASTER] info: 🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺

现在,我们访问部署好的Wiki.js,再配置一下管理员账户和域名,就可以开始使用了。

现在,Wiki.js就已经在3000端口就跑起来了,该教程的正文就结束了。
以下为拓展部分。

五.(可选)为美好的Wiki.js献上祝福

进程守护

有的时候,程序跑着跑着就崩了,怎么办?我们可以用宝塔面板的Supervisor管理器来进行进程守护。
安装Supervisor管理器并打开:

名称随便起,运行目录就是安装目录,命令嘛,自然是 node server

Nginx反代

大家其实可以直接把Wiki.js运行在80端口的的,但是如果一个服务器上跑很多程序,就要我们设置反代了。
先添加一个网站,有证书的把证书配置上:


大家自行更换代理名称和端口就行。

结语

说是简洁介绍,但还是啰嗦了这么多。但是我感觉说这么多,该讲到的都讲了,也蛮值的。总体说来,Wiki.js现在在功能上还有缺憾,希望它能越来越好吧!