気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【備忘録】Ubuntu16.04にCrowi(wiki)をインストールして楽しむ

以前Qiitaの記事でお見かけした素敵なWikiアプリ「crowi」。

デザインがシンプルですごく好きなので、自分でも試しにインストール・利用してみようと 思ったのが少し前のこと(2017/05/25)。

最近Surface Pro3でUbuntu16.04 Desktopをデュアルブートして遊んだり、 VirtualBoxに入れていじっていたので、 とりあえずUbuntuにCrowiをインストールしました。

本記事では、対応内容を備忘録として記述します。

前提

  • Ubuntu16.04を利用
  • Linuxユーザに関する部分は「main」と記載

nvmのインストー

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
$ export NVM_DIR="$HOME/.nvm"
$ [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

nvmでNode.jsをインストー

# ltsオプションでLTSのみ表示
$ nvm ls-remote --lts
# 2017/06/09時点では、v6.11.0がLTSの最新バージョン
# --> v6.11.0   (Latest LTS: Boron)
$ nvm install v6.11.0
$ nvm use v6.11.0
$ which node
# 下記のバイナリが利用される
# --> /home/main/.nvm/versions/node/v6.11.0/bin/node

MongoDBのインストール(Ubuntu16.04)

公開鍵のインポート

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

MongoDB用のリストファイルを作成

$ echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

パッケージDBをリロード

$ sudo apt-get update

MongoDBのインストー

$ sudo apt-get install -y mongodb-org

MongoDBサービスの起動

$ sudo service mongod start

デフォルトのポート番号は 27017

ポートの確認

  • mongod.confから確認
$ cat /etc/mongod.conf | grep port
# --> port: 27017と表示される
  • lsofコマンドで確認
$ sudo lsof -i | grep mongod
# -->右端にlocalhost:27017 と表示される

mongoコマンドの実行

$ mongo
# --> インタラクティブシェルが起動すればOK

mongodbの自動起動設定

$ sudo systemctl enable mongod

crowiのダウンロード

  • masterブランチは安定版ではないのコントリビュータ以外は利用しないようにとのこと。
  • 開発ブログ「Crowi Book」の情報を元に、現時点(2017/06/09)での最新版である1.6.2を利用する。
$ git clone -b v1.6.2 https://github.com/crowi/crowi/

crowiのインストー

$ cd ./crowi
$ npm install

crowiの実行

  • PASSWORD_SEEDはパスワードジェネレータから利用されるらしい
  • 最初のユーザを作成してからPASSWORD_SEEDを変えると、ログイン不可となるらしい
$ PASSWORD_SEED=9a3e2d798522fe51cc4145eba6b44e86 MONGO_URI=mongodb://localhost:27017 npm start

crowiアプリのページにアクセス

localhost:3000

  • セットアップページ

やったー!

f:id:rinne_grid2_1:20170609014006p:plain

  • ページ作成用の画面

f:id:rinne_grid2_1:20170609014015p:plain

サーバー起動時にcrowiアプリが使えるようにする

foreverをインストー

$ npm install -g forever

foreverを利用したCrowiの起動コマンドを作成し実行

  • mainというユーザを利用した場合
  • forever start
$ sudo -u main /home/main/.nvm/versions/node/v6.11.0/bin/node \
/home/main/.nvm/versions/node/v6.11.0/bin/forever start -p /var/run/forever \
--pidfile /var/run/node-app-crowi.pid -l /home/main/crowi-app.log -a \
-d /home/main/crowi/crowi/app.js

crowiアプリのページにアクセス

localhost:3000

foreverでCrowiアプリを停止

  • forever stop
$ sudo -u main /home/main/.nvm/versions/node/v6.11.0/bin/node \
/home/main/.nvm/versions/node/v6.11.0/bin/forever stop -p /var/run/forever \
--pidfile /var/run/node-app-crowi.pid -l /home/main/crowi-app.log -a \
-d /home/main/crowi/crowi/app.js

/etc/rc.localにCrowiアプリを起動するコマンドを記入する

  • exit 0の少し上に追加する
$ sudo vim /etc/rc.local
/home/main/.nvm/versions/node/v6.11.0/bin/node \
/home/main/.nvm/versions/node/v6.11.0/bin/forever start -p /var/run/forever \
--pidfile /var/run/node-app-crowi.pid -l /home/main/crowi-app.log -a \
-d /home/main/crowi/crowi/app.js

参考記事

これから、Crowiで色々と遊んでみようと思います。