如何在FreeBSD 11上安装Wiki.js

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

要求

运行Wiki.js的要求如下:

  • Node.js版本6.11.1或更高版本
  • MongoDB 3.2版或更高版本
  • Git 2.7.4或更高版本
  • Web服务器,例如Nginx,Apache,IIS,Caddy或H2O。本指南将使用Nginx。
  • 兼容Git的存储库(公共或私有),这是可选的
  • 至少512MB RAM。强烈建议使用内存至少为1GB的计算机。
  • 带有A/ AAAA记录的域名。在本指南中,我们将以wiki.example.com域为例。

在你开始之前

检查FreeBSD版本。

uname -ro
# FreeBSD 11.2-RELEASE

确保您的FreeBSD系统是最新的。

freebsd-update fetch install
pkg update && pkg upgrade -y

安装sudovimunzipwgetgitbashsocat包,如果它们不存在您的系统上。

pkg install -y sudo vim unzip wget git bash socat

使用您的首选用户名创建一个新用户帐户(我们将使用johndoe)。

adduser

# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

运行visudo命令并取消注释该%wheel ALL=(ALL) ALL行,以允许该wheel组的成员执行任何命令。

# Uncomment by removing the hash (#) sign
%wheel ALL=(ALL) ALL

现在,切换到新创建的用户。

su - johndoe

注意: 用您的用户名替换johndoe

设置时区。

sudo tzsetup

安装Node.js

Wiki.js需要Node.js 6.11.1或更高版本,因此我们首先需要安装适当版本的Node.js。

安装Node.js和NPM。

sudo pkg install -y node8 npm-node8

检查版本。

node -v && npm -v
# v8.12.0
# 6.4.1

安装MongoDB

Wiki.js使用MongoDB作为数据库引擎。

安装MongoDB。

sudo pkg install -y mongodb36

检查版本。

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

启用并启动MongoDB。

sudo sysrc mongod_enable=yes
sudo service mongod start

安装Acme.sh并获取“让我们加密”证书(可选

不需要使用HTTPS保护Wiki,但这是确保站点流量的一种好习惯。为了从Let's Encrypt获得SSL证书,我们将使用Acme.sh客户端。Acme.sh是一个纯unix shell软件,用于以零依赖关系从Let's Encrypt获得SSL证书。与其他一些需要大量依赖才能成功运行的Acme协议客户端相比,它非常轻巧。

下载并安装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 ~

检查acme.sh版本。

/etc/letsencrypt/acme.sh --version
# v2.8.0

获得RSA和ECDSA证书wiki.example.com

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d wiki.example.com --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d wiki.example.com --ocsp-must-staple --keylength ec-256

运行上述命令后,您的证书和密钥将位于以下目录中:

  • RSA: /etc/letsencrypt/wiki.example.com
  • ECC / ECDSA: /etc/letsencrypt/wiki.example.com_ecc

注意: 不要忘记wiki.example.com用您的域名替换。

从Let's Encrypt获得证书后,我们需要配置Nginx来利用它们。

安装和配置Nginx

Wiki.js可以在没有任何实际Web服务器的情况下运行,但是强烈建议在其前面放置一个标准Web服务器。这样可以确保您可以使用SSL,多个网站,缓存等功能。在本教程中,我们将使用Nginx,但是任何其他服务器都可以使用,您只需要正确配置它即可。

安装Nginx。

sudo pkg install -y nginx

检查版本。

nginx -v
# nginx version: nginx/1.14.0

启用并启动Nginx。

sudo sysrc nginx_enable=yes
sudo service nginx start

将Nginx配置为Wiki.js应用程序的HTTPS(如果使用SSL)反向代理。

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

server {

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

  server_name wiki.example.com;

  charset utf-8;
  client_max_body_size 50M;

  # 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;
  }

}

在上面的配置中,您唯一需要更改的就是server_name指令,proxy_pass如果决定配置除以外的其他端口,则可能是指令3000。Wiki.js 3000默认使用端口。保存文件并使用:+ W+ 退出Q

现在我们需要wiki.js.conf在主nginx.conf文件中包含该文件。

运行sudo vim /usr/local/etc/nginx/nginx.conf并将以下行添加到http {}块中。

include wiki.js.conf;

检查配置。

sudo nginx -t

重新加载Nginx。

sudo service nginx reload

安装Wiki.js

创建一个将安装Wiki.js的空文档根文件夹。

sudo mkdir -p /usr/local/www/wiki.example.com

导航到文档根文件夹。

cd /usr/local/www/wiki.example.com

/usr/local/www/wiki.example.com文件夹的所有权更改为user johndoe

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

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

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

VERSION=$(curl -L -s -S https://beta.requarks.io/api/version/stable)
curl -L -s -S https://github.com/Requarks/wiki/releases/download/v$VERSION/wiki-js.tar.gz | tar -f - -xz -C .
curl -L -s -S https://github.com/Requarks/wiki/releases/download/v$VERSION/node_modules.tar.gz | tar -f - -xz -C .
cp -n config.sample.yml config.yml

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

node wiki --version
# 1.0.102

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

通过运行启动配置向导。

node wiki configure

这将通知您导航http://localhost:3000以配置Wiki.js。如果您在Wiki.js前面有Nginx,则意味着您可以打开域名(例如http://wiki.example.com),而不用转到本地主机。

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

安装和设置PM2流程管理器

默认情况下,Wiki.js在系统重启后不会自动启动。为了使其在启动时启动,我们需要安装和设置PM2进程管理器。

通过全局安装PM2 npm

sudo npm install -g pm2

检查版本。

pm2 -v
# 3.2.2

导航到您的文档根文件夹(如果尚未存在),然后停止Wiki.js。

cd /usr/local/www/wiki.example.com
node wiki stop

通过PM2启动Wiki.js。

pm2 start server/index.js --name "Wiki.js"

列出由PM2管理的流程。

pm2 list

告诉PM2通过运行以下命令将其自身配置为启动服务:

pm2 startup

最后,通过运行以下命令保存当前的PM2配置:

pm2 save

现在,您的Wiki.js实例使用PM2作为其进程管理器,作为后台进程运行。



Leave a Comment

使用OpenBSD在Vultr上配置BGP

使用OpenBSD在Vultr上配置BGP

Vultrs BGP功能使您可以拥有自己的IP空间并在我们的任何位置使用它,而OpenBSD实例则不需要其他软件!

如何在FreeBSD 12上使用Pkg软件包管理器

如何在FreeBSD 12上使用Pkg软件包管理器

简介FreeBSD是一种类似于Unix的开源操作系统,用于为现代服务器,台式机和嵌入式平台提供动力。Netflix,雅虎等巨人!

FreeBSD的Vultr块存储

FreeBSD的Vultr块存储

本文中的信息涉及修改磁盘,分区和文件系统,因此在执行任何示例之前,应先完全理解它们,因为它们会导致数据丢失或丢失。

如何在FreeBSD 11 FAMP VPS上安装Omeka Classic 2.4 CMS

如何在FreeBSD 11 FAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在FreeBSD 12上安装osTicket

如何在FreeBSD 12上安装osTicket

使用其他系统?osTicket是一个开放源代码的客户支持票务系统。osTicket源代码公开托管在Github上。在本教程中

如何在FreeBSD 12上安装Dolibarr

如何在FreeBSD 12上安装Dolibarr

使用其他系统?Dolibarr是面向企业的开源企业资源计划(ERP)和客户关系管理(CRM)。多利巴尔

在OpenBSD 6上设置Ghost Professional发布平台

在OpenBSD 6上设置Ghost Professional发布平台

Ghost是与WordPress竞争的最新,最大的暴发户。主题开发既快速又容易学习,因为Ghost开发人员决定同时使用

如何在FreeBSD 12上安装Monica

如何在FreeBSD 12上安装Monica

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

如何在FreeBSD 11 FAMP VPS上安装Couch CMS 2.0

如何在FreeBSD 11 FAMP VPS上安装Couch CMS 2.0

使用其他系统?Couch CMS是一个简单,灵活,免费和开源的内容管理系统(CMS),可让Web设计人员进行设计

如何在FreeBSD 12上安装LimeSurvey CE

如何在FreeBSD 12上安装LimeSurvey CE

使用其他系统?LimeSurvey是一个用PHP编写的开源调查软件。LimeSurvey源代码托管在GitHub上。本指南将向您展示

如何在FreeBSD 12的Nginx中启用TLS 1.3

如何在FreeBSD 12的Nginx中启用TLS 1.3

使用其他系统?TLS 1.3是传输层安全性(TLS)协议的版本,该协议于2018年作为RFC 8446中的建议标准发布

如何在FreeBSD 12上安装MyBB

如何在FreeBSD 12上安装MyBB

使用其他系统?MyBB是一个免费,开放源代码,直观且可扩展的论坛程序。MyBB源代码托管在GitHub上。本指南将

使用Prosody和FreeBSD设置XMPP服务器

使用Prosody和FreeBSD设置XMPP服务器

尽管ejabberd非常普遍,但最近有一个竞争对手-Prosody。本教程将向您展示如何在FreeBS上设置Prosody

用Poudriere建立自己的Pkg存储库

用Poudriere建立自己的Pkg存储库

从9.2版开始,FreeBSD引入了一个新工具来替换旧的pkg _ *-命令-pkg,也称为pkgng。它非常类似于Debians apt o

如何在FreeBSD 11上安装Matomo Analytics

如何在FreeBSD 11上安装Matomo Analytics

使用其他系统?Matomo(以前称为Piwik)是一个开源分析平台,是Google Analytics(分析)的一种开放替代方案。Matomo源托管o

如何在FreeBSD 11 FAMP VPS上安装ProcessWire CMS 3.0

如何在FreeBSD 11 FAMP VPS上安装ProcessWire CMS 3.0

使用其他系统?ProcessWire CMS 3.0是一个简单,灵活,功能强大,免费和开源的内容管理系统(CMS)。ProcessWire CMS 3。

如何在FreeBSD 12的Apache中启用TLS 1.3

如何在FreeBSD 12的Apache中启用TLS 1.3

使用其他系统?TLS 1.3是传输层安全性(TLS)协议的版本,该协议于2018年作为RFC 8446中的建议标准发布

如何在FreeBSD 11 FAMP VPS上安装Redaxscript 3.2 CMS

如何在FreeBSD 11 FAMP VPS上安装Redaxscript 3.2 CMS

使用其他系统?Redaxscript 3.2 CMS是一款现代,超轻量级,免费和开源的内容管理系统(CMS),具有火箭fas

如何在FreeBSD 12上安装BookStack

如何在FreeBSD 12上安装BookStack

使用其他系统?简介BookStack是一个简单的,自托管的易于使用的平台,用于组织和存储信息。BookStack已满

在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 機器變磚。閱讀這篇文章以了解更多信息