未分類

Ubuntu 18.04にWiki.jsをインストールする方法

Wiki.jsは、Node.jsGit、およびMarkdown上に構築された、無料でオープンソースの最新の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
  • AAAAArecordsが設定されたドメイン名

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 Community Editionをインストールします。

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_nameディレクティブだけで、proxy_pass他のポートを設定する場合はディレクティブだけです3000。Wiki.jsは3000デフォルトでport を使用します。

構成を確認してください。

sudo nginx -t

Nginxをリロードします。

sudo systemctl reload nginx.service

Acme.shクライアントをインストールし、Let’s Encrypt証明書を入手します(オプション)

であなたのwikiを安全にするHTTPS必要はありませんが、それはあなたのサイトのトラフィックを安全にするでしょう。Acme.shは、依存関係なしでLet’s EncryptからSSL証明書を取得するための純粋なunixシェルソフトウェアです。

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 your_email@example.com
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 your_email@example.com --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 your_email@example.com --ocsp-must-staple --keylength ec-256 

上記のコマンドを実行した後、あなたの証明書と鍵は次の場所にあります。

  • RSAの場合:/etc/letsencrypt/wiki.example.comディレクトリ。
  • ECC / ECDSAの場合:/etc/letsencrypt/wiki.example.com_eccディレクトリ。

Let’s Encryptから証明書を取得したら、それらを使用するように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:3000Wiki.jsを構成するために参照するように通知されます。あなたがWiki.jsの前にnginxのを持っている場合は、(例えば、あなたのドメイン名を開くことができますhttp://wiki.example.com代わりに行こうと)localhost

Webブラウザを使用して、http://wiki.example.com画面上の指示に移動してそれに従います。構成ウィザード中に入力されたすべての設定はconfig.ymlファイルに保存されます。設定ウィザードが自動的にWiki.jsを起動します。

PM2をインストール

デフォルトでは、Wiki.jsはシステムの再起動後に自動的に起動しません。起動時に起動させるためには、PM2をセットアップする必要があります。PM2はローカルのNPMモジュールとしてWiki.jsにバンドルされているので、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を使用して、バックグラウンドプロセスとして実行されます。