Ubuntu Server 20.04 LTSにGROWIをインストール


はじめに

公式のドキュメントが古いバージョンで書かれていたため,最新版で作成.

TL;DR

Ubuntu Server 20.04 LTSにオープンソースのwikiツールであるGROWIをインストールする.
必要最低限の設定であり,ローカルネットワーク内での利用を想定している.
Ubuntu18.04にGrowiをインストールを参考にして環境構築を行った.

  1. Node.js 14.x, yarnをインストール
  2. Elasticsearch 7.xをインストール
  3. MongoDB 4.xをインストール
  4. GROWIをインストール

1. Node.jsとnpm,yarnのインストール

Ubuntu 20.04にNode.jsをインストールする方法 | DigitalOceanを参考にしてインストール

$ cd ~
$ curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
$ sudo bash nodesource_setup.sh
$ sudo apt install nodejs

// CHECK
$ nodejs -v
$ npm -v

npmを使ってyarnをインストール

$ sudo npm install -g yarn

// CHECK
$ yarn -v

2. Elasticsearchのインストール

Install Elasticsearch with Debian Package | Elasticsearch Guide [7.17] | Elasticを参考にインストール

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
$ sudo apt-get install apt-transport-https
$ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
$ sudo apt-get update && sudo apt-get install elasticsearch

// CHECK
$ dpkg -l | grep elasticsearch

Elasticsearch に割り当てるメモリを調整

$ sudo vim /etc/elasticsearch/jvm.options
// Xms256m
// Xmx256m
// ↑の2行を追加

Elasticsearchの自動起動の有効化および動作確認

$ sudo systemctl start elasticsearch
$ sudo systemctl enable elasticsearch

// CHECK
$ sudo systemctl status elasticsearch

GROWI に必要な Elasticsearch プラグインのインストール

// CHECK PATH OF elasticsearch-plugin
$ dpkg -L elasticsearch | grep bin | grep plugin

$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu

3. MongoDBのインストール

MongoDBを参考にインストール

$ wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
$ sudo apt update
$ sudo apt install -y mongodb-org=4.4.13 mongodb-org-server=4.4.13 mongodb-org-shell=4.4.13 mongodb-org-mongos=4.4.13 mongodb-org-tools=4.4.13

バージョンの固定

$ echo "mongodb-org hold" | sudo dpkg --set-selections
$ echo "mongodb-org-server hold" | sudo dpkg --set-selections
$ echo "mongodb-org-shell hold" | sudo dpkg --set-selections
$ echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
$ echo "mongodb-org-tools hold" | sudo dpkg --set-selections

4. GROWIのインストール

最新版のインストール(2022/03/23時点の最新版はv4.5.15)

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

// CHECK VERSION
$ sudo git tag -l

$ sudo git checkout -b v4.5.9 refs/tags/v4.5.9
$ sudo yarn

5. 起動確認

$ sudo MONGO_URI=mongodb://localhost:27017/growi ELASTICSEARCH_URI=http://localhost:9200/growi PASSWORD_SEED=(任意の文字列) npm start

数分待つと以下のように表示される.

> [email protected] start /opt/growi
> yarn app:server

http://(IP address):3000に接続して起動確認ができたら終了

最後に

今回はこの記事を作成するためにdockerやherokuを利用しない環境構築を行った.
それらを利用した方が楽にできると思われる.

おまけ

別のwikiツールに移植するときなどのために,以下を参考にしてGROWIの記事をMarkdownで出力するコードを作成したいと考えている.
Growi Pathに従ってMarkdownファイルをエクスポートする方法