1.GROWI環境構築目標
- AWS EC2環境へインストールします
- OS : Amazon Linux 2
- インスタンス : micro
- 必須:ElasticSearch, Mongo
- 別途:PlantUML
- 利用想定
- 最大3名以下のクローズドな使い方
- インストール方法
- Dockerを使わずに、インストールしていきます
レガシーですが、それじゃ面白くないので...- インストール中は、スペックを上げて作業しています(
small)- ビルドとかメモリ使いそうだし
1-1.インストール時のバージョン
| name | version |
|---|---|
| OS | Amazon Linux 2 |
| GROWI | 3.6.3 |
| node.js | 12.14.0 |
| openjdk | 1.8.0_222 |
| MongoDB | 3.6.16 |
| PlantUML | 1.2019.13 |
| Graphviz | 2.42.2 |
2.まずはGROWI Docsを見ながら流れを確認
- CentOS 7環境へのインストール手順があるので、基本はそれを踏襲します
- バージョンは、同じく公開されてる
docker-composeのバージョンを踏襲していきます - このマニュアルでは、PlantUMLはインストールせずに外部のサーバーを指しているので、別途自前でインストールします
- この内容は公式マニュアルに記載されていない内容ですので、動作保証はしません
3.node.js, npm, yarnのインストール
- NodeJS 12.xのインストール
- 公式マニュアルの手順をそって入れます
- GitHub - nodesource/distributions: NodeSource Node.js Binary Distributions
- 事前準備
yum install gcc-c++ make
- node.jsのインストール
curl -sl https://rpm.nodesource.com/setup_12.x | sudo bash -sudo yum install nodejs
- yarnのインストール
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.reposudo yum install -y yarn
4.Elasticsearchのインストール
- OpenJDKのインストール
sudo yum install java-1.8.0-openjdk
- Elasticsearch 6.xのインストール
- 事前準備
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch-
sudo vi /etc/yum.repos.d/elasticsearch.repo
- インストール
sudo yum install elasticsearch
- 割り当てメモリの設定
sudo vim /etc/elasticsearch/jvm.options
- サービス化と自動起動
sudo systemctl start elasticsearchsudo systemctl enable elasticsearchsudo systemctl status elasticsearch
- プラグインのインストール
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromojisudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
5.MongoDBのインストール
- 事前準備
-
sudo vi /etc/yum.repos.d/mongodb-org-3.6.repo
-
- インストール
sudo yum install -y mongodb-org
- サービス化と自動起動
sudo systemctl start mongodsudo systemctl enable mongodsudo systemctl status mongod
- MongoDBへの認証設定とユーザーの作成、パスワードの設定
- 長いので先駆者記事を参照
- GCPにGrowiを構築する 06 MongoDBのユーザ設定 | Qrunch(クランチ)
- 設定したユーザー・パスワードは、growi起動時のオプションで利用します
6.PlantUMLのインストール
- JREのインストール
sudo yum install java-1.8.0-openjdk-devel
- graphvizのインストール
- 事前情報
-
2.30以後のバージョンがcentos向けにパッケージされていない - 調べる限り、2018年ごろに消えている?
- ソースからmakeする必要
-
2.39,2.40はPlantUMLとの相性が良くないのでそれ以外- フォーラムによれば、
2.40.1は直っている
- フォーラムによれば、
-
- 事前準備
sudo yum install expat-devel autoconf make automake libtool libtool-ltdl yacc byacc flex bison libtool-ltdl-devel
- インストール(再現チェックしてません)
git clone https://gitlab.com/graphviz/graphviz.gitgit checkout -b 2.42.2 refs/tags/2.42.2cd ./graphviz./autogen.sh./configure --prefix=/opt/graphvizsudo make-
sudo make install- この対応により、PlantUMLに必要なDOTが下記に配置されます
/opt/graphviz/bin/dot
- 事前情報
- PlantUmlのインストール
- 事前準備
sudo yum install tomcat maven
- インストール
cd /opt/git clone https://github.com/plantuml/plantuml-server.gitgit checkout -b v1.2019.13 refs/tags/v1.2019.13
- コマンド実行
mvn jetty:run -DGRAPHVIZ_DOT=/opt/graphviz/bin/dot
- サービス化
-
sudo vi /etc/systemd/system/plantuml.service[Unit] Description=plantuml [Service] WorkingDirectory=/opt/plantuml-server ExecStart=/usr/bin/mvn jetty:run -DGRAPHVIZ_DOT=/opt/graphviz/bin/dot [Install] WantedBy=multi-user.target - この対応によりPlantUML-serverが
localhost:8080で立ち上がっています
-
- 事前準備
7.GROWIの実行
- コマンド実行
-
sudo MONGO_URI=mongodb://growiuser:password@localhost:27017/growi ELASTICSEARCH_URI=http://localhost:9200/growi PLANTUML_URI=http://localhost:8080 PASSWORD_SEED=passwordseed FILE_UPLOAD=mongodb npm start- オプションとして下記を含めています
- MongoDBの接続先(ID/PWを含む)
- ElasticSearchの接続先
- PLANTUML_URIの接続先
- PASSWORD_SEEDは適当なランダム値がよい
- FILE_UPLOADはGROWIにファイルを上げる時の保存先、S3やローカルへの設定が可
- オプションとして下記を含めています
-
- サービス化
- systemd による自動起動 | GROWI Docs
- 接続先情報や追加のオプションは適時変更
8.リバースプロキシとHTTPS対応
- GROWIは
localhost:3000, PlantUMLはlocalhost:8080/plantumlで実行しています - これらを443で応答できるようにリバースプロキシの設定をし、証明書を適応することでHTTPS対応が行えます
- また、異なるサーバーへ一部サービスを逃がす場合はそれらもHTTPS対応しておいた方がよいかもしれません