経緯
Pukiwiki をデプロイしていた VM が突然死し,早急に Wiki を復旧する必要がありました.
組織内でオンプレからクラウドに移行する動きがあったこと,そもそも Pukiwiki ってどうなの?という話などから,試しに Growi で Wiki を立ち上げてみることにしました.
Growi
Markdown で記述できるオープンソースの Wiki です.Crowi から派生したプロジェクトで,日本人の方が開発しているようです.
https://growi.org/
ソースコードは Github 上に公開されています.
https://github.com/weseek/growi
試しに Github のページを開いたところ,Heroku Button を発見しました.当時の私は一刻も早く Wiki を移行させたかったので,とりあえず Heroku にデプロイしてみた次第です.
Heroku
PaaS (Platform as a Service) の形態で提供されているクラウドサービスで,アプリケーションをプラットフォーム上にデプロイできます.
https://jp.heroku.com/
登録
アカウントを持っていなかったので,上記リンクから新規登録しました.基本的には無料で利用できますが,Heroku の醍醐味 (?) であるアドオンを使うにはクレジットカードの登録が必要です.
Growi は mLab MongoDB と Bonsai Elasticsearch という 2 つのアドオンを使用しています.
Heroku では各アドオンの利用に対しても課金されますが,今回は無料枠内で構築できました.
デプロイ
Github のページ で「Deploy to Heroku」をクリックするだけです.Heroku 上のアプリ名称等を入力していくだけで,ほぼ自動的にアプリをデプロイできます.
PukiWiki からの移行
Wiki を 1 から作るのであれば,以上の手順で構築完了です.
私の場合は Pukiwiki のデータを移す必要があったので,参考にした記事等を載せていきます.
基本的には上記リンクの通りにできましたが,私の環境ではワンライナーのパーサだと不十分でした.実際に使用したコードは以下の通りです.
水平線や改行コードの処理を修正しています.
find wiki_mod/wiki -type f | xargs gsed -i -e 's/ \[#[0-9a-z]\+\]$//g' -e 's/^\*\*\*/###/g' -e 's/^\*\*/##/g' -e 's/^\*/#/g' -e 's/^.*----.*$/___/g' -e 's/^---/ -/g' -e 's/^--/ -/g' -e 's/^\(\s*\)-\([^ ]\)/\1- \2/g' -e 's/^\(\s*\)+\([^ ]\)/\1+ \2/g' -e 's/&br;/<br>/g' -e 's/#br//g' -e 's/^#pre{*/```/g' -e 's/^}}*/```/g' -e 's/~/ /g' -e 's/%%/~~/g' -e "s/^\/\/.*$//" -e "s/^\#lsx/`echo -ne '\u0024'`lsx()/g"
おまけ
Growi について調べながら記事を書いていると,GROWI.cloud というサービスを発見しました.2018年8月27日からクローズドβテスターの募集を開始したようです.