如何在Ubuntu 18.04上安装Wiki.js

Wiki.js是基于Node.jsGitMarkdown构建的免费,开放源代码的现代Wiki应用程序。Wiki.js源代码公开托管在Github上。本指南将向您展示如何使用Node.js,MongoDB,PM2,Nginx,Git和Acme.sh在新的Ubuntu 18.04 LTS Vultr实例上安装Wiki.js。

要求

运行Wiki.js并完成本指南的要求如下:

  • Node.js版本6.9.0或更高版本
  • MongoDB 3.2版或更高版本
  • Nginx的
  • Git 2.7.4或更高版本
  • 至少768MB RAM
  • 带有A/ AAAA记录的域名

检查Ubuntu版本。

lsb_release -ds
# Ubuntu 18.04.4 LTS

创建一个non-root具有sudo访问权限的新用户帐户并切换到该帐户。

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

注意用您的用户名替换johndoe

设置时区。

sudo dpkg-reconfigure tzdata

确保您的系统是最新的。

sudo apt update && sudo apt upgrade -y

安装必要的软件包。

sudo apt install -y build-essential apt-transport-https

安装Git

Git 2.7.4预先安装在Ubuntu服务器版本上,因此我们不需要安装它。如果要安装较新的版本,则可以使用第三方PPA或从源代码编译最新版本的Git。

您可以通过运行以下命令来验证当前安装的Git版本:

git --version
# git version 2.7.4

如果要安装较新版本的Git软件,可以使用以下软件。

# Remove existing git package
sudo apt remove -y git
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:git-core/ppa
sudo apt update && sudo apt upgrade -y
sudo apt install -y git

验证Git版本。

git --version
# git version 2.17.0

安装Node.js

通过利用Node.js的NodeSource APT存储库来安装Node.js。

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs

检查Node.js和NPM版本。

node -v && npm -v
# v8.11.2
# 5.6.0

安装MongoDB

我们将使用官方的MongoDB存储库,该存储库与最新的主要和次要MongoDB版本保持同步。

安装MongoDB社区版。

sudo apt install -y mongodb

检查版本。

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.3
# db version v3.6.3

安装和配置Nginx

安装Nginx。

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx

检查版本。

sudo nginx -v
# nginx version: nginx/1.15.0

启用并启动Nginx。

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

将Nginx配置为Wiki.js应用程序的反向代理。

运行sudo vim /etc/nginx/conf.d/wiki.js.conf并使用下面的基本反向代理配置填充它。

server {

    listen [::]:80;
    listen 80;

    server_name wiki.example.com;

    root /usr/share/nginx/html;

    charset utf-8;
    client_max_body_size 50M;

    location /.well-known/acme-challenge/ {
        allow all;
    }

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_next_upstream error timeout http_502 http_503 http_504;
    }

}

在上面的配置中,您唯一需要更改的就是server_nameproxy_pass指令,如果您决定配置除以外的任何其他端口,则可能是伪指令3000。Wiki.js 3000默认使用端口。

检查配置。

sudo nginx -t

重新加载Nginx。

sudo systemctl reload nginx.service

安装Acme.sh客户端并获取Let's Encrypt证书(可选)

HTTPS不需要使用Wiki保护您的Wiki ,但是它将确保您网站的访问量。Acme.sh是一个纯unix shell软件,用于以零依赖关系从Let's Encrypt获得SSL证书。

下载并安装Acme.sh

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~

检查版本。

/etc/letsencrypt/acme.sh --version

获取wiki.example.com域/主机名的RSA和ECDSA证书。

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d wiki.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d wiki.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength ec-256 

运行上述命令后,您的证书和密钥将位于:

  • 对于RSA:/etc/letsencrypt/wiki.example.com目录。
  • 对于ECC / ECDSA:/etc/letsencrypt/wiki.example.com_ecc目录。

从“加密”获取证书后,我们需要配置Nginx来使用它们。

sudo vim /etc/nginx/conf.d/wiki.js.conf再次运行,并将Nginx配置为HTTPS反向代理。

server {

    listen [::]:443 ssl http2;
    listen 443 ssl http2;
    listen [::]:80;
    listen 80;

    server_name wiki.example.com;

    root /usr/share/nginx/html;

    charset utf-8;
    client_max_body_size 50M;

    location /.well-known/acme-challenge/ {
        allow all;
    }

    # RSA
    ssl_certificate /etc/letsencrypt/wiki.example.com/fullchain.cer;
    ssl_certificate_key /etc/letsencrypt/wiki.example.com/wiki.example.com.key;
    # ECDSA
    ssl_certificate /etc/letsencrypt/wiki.example.com_ecc/fullchain.cer;
    ssl_certificate_key /etc/letsencrypt/wiki.example.com_ecc/wiki.example.com.key;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_next_upstream error timeout http_502 http_503 http_504;
    }

}

检查配置。

sudo nginx -t

重新加载Nginx。

sudo systemctl reload nginx.service

安装Wiki.js

在应该安装Wiki.js的地方创建一个空的文档根文件夹。

sudo mkdir -p /var/www/wiki.example.com

导航到文档根文件夹。

cd /var/www/wiki.example.com

/var/www/wiki.example.com文件夹的所有权更改为用户johndoe

sudo chown -R johndoe:johndoe /var/www/wiki.example.com

在该/var/www/wiki.example.com文件夹中,运行以下命令以下载并安装Wiki.js。

curl -sSo- https://wiki.js.org/install.sh | bash

要查看当前安装的Wiki.js版本,可以运行以下命令。

node wiki --version
# 1.0.78

安装完成后,系统将提示您运行配置向导。

启动配置向导。

node wiki configure

这将通知您浏览http://localhost:3000以配置Wiki.js。如果您在Wiki.js前面有Nginx,则可以打开域名(例如http://wiki.example.com),而不用打开localhost

使用网络浏览器,浏览http://wiki.example.com并遵循屏幕上的说明。在配置向导中输入的所有设置都保存在config.yml文件中。配置向导将自动为您启动Wiki.js。

安装PM2

默认情况下,Wiki.js在系统重启后不会自动启动。为了使其在启动时启动,我们需要设置PM2。PM2与Wiki.js捆绑在一起作为本地NPM模块,因此我们无需在全球范围内安装PM2。

告诉PM2将其自身配置为启动服务。

/var/www/wiki.example.com/node_modules/pm2/bin/pm2 startup

最后,保存当前的PM2配置。

/var/www/wiki.example.com/node_modules/pm2/bin/pm2 save

Wiki.js使用PM2作为其进程管理器,作为后台进程运行。



Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在Ubuntu 16.10上安装Review Board

如何在Ubuntu 16.10上安装Review Board

使用其他系统?Review Board是一个免费且开源的工具,用于检查源代码,文档,图像等。这是基于网络的软件战

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

Xubuntu是XFCE + Ubuntu!XFCE是Ubuntu的轻量级GUI /桌面。Vultr服务器需要其他依赖项,默认情况下未安装这些依赖项。

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

如何使用SSL和安全密码保护由Nginx驱动的网站

如何使用SSL和安全密码保护由Nginx驱动的网站

简介SSL(代表安全套接字层)及其后续版本TLS(代表传输层安全性)是需要加密的加密协议。

如何在Fedora 26 LAMP VPS上安装MODX Revolution

如何在Fedora 26 LAMP VPS上安装MODX Revolution

使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由

如何在Ubuntu 17.04上安装JuliaLang

如何在Ubuntu 17.04上安装JuliaLang

朱莉娅(Julia)通常称为JuliaLang,是一种用于数值计算的编程语言。Julia的速度和C一样快,但是却不牺牲可读性

在Ubuntu 14.04上安装Ruby on Rails

在Ubuntu 14.04上安装Ruby on Rails

Ruby on Rails(RoR)是用Ruby编程语言编写的框架,可让您将Ruby与HTML,CSS和类似的程序结合使用。

在Fedora 28上安装Anchor CMS

在Fedora 28上安装Anchor CMS

使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示

将Debian 9升级到Debian 10

将Debian 9升级到Debian 10

简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin

如何管理Linux服务器时区设置

如何管理Linux服务器时区设置

在Linux服务器上正确设置日期和时间非常重要。您的服务器日志和其他重要信息都将反映时区

如何在Ubuntu 16.04上安装Taiga项目管理工具

如何在Ubuntu 16.04上安装Taiga项目管理工具

使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量

在Ubuntu上配置Nagios:第1部分-Nagios服务器

在Ubuntu上配置Nagios:第1部分-Nagios服务器

本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio

如何访问Vultr VPS

如何访问Vultr VPS

Vultr提供了几种不同的方式来访问VPS以进行配置,安装和使用。访问凭据VPS ar的默认访问凭据

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

在Debian / Ubuntu中使用Rsync设置文件镜像

在Debian / Ubuntu中使用Rsync设置文件镜像

简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息