らくがきちょう

なんとなく

Amazon Linux に Nginx Reverse Proxy 構成で Wekan をインストールする

Wekan は Node.js で実装された Trello 風の OSS なプロジェクト管理ツールです。 所謂、「カンバン」を採用しており、付箋紙を貼るような感覚でタスクの管理が出来ます。 チャート生成や分析等、高度な機能は備えていませんが、その分、シンプルに使うことが出来ます。 今回は Amazon Linux へ Wekan をインストールする手順をメモしておきます。

Wekan の特徴

冒頭の説明とやや重複しますが、Wekan には以下のような特徴があります。

  • モダンで美しい UI
  • シンプルなので学習コストが低く、すぐに使い始めることが出来る
  • リアルタイムで変更が反映される
  • Node.js と MongoDB があれば、Wekan 自体はファイルを配置するのみでデプロイ出来、インストールが容易
  • チャートの生成、ボードを Excel 形式でエクスポートする、タスクの消化状況を分析する、といった高度な機能は無い

git のインストール

Amazon Linux にはデフォルトで git がインストールされていません。 Node.js のインストールで使う為、最初にインストールしておきます。

yum -y install git

Node.js のインストール

Node.js は riywo/ndenvriywo/node-build を使ってインストールします。 ndenvRuby で言うところの rbenv に相当し、手軽に Node.js のバージョンを切り替えることが出来ます。 公式サイトに記載されている手順に従い、ndenv をインストールします。

git clone https://github.com/riywo/ndenv ~/.ndenv
echo 'export PATH="$HOME/.ndenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(ndenv init -)"' >> ~/.bash_profile
exec $SHELL -l

次は node-build をインストールします。 GitHub から Clone し、ndenv の plugins ディレクトリに保存します。

git clone https://github.com/riywo/node-build.git $(ndenv root)/plugins/node-build

公式サイトによると Wekan は Node.js のバージョン 4.8.4 で動作するそうです。 従って Node.js 4.8.4 をインストールします。 ndenv で Node.js をインストールした後は一旦、ndenv rehash が必要な点に注意します。

ndenv install v4.8.4
ndenv rehash
ndenv global v4.8.4

これで Node.js 4.8.4 がインストールされました。

# node -v
v4.8.4

MongoDB のインストール

次は MongoDB をインストールします。 以下の内容で /etc/yum.repos.d/mongodb.repo というファイルを新規作成し、MongoDB のリポジトリを追加します。

[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

MongoDB をインストールします。

yum install -y mongodb-org

インストールが完了したら MongoDB を起動します。

service mongod start

インストール直後の状態で自動起動設定はされていました。

# chkconfig --list | grep -i mongo
mongod          0:off  1:off  2:off  3:on   4:off  5:on   6:off

Wekan のインストール

次は Wekan をインストールします。 GitHub から最新版をダウンロードし、フォルダ名を修正しながら /opt 配下へ保存します。 現時点で最新のバージョンは 0.50 でした。

curl -L -O https://github.com/wekan/wekan/releases/download/v0.50/wekan-0.50.tar.gz
tar zxvf wekan-0.50.tar.gz
mv bundle /opt/wekan

Wekan が必要とする環境変数.bash_profile に追記しておきます。 ROOT_URL には Wekan で利用する FQDN を指定します。

export MONGO_URL='mongodb://127.0.0.1:27017/wekan'
export ROOT_URL='http://FQDN'
export PORT=8539

ここまで設定すれば以下を実行することで Wekan が 8539/TCP で起動するはずです。

cd /opt/wekan/
node main.js &

しかし、このままでは Wekan がデーモン化されておらず、不便です。 そこで以降の手順では forever を用いて Wekan をデーモン化します。

forever のインストール

forever をインストールします。

npm install -g forever
ndenv rehash

後は Wekan の起動ファイルである /opt/wekan/main.jsforever で開始し、デーモン化するだけです。

forever start /opt/wekan/main.js

forever でデーモン化されたプログラム一覧は表示するには以下のように実行します。

# forever list
info:    Forever processes running
data:        uid  command                               script             forever pid  id logfile                 uptime
data:    [0] kD3_ /root/.ndenv/versions/v4.8.4/bin/node /opt/wekan/main.js 3515    3521    /root/.forever/kD3_.log 0:0:1:25.909

forever でデーモン化されたプログラムを解除するには以下のように実行します。

forever stop /opt/wekan/main.js

`forever でデーモン化されたプログラムを再起動するには以下のように実行します。

forever restart /opt/wekan/main.js

Nginx

このままでも良いのですが、同一のサーバで Wekan 以外にも複数のアプリケーションをホストしたい場合は、Apache や Nginx を Reverse Proxy として動作させることで解決します。 今回は Nginx を Reverse Proxy としてインストール&設定します。 まず、Nginx をインストールします。

yum -y install nginx

Wekan 用の Reverse Proxy 設定ファイルを作成します。 以下の内容で /etc/nginx/conf.d/wekan.conf というファイルを新規作成します。

upstream nodejs {
    server localhost:8539;
}

server {
    listen       80;
    server_name  FQDN;
    proxy_redirect                          off;
    proxy_set_header Host                   $host;
    proxy_set_header X-Real-IP              $remote_addr;
    proxy_set_header X-Forwarded-Host       $host;
    proxy_set_header X-Forwarded-Server     $host;
    proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
    location / {
        proxy_pass http://nodejs;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {  
    root   /opt/wekan/;
    }
}

ここまでの設定が完了したら Nginx を起動します。インストールしただけでは Nginx の自動起動は設定されていなかったので、合わせて設定します。

service nginx start
chkconfig nginx on

これでインストールは完了です。 ブラウザで http://FQDN にアクセスすれば Wekan のログイン画面が表示されるはずです。