CentOS7 に Markdown で書ける Wiki「Crowi-Plus」をインストールする
以前に高機能 Wiki「Crowi」を Docker で手軽に試すというメモを書きましたが、Crowi は Markdown で書ける 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 用の設定ファイルを用意しておきます。
1
2
3
4
5
6
7
8
9
10
11
12
13 | 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
して設定ファイルを読み込み直しておきます。
Crowi を起動する
最後に、Crowi を起動&自動起動設定します。
| systemctl start crowi
systemctl enable crowi
|
(/etc/sysconfig/crowi
でも定義していますが) デフォルトでは TCP/3000 で Listen します。 ブラウザで「http://xxx.xxx.xxx.xxx:3000
」にアクセスすると Crowi-Plus のログイン画面が表示されるはずです。
参考