ITよろづや

ITの参考になる情報を備忘録代わりに残していきます

Crowi-plusからGrowiへ(wikiサーバ)のデータ移行手順

無料で使えるWikiサーバのCrowi-plusの後継であるGROWIですが、すでにCrowiを使っている方が後継のGROWIへ移行することができます。


ログはないですが、手順は簡単で基本的には以下のURLの手順で移行が完了します。ただ、一部、手順が省略されている部分もあるので、何も知らずにやるのはちょっと大変かもしれません。

Crowi オンプレミスからの移行


以下は概要の抜粋です。

オフィシャル オンプレミス v1.6.x から、GROWI オンプレミス v3.x への移行を想定
MongoDB は既存のものをそのまま利用することを想定
Redis は既存のものをそのまま利用することを想定、もしくは利用しなくても構わない
v3.0.7 以降では、REDIS_URL が設定されていない場合は MongoDB をセッションストアとして利用する
ElasticSearch サーバーはバージョンアップとプラグイン追加が必要となる

 

事前に、node.js は 8.x にアップグレードとyarnの新規インストールか、アップグレードが必要です。これをしていないと、作業を進める時にエラーが出ます。


後、ElasticSearch のバージョンアップ及びプラグイン追加もやっておくといいですね。基本は以下の手順でOKです。

# cd growi
# install dependencies and build client
# yarn

そして、他にやっておいたほうがいいのは、Crowiの自動起動を無効にすることと、サービスと自動起動設定を別途しておくことです。イメージで言うと、新しくインストールしたGrowiを既存のMongoDBに接続させるだけです。


環境変数の定義にすすめます。

vi /etc/sysconfig/growi

以下の内容をコピー&ペースト。
PORT=3000
NODE_ENV=production
MONGO_URI="mongodb://localhost:27017/growi"
REDIS_URL="redis://localhost:6379"
ELASTICSEARCH_URI="http://localhost:9200"
#SECRET_TOKEN=
PASSWORD_SEED="`openssl rand -base64 128 | head -1`"
FILE_UPLOAD=local
[wq!]で保存。

-------------

続いて自動起動の設定です。

vi /etc/systemd/system/growi.service

[Unit]
Description=Growi
After=network.target mongod.service

[Service]
WorkingDirectory=/opt/growi
EnvironmentFile=/etc/sysconfig/growi
ExecStart=/usr/bin/npm start

[Install]
WantedBy=multi-user.target

上記をコピー&ペーストし、[wq!]で上書き保存します。設定ファイルを読み込み直し。

systemctl daemon-reload

そして、起動起動設定を行います。

systemctl start growi
systemctl enable growi
systemctl list-unit-files | grep growi
growi.service                                 enabled


この手順でそのままGROWIのURLにアクセスすると画面が表示されないので、一旦、サーバを再起動すると接続できるはずです。ちなみに、移行の場合レイアウトが崩れるなど、他にも影響があるかもしれません。