TL;DR
- Markdown記法で書けるオープンソースなWikiプラットフォーム GROWI のセットアップ方法です
- docker-composeでコンテナとして立ち上げるので,ホストの環境を汚しません
- growiのdocker-compose版(2019/03/29時点)では,elasticsearchのイメージタグがoss版になっていないので,修正点をメモします
Growi概要
- Growiは,数式,UML図などを含め,サイドバイサイドに編集できる高機能なWikiシステムです
- ユーザ認証,公開設定など,複数人での編集にも効果を発揮します
- リバースプロキシでhttps対応できます(簡単)
Dockerコンテナ群の立ち上げ
- X-Pack絡みでElasticsearchコンテナがエラーを吐くので,OSS版Elasticsearchを使用するとスムーズです
- growiサービスは,以下の手順で立ち上げることができます.
- docker-compose版のgrowiをgit cloneする
- docker-compose.ymlの記述をコンテナ環境に応じて修正する
- docker-compose upする
growi-docker-composeの取得
- growi-docker-composeをgit cloneします
git clone https://github.com/weseek/growi-docker-compose.git growi
設定情報(docker-compose.yml)の修正
- Growi本体の設定と,elasticsearchのコンテナイメージを若干修正します.
- 修正対象は以下の2つのファイルです
- Growiのdocker-compose構成ファイル(docker-compose.yml)
- ElasticsearchのDockerfile(elasticsearch/Dockerfile)
growi/docker-compose.yml
- (必須)ファイルアップロード先をローカル(Dockerホストのボリューム内)に設定し,MathJAXを有効化します
- # - FILE_UPLOAD=local # activate this line if you use local storage of server rather than AWS
- # - MATHJAX=1 # activate this line if you want to use MathJax
+ - FILE_UPLOAD=local # activate this line if you use local storage of server rather than AWS
+ - MATHJAX=1 # activate this line if you want to use MathJax
- (任意)Growiのデータを,Docker Volume管理の場所から,ローカルディレクトリに変更します
- Docker管理のボリュームを使う場合は,変更不要です
- - growi_data:/data
+ - ./growi_data:/data
- (任意)mongodbのデータ置き場を,ローカルディレクトリに変更します
- Docker管理のボリュームを使う場合は,変更不要です
- - mongo_configdb:/data/configdb
- - mongo_db:/data/db
+ - ./mongo/mongo_configdb:/data/configdb
+ - ./mongo/mongo_db:/data/db
- (任意)elasticsearchのデータ置き場を,ローカルディレクトリに変更します
- Docker管理のボリュームを使う場合は,変更不要です
- - es_data:/usr/share/elasticsearch/data
+ - ./es_data:/usr/share/elasticsearch/data
- (任意)前項の,ローカルディレクトリに変更したDocker Volumeは不要なので,削除します.
-volumes:
- growi_data:
- mongo_configdb:
- mongo_db:
- es_data:
growi/elasticsearch/Dockerfile
- (必須)oss版のelasticsearchのDockerイメージを使用するよう変更します
-FROM docker.elastic.co/elasticsearch/elasticsearch:6.6.1
+FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.6.1
docker-composeでコンテナの立ち上げ
docker-compose up
[注意] elasticsearchのデータ置き場を変更した場合
-
docker-compose up
より前に,下記のようにディレクトリを作り,elasticsearchコンテナからアクセスできるようにしておく必要があります- この設定を行っていないと,elasticsearchコンテナが
Failed to created node environment
例外を発行して再起動を繰り返してしまいます
- この設定を行っていないと,elasticsearchコンテナが
mkdir es_data
sudo chown -R 1000:1000 es_data
接続確認
- ブラウザで
localhost:3000
にアクセスし,growiの初期設定画面が見られることを確認します.- アクセス制限がlocalhost限定になっているので,他のホストから接続したい場合は,docker-compse.ymlのappコンテナのports設定を修正してください.
- ポートの変更も同じ場所(appコンテナのports設定)で対応できます.
- 初期設定画面
- ログイン画面
- https対応は,別途nginxコンテナを立ててリバースプロキシすると良いです