HackMDをEC2インスタンスにインストールしてみる

テーマ

EC2インスタンスにHackMDをインストールし、動くようになるまでの対応方法を記載します。

事前準備

EC2インスタンス
node.js v7.5.0のためのnvm
pm2

インストール手順

EC2インスタンス上にインストールするnode.jsですが、どのユーザで入れるのがいいんだろう?と悩みました。
今回はrootユーザにインストールさせています。
本当なら専用ユーザを作成した方がいいのかもしれませんが…。

~ terminalでの操作 ~
sudo suでrootになる
cd /usr/local/bin/
git clone git://github.com/creationix/nvm.git nvm
cd nvm
sh nvm.sh
vim /etc/profile.d/nvm.sh

~ nvm.shの中身 ~
source /usr/local/bin/nvm/nvm.sh

~ terminalでの操作 ~
nvm install v7.5.0
nvm default v7.5.0
nvm alias default v7.5.0
mkdir -p /var/www/html/
cd /var/www/html/
git clone https://github.com/hackmdio/hackmd.git
cd hackmd
bin/setup
vim config.json

~ 必要に応じてconfig.jsonを修正 ~
https://github.com/hackmdio/hackmd/blob/master/config.json.example

~ terminalでの操作 ~
vim .sequelize

~ 必要に応じて.sequelizeを修正 ~
https://github.com/hackmdio/hackmd/blob/master/.sequelizerc.example
urlを書き換える。

~ terminalでの操作 ~
node_modules/.bin/sequelize db:migrate
npm run build

ここまでできれば準備完了です。

動作確認

以下のコマンドで動作確認を行います。

NODE_ENV='production' node app.js

/etc/init.d/で起動できるように設定

pm2 というツールを使えば環境(OS)に応じて、サービス登録できるようになっているようです。

npm install -g pm2
cd ~/
vim app.json

~ app.jsonの中身 ~
{
  "name" : "app",
  "script" : "/var/www/html/hackmd/",
  "env" : {
    "NODE_ENV" : "production"
  },
  "env_production" : {
    "NODE_ENV" : "production"
  }
}

~ terminalでの操作 ~
pm2 start ~/app.json
pm2 startup amazon
pm2 save
/etc/init.d/pm2-root status
chkconfig --list | grep pm2-root

pm2-rootのstatusで起動していることを確認し、chkconfigでOSが起動時に実行されるようになっていることを確認します。

以下のコマンドで応答が返ってくれば成功です。
curl http://localhost/

まとめ

Qiitaをリアルタイム同時編集できるようにしたようなHackMDですが、このツールはデザインも優れ、QiitaとのMarkdownに親和性があることです。
まとめてみるとインストール作業自体は少ないので、設定に時間がかかった印象がある感じですね。
LDAP連携してますけど、LDAPの設定がわからなくてログインできずにいます…(ぉぃ

pm2初めて使いましたけど、サービスの常時起動ってこうやるのかーと学びを得ました。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。