日々なんかしらメモしたくなることが多く、なにかいいメモ帳ないかなぁと思いながら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)
|
インストール
上記で少し時間がかかったが、終わったらcssとjsをビルドする
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を押さなきゃいけないので注意です!
私は気づかずにエラーになってて無駄に時間くった・・・