らくがきちょう

なんとなく

CentOS7 に Markdown で書ける Wiki「Crowi-Plus」をインストールする

以前に高機能 Wiki「Crowi」を Docker で手軽に試すというメモを書きましたが、CrowiMarkdown で書ける Wiki です。 この Crowi を更に拡張したのが Crowi-Plus です。 今回は CentOS7 に Crowi-Plus をインストールする手順をメモしておきます。

依存関係

現時点で Crowi-Plus は以下のソフトウェアに依存しているそうです。 順次、インストールしていきます。

  • node 6.x (DON'T USE 7.x)
  • npm 4.x (DON'T USE 5.x)
  • yarn
  • MongoDB 3.x

Node.js 6.x 系のインストール

Node.js をインストールします。

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
yum -y install nodejs

MongoDB のインストール

MongoDB をインストールします。 MongoDB の公式リポジトリを追加します。

cat << "_EOF_" > /etc/yum.repos.d/mongodb.repo
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
_EOF_

追加したリポジトリから yum でインストールします。

yum -y install mongodb-org

MongoDB のインストールが完了したら起動&自動起動設定を実施しておきます。

systemctl start mongod
systemctl enable mongod

Redis のインストール

EPEL から Redis をインストールします。

yum -y install epel-release
yum -y install redis

Redis のインストールが完了したら起動&自動起動設定を実施しておきます。

systemctl start redis
systemctl enable redis

Java のインストール

Crowi-Plus で全文検索機能を利用するには ElasticSearch を使います。 ElasticSearch を動作させる上で必要なので Java をインストールしておきます。

yum -y install java-1.8.0-openjdk

Elasticsearch のインストール

ElasticSearch をインストールします。 まず、GPG 鍵をインストールします。

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

ElasticSearch の公式リポジトリを追加します。

cat << "_EOF_" > /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
_EOF_

追加したリポジトリから yum で ElasticSearch をインストールします。

yum -y install elasticsearch

ElasticSearch を動作させる上で以下のプラグインも必要です。

elasticsearch-plugin でインストールしておきます。

/usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
/usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu

ElasticSearch のインストールが完了したら起動&自動起動設定を実施しておきます。

systemctl start elasticsearch
systemctl enable elasticsearch

yarn のインストール

Crowi-Plus は JavaScript のパッケージ管理に yarn を使っているようです。 yarn をインストールします。

wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
yum -y install yarn

Crowi-Plus のインストール

これで Crowi-Plus を動作させる環境が整いました。 いよいよ Crowi-Plus をインストールします。 今回は /opt/crowi-plus ディレクトリにインストールします。

cd /opt
git clone https://github.com/weseek/crowi-plus.git
cd crowi-plus
yarn

環境変数の定義

Crowi-Plus が起動時に参照する環境変数/etc/sysconfig/crowi に定義しておきます。

cat << _EOF_ > /etc/sysconfig/crowi
PORT=3000
NODE_ENV=production
MONGO_URI="mongodb://localhost:27017/crowi"
REDIS_URL="redis://localhost:6379"
ELASTICSEARCH_URI="http://localhost:9200"
#SECRET_TOKEN=
PASSWORD_SEED="`openssl rand -base64 128 | head -1`"
FILE_UPLOAD=local
_EOF_

自動起動スクリプト

今回は CentOS7 上に Crowi-Plus をインストールしている為、systemd 用の設定ファイルを用意しておきます。

cat << "_EOF_" > /etc/systemd/system/crowi.service
[Unit]
Description=Crowi
After=network.target mongod.service

[Service]
WorkingDirectory=/opt/crowi-plus
EnvironmentFile=/etc/sysconfig/crowi
ExecStart=/usr/bin/npm start

[Install]
WantedBy=multi-user.target
_EOF_

systemd の設定ファイルを追加した為、daemon-reload して設定ファイルを読み込み直しておきます。

systemctl daemon-reload

Crowi を起動する

最後に、Crowi を起動&自動起動設定します。

systemctl start crowi
systemctl enable crowi

(/etc/sysconfig/crowi でも定義していますが) デフォルトでは TCP/3000 で Listen します。 ブラウザで「http://xxx.xxx.xxx.xxx:3000」にアクセスすると Crowi-Plus のログイン画面が表示されるはずです。

参考