Crowiを導入してみた!

日々なんかしらメモしたくなることが多く、なにかいいメモ帳ないかなぁと思いながらEvernoteを使っていたんですが、
ふと、さくらのVPSでCrowiのスタートアップスクリプトの提供を・・という記事を見つけて、TwitterのTLでもCrowiという単語が流れてきたのもあり、
いろいろ調べてみたところ、Markdownで気軽に書けるWikiやメモ帳といった感じだったので導入してみました。

で、さっそくその時のメモ書きです。

crowi構築

基本的な内容

http://d.hatena.ne.jp/akishin999/20161225/1482682979

Redisはいれていない

インストール

MongoDB

レポジトリ定義作成
vim /etc/yum.repos.d/mongodb.repo

1
2
3
4
5
[mongodb]
name=MongoDB repo
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=0

1
yum --enablerepo=mongodb install -y mongodb-org

DBとユーザーを作成する
Mysqlしか知らなかったのでいろいろ調べた

1
2
3
mongo
use 使いたいDB名
db.createUser({user: ユーザ名, pwd: パスワード, roles: [{role: "readWrite", db: 使いたいDB名}]})

MySQLより分かりやすい気がする

NodeJS

レポジトリの登録

1
rpm -Uvh https://rpm.nodesource.com/pub_4.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm

インストールしようとしたらエラーが出たので、以下のコマンドを実行で回避

1
rpm -ivh https://kojipkgs.fedoraproject.org//packages/http-parser/2.7.1/3.el7/x86_64/http-parser-2.7.1-3.el7.x86_64.rpm https://kojipkgs.fedoraproject.org//packages/http-parser/2.7.1/3.el7/x86_64/http-parser-devel-2.7.1-3.el7.x86_64.rpm && yum -y install nodejs-devel

再度インストールと、ついでに依存系も入れる

1
sudo yum install nodejs krb5-devel gcc-c++ git

(自分の環境だとすでに入っていた)

  

検索できるようにElasticsearchを入れる

検索を有効にしておきたいので、Elasticsearchを入れておきます

Javaがいるようなので、入れます(v1.7.0以上じゃないとだめみたいです)

1
sudo yum install java-1.8.0

ElasticsearchをレポジトリからインストールするためGPG-KEYを取得

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

定義ファイルを作成

1
2
3
4
5
6
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=0

インストールする

1
yum --enablerepo=elasticsearch-2.x install -y elasticsearch

後はいつも通り有効にしておきます

また、日本語に対応させるためにanalysis-kuromojiを入れます
(これがjava 1.7.0じゃないとだめらしい)

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

あとは、Elesticsearchを再起動して正常動作を確認します

1
curl -X GET 'http://localhost:9200/_nodes/plugins?pretty'

Crowiをインストール

インストールするディレクトリを決めておく
あとはcloneする

1
2
git clone https://github.com/crowi/crowi.git
cd crowi

最新でチェックアウトする、mastodonでgitがわからず意味不明だったが、その時に調べておいてよかった

1
git checkout $(git tag | sort -V | tail -n 1)

インストール

1
npm install

上記で少し時間がかかったが、終わったらcssとjsをビルドする

1
npm run build

opensslでシード値を出すらしい・・・(よくわかっていないw)

1
openssl rand -base64 128 | head -1

  

サービスとして登録

serviceの登録は以下の通り

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=Crowi
After=network.target mongod.service
[Service]
WorkingDirectory={配置したフォルダ}
EnvironmentFile=/etc/systemd/system/crowi.conf
ExecStart=/usr/bin/node app.js
[Install]
WantedBy=multi-user.target

設定も一緒に(ポートは自由に)

1
2
3
4
5
6
PORT=3500
NODE_ENV=production
MONGO_URI="mongodb://{USER_ID}:{USER_PASSWORD}@localhost/{DB_NAME}"
ELASTICSEARCH_URI=http://127.0.0.1:9200
PASSWORD_SEED="{opensslで出したやつ}"
FILE_UPLOAD=local

後は起動して確認後、自動起動にして終わり

1
2
sudo systemctl start crowi.service
sudo systemctl enable crowi

と、以上で導入が完了しました!
ElesticSearchを使用するには、設定の検索管理からBuildNowを押さなきゃいけないので注意です!
私は気づかずにエラーになってて無駄に時間くった・・・

共有