18. 1月 2019 · Write a comment · Categories: GROWI · Tags: ,



はじめに

社内で技術共有をする時にもともとはCrowiを使っていました。
Crowiはとてもよくできた社内Wikiで、1年ほど前にお試しで導入していました。
最初お試しで導入のつもりが気が付いたら無くてはならないものになることってよくあると思うのですが、
自分のチームにとってCrowiがまさにその状態でした。
それがまさかあんなことになるとは。。。


悲劇は突然起きた

今年の正月休み明けに、社内で使っているサーバーを再起動しました。
まあ、毎年恒例です。
その際に、Crowiが入っているサーバーのHDDがお亡くなりになりました。
インフラ担当のエンジニアから復旧はできないと言われました。
Crowiは気軽な感じでチームで使い続けていたためバックアップを全くとっていませんでした。
この1年貯めてきたナレッジがすべて泡となって消えた瞬間でした。
チームのメンバーには土下座しても許してもらえないレベルの出来事をはじめて経験しました。
笑って許してくれたチームメンバーには本当に感謝しています。


Crowi → GROWI への乗り換え

Crowiに貯めてきたナレッジはすべて消えてしまいましたが、Crowi無しでこの後業務をしていくのは非常に効率が悪いということでゼロから立てることにしました。
その際、Crowiをやめて以前から興味のあったGROWIに移行することにしました。
この時はちょっと権限を使って有無を言わさずGROWIにさせてもらいました。


設定方法


設定方法は基本的に公式に書いてある通りに進めていけば問題ないです。
今回は社内サーバーなのでHerokuではなくオンプレです。
nodeとnpmは入っている前提で。
nodeのバージョンが8.xでなければいけないとのことなのでnを使ってバージョンをv8.11.4にしました。
yarnが必要ですが、インストールされていなかったのでインストールしました。

npm install -g yarn

MongoDBは指定の3.xがインストールされていたのでそのまま使いました。
あとはgithubからcloneしてきてyarnでビルドします。

cd /opt
git clone https://github.com/weseek/growi.git
cd growi
yarn

yarnが成功したら起動用のスクリプトを作ります。

vi growi.sh

export PORT=2019 # 起動したいポートを指定。デフォルトは3000ですが空いてなったので。
export PASSWORD_SEED=crowigrowi # パスワードのハッシュ生成に使います。外部公開しないので適当につけてしまいました。
export MONGO_URI=mongodb://localhost:27017/growi # mongoDBへのURIです。同サーバー内にしたのでlocalhostでポートはmongoDBデフォルトの27017です。
export ELASTICSEARCH_URI=http://localhost:9200 # 検索にElasticSearchを使う場合は指定
export FILE_UPLOAD=local # ファイルのアップロード先を指定。今回はローカルで。
npm run server:prod # GROWI起動コマンド

このまま起動するとターミナルを閉じたときに停止してしまうので、pm2を使って永続化させます。

npm install -g pm2

起動します。

pm2 start growi.sh

まとめ

今回は改めてバックアップの重要性を思い知らされました。
当たり前の話ですが、意外と皆さんにも心当たりがあるのではないでしょうか。
取り返しのつかないことになる前にやっときましょう…