AzureにWiki「Crowi-Plus」をインストールしてみる


Wiki「Crowi-Plus」とは、

Crowiは、MarkDownで書けるWikiです。
そのCrowiを発展させたのが、「Crowi-Plus」です。

社内で、リファレンスなどの管理するために、Microsoft Wordを使用していましたが、Wiki化して、MarkDown形式で入力できないかと探していたところ、Crowiにたどり着き、さらにその発展版があることを知りました。
API仕様書など社内Wikiには、もってこいのシステムのようです。

普段、Windows Server利用が多いので、CentOSは、初めて立てたので違う点があるかもしれませんが、構築手順を用意しました。

イメージ

参考

最強のWiki「Crowi」のフォーク、「crowi-plus」を公開した話
CrowiをCentOSにインストール
Crowi-Plusにプラグインを導入する方法

依存関係

Dependencies

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

Optional Dependencies

Redis 3.x
ElasticSearch 5.x (needed when using Full-text search)
CAUTION: Following plugins are required
Japanese (kuromoji) Analysis plugin
ICU Analysis Plugin

CentOSをAzureに構築

  • Azure Portalに接続してリソースグループを作成

項目
リソースグループ 任意:CROWI
場所 任意:東日本
  • 作成したリソースグループ内でVMを追加する
  • 今回は、CentOS7.4を選択、デプロイモデルは、Resource Managerを選択

  • 作成するサーバ情報の設定

項目
コンピュータ名 任意:SVAZCROWI
VMディスク種類 任意:HDD
ユーザ名 任意:crowiadmin
認証の種類 任意:パスワード
パスワード 任意:任意のパスワード
リソースグループ 任意:作成したグループ
今回は、CROWI
場所 任意:東日本
  • 作成するサーバのサイズの設定

項目
サイズ 任意:B2s Standard

※ Standard B2sにした理由としては、今回は、HDDで作成しますが、プレミアムストレージにも接続できるから後から増強することが可能なため。

  • その他設定

項目
可用性セット なし
管理ディスク あり
診断ディスク なし
バックアップ なし
  • VMを作成実行が完了したら、sshを自分のグローバルアドレスのみ接続可能に変更 作成されたネットワークセキュリティグループ(SVAZCROWI-nsg)を開き、「default-allow-ssh」を選択する。 ソースをanyから「IP Addresses」を選択し、ソースIPアドレスに、自身のグローバルアドレスを入力して保存する。

項目 変更
ソース IP Addresses
ソースIPアドレス 自身のグローバルアドレス
ソースポート * -
宛先 Any -
宛先ポート範囲 22 -
プロトコル TCP -
アクション 許可 -
優先度 1000 -
名前 default-allow-ssh -
  • 許可ポートの追加

追加を押して追加の許可ポートを設定します。

項目
ソース IP Addresses
ソースIPアドレス 自身のグローバルアドレス
ソースポート *
宛先 Any
宛先ポート範囲 3000
プロトコル TCP
アクション 許可
優先度 100
名前 Port_3000

インストール作業

Tera Termでの接続

  • この後の作業は、Tera Termを使って行います。

  • Tera Termをインストールしていなければ、インストールしてください。

  • 作成したVMの概要から接続を押し、sshの後ろの部分をコピーする。

  • Tera Termのホスト欄にコピーを張り付ける。


※ 以降は、Tera Termでの処理になります。

アップデート

$ sudo yum update 

nanoのインストール

  • vi でもrepoを作成できますが、nanoが便利なのでインストールします。
$ sudo yum install git wget nano

Node.jsのインストール

  • Node.js(6.x系)をインストールします。
$ sudo yum install -y epel-release
$ sudo yum group install "Development Tools"
$ curl --fail -sSL -o setup-nodejs https://rpm.nodesource.com/setup_6.x
$ sudo bash setup-nodejs

Redis のインストール

  • Redisのインストール
$ sudo yum -y install epel-release
$ sudo yum -y install redis
  • Redisの起動と自動起動設定
$ sudo systemctl start redis
$ sudo systemctl enable redis

MongoDBのインストール

  • /etc/yum.repos.d/mongodb-org.repo 作成
$ sudo nano /etc/yum.repos.d/mongodb-org.repo
  • nanoが開いたら 以下を貼り付けて保存
/etc/yum.repos.d/mongodb-org.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
  • MongoDB本体のインストール
$ sudo yum install -y mongodb-org
  • MongoDBの起動と自動起動設定
$ sudo systemctl start mongod
$ sudo systemctl enable mongod

Elasticsearchプラグインのインストール

  • Javaのインストール
$ sudo yum install -y java-1.8.0-openjdk
  • /etc/yum.repos.d/elasticsearch.repoの作成
$ sudo nano /etc/yum.repos.d/elasticsearch.repo
  • nanoが開いたら 以下を貼り付けて保存
/etc/yum.repos.d/elasticsearch.repo
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
  • Elasticsearchプラグイン本体のインストール
$ sudo yum install -y elasticsearch
  • 日本語検索プラグイン(kuromoji & ICU(International Components for Unicode))もインストール
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
  • Elasticsearchプラグインの起動と自動起動設定
$ sudo systemctl start elasticsearch
$ sudo systemctl enable elasticsearch

yarnのインストール

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

npmのアップデート

$ sudo npm install -g [email protected]

Crowi-Plus のインストール

  • 今回は /opt/crowi-plus ディレクトリにインストールします。
$ cd /opt
$ sudo git clone -b v2.3.8 https://github.com/weseek/crowi-plus.git
$ cd crowi-plus
$ sudo yarn

※ v2.4.0は、2018/02/10時点でRCとなっていたので、v2.3.8を選択していますが、バージョン指定を行わないのであれば、-b v2.3.8は、外して構いません。

  • 環境パラメータの作成( /etc/sysconfig/crowi
$ sudo nano /etc/sysconfig/crowi

  • nanoが開いたら 以下を貼り付けて保存
/etc/sysconfig/crowi
PORT=3000
NODE_ENV=production
MONGO_URI="mongodb://localhost:27017/crowi"
REDIS_URL="redis://localhost:6379/crowi"
ELASTICSEARCH_URI="http://localhost:9200/crowi"
#SECRET_TOKEN=
PASSWORD_SEED="`openssl rand -base64 128 | head -1`"
FILE_UPLOAD=local
  • 自動起動パラメータの作成( /etc/systemd/system/crowi.service )
$ sudo nano /etc/systemd/system/crowi.service
  • nanoが開いたら 以下を貼り付けて保存
/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
  • サービスの読み込み
$ sudo systemctl daemon-reload

crowi-plus-lsxプラグインのインストール

sudo yarn add crowi-plugin-lsx
sudo npm start

Crowi-Plusの起動

  • Crowi-Plusの起動と自動起動設定
$ sudo systemctl start crowi
$ sudo systemctl enable crowi

Crowi-Plusページにブラウザでアクセス

  • http://アドレス:3000 をブラウザで開く
  • 開いたら管理者アカウントの作成が表示されるので、必要情報を入力し、作成する。

  • 一旦作成した管理者アカウントでログインを行う。

  • ログイン後、設定等を行う。

プラグインも入っていることが確認できます。

後は、ユーザー管理でユーザーを追加していけば、使えるようになります。