社内wikiで無料でオンプレで使うために探した結果growiが良さそうだったのでインストールして使用する事にした。
growiはオープンソースで社内、ローカル環境で無料で利用できる、markdown形式で使用することができる社内wikiです。
私にとっては機能が多すぎず少なすぎずちょうどいいです。
公式ページでインストール方法が更新されたため、
この記事は参考程度をお勧めします。
最新情報は公式ページを参考ください。
社内のドキュメント類の共有にストレージサーバーはありますが。
かといって画像がただあればいいという話ではない。
分かりやすくするためには画像とテキストが必要になる。
そのため何かないかな?と考え、notion, miro ,discode。もしくはnext.jsで自分で作る方が良いのではまで、考えていましたが、
正直難しい。機能が多すぎると使うことができない人が現れる。
「高機能・なんでもできますは」人によっては「複雑・何もできない」になってしまいます。今回は最低限の機能で良い。
見た目で使い易いと直感で感じる物を選びました。
私は、見た目というのはかなり重要な要素だと思っています。
ダントツで他のソフトと比べて見やすかったですね。
デモサイトがあるので確認してみてください。
node -v
npm -v
yarn -v
curl http://localhost:9200
java -version
mongo -version
公式に沿って行いたいところですが、情報が古い...orz
dockerはかなりドキュメントが揃っていて、力を入れている。
dockerが簡単でいいんだよね...
docker慣れていないのもあるし、docker管理はちょっと....
ということでdockerは使わずインストールを行います。
導入方法だけ知りたい方は目次の「最終的に何をしたのか?」を確認ください。
私の場合初めから入っていましたが、ver18で動かなかったので16に下げました。(ver18で動かなかったのはたぶん私の問題です。)
そのため、アンインストールをして、再度ver16インストールしました。
ver18対応と公式や、ソースコード内に書かれているのでver18で大丈夫だと思います。
#アンインストール
dnf remove nodejs
#一旦有効なバージョンをリセット
dnf module reset nodejs
#nodejsの確認
dnf module list nodejs
#nodejs 16を有効化
sudo dnf module enable nodejs:16 -y
#nodejs 16をインストール
dnf module -y install nodejs:16
バージョンを確認
node -v
v16.19.1
npm -v
8.19.3
yarnも必要なようということなので、追加します。ここは公式のまま進めていきます。
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install -y yarn
そして起動確認。
yarn -v
1.22.19
ここかなりはまった。使った事無いよ。
さらに古いと言われているし...
よくわからないから
公式の言われるがままに進めます。
要はダウンロードして、解凍するだけですね。
version8で動かなかったので7で実行してください。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.7.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.7.0-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-8.7.0-linux-x86_64.tar.gz.sha512
tar -xzf elasticsearch-8.7.0-linux-x86_64.tar.gz
cd elasticsearch-8.7.0/
そして「elasticsearch-8.7.0」のフォルダーを移動させました。 「/opt/elasticsearch-8.7.0」 これを起動させるためにjavaが必要になるのでインストールする。
java 11をインストールし起動確認をします。
dnf install java-11-openjdk-devel
#バージョン確認
java -version
##以下のように出力される。
openjdk version "11.0.18" 2023-01-17 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.18.0.10-2.el8_7) (build 11.0.18+10-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.18.0.10-2.el8_7) (build 11.0.18+10-LTS, mixed mode, sharing)
/opt/elasticsearch-8.7.0/bin/elasticsearch
起動できないという問題に直面しました。
おそらくこの二つが原因だと思われる。
そのため所有者を変更します。ここでは「demo」というユーザーに置き換えます。
chown -R demo:demo elasticsearch-8.7.0
そしてルートユーザーを抜けdemoユーザーでアクセスします。
su demo
そして再度起動してみたらできた。
/opt/elasticsearch-8.7.0/bin/elasticsearch
公式で「GROWI に必要な Elasticsearch プラグインのインストール」と書いてある。
pluginを確認した感じ日本語検索関係と、顔文字関係のようです。
これらは任意ではなく必須で、追加しないと正常にgrowiとElasticが連結できないようです。
これに関しては公式通りやりました。 viでファイルを作成
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
インストール実行
sudo yum install -y mongodb-org
起動や自動起動
#起動
sudo systemctl start mongod
#自動起動
sudo systemctl enable mongod
#正常起動を確認
sudo systemctl status mongod
ここでGROWIをインストールします。これも公式通りです。
一部バージョンを「3.4.2」から「6.0.9」にしています。
ほとんど公式通りです。
sudo mkdir -p /opt/
cd /opt/
sudo git clone https://github.com/weseek/growi /opt/growi
cd /opt/growi
# タグの確認
sudo git tag -l
...
v3.3.7
v3.3.8
v3.3.9
v3.4.0
v3.4.1
v3.4.2
...
# RC がついていない一番下の物を使う2023年4月現在「6.0.9」
sudo git checkout -b v.6.0.9 refs/tags/v6.0.9
必要なパッケージyarnでインストール
cd /opt/growi
sudo yarn
最後に起動をします。
sudo \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
npm start
growiを起動する前にMongoDBとElasticsearchが起動している必要がある。
リバースプロキシの設定をしていますが、3000ポートでそのまま使用する予定なので実行していません。
ローカル環境なのでとりあえず、ファイヤーウォールを無効化しました。
systemctl stop firewalld
ファイヤーウォールを無効化は結構危険なので、ポート解放を実行してください。
#ポートを解放
firewall-cmd --zone=public --add-port=3000/tcp
#永続化はpermanentを付ける
firewall-cmd --zone=public --add-port=3000/tcp --permanent
#最後に設定の再読み込み
firewall-cmd --reload
初めは公式通りの設定をして、起動することができましたが、自動起動のsystemの設定を、公式でやって見たができなかった。
色々やっている内に起動が出来なくなってしまった。
node.jsのバージョンが18だったので16に下げました。
nodejsのバージョン対応はpackage.jsonに記入されていますので、できるはずなんですが...
#一番下
"engines": {
"node": "^14 || ^16 || ^18",
"npm": ">=6.14 <7 || >=8.1 < 9",
"yarn": ">=1.22 <2"
}
Elasticsearchが起動できないためアンインストールをし、手動でダウンロードをしていきました。
javaのエラーが頻繫に発生してしまい分からなかった。
あとは「ダウングレードして」というエラーも起きたのだが レポジトリでダウンロードするのは良くなかったみたい。
手動でダウンロードした。
ルートでアクセスしていたのでElasticsearchのファイル所有者がrootになっていたので所有者を一般ユーザーに変更した。
自動起動をするため、systemにサービスを追加します。
ここはあまり詳しくないのでそのまま載せます。
使用される際は「User」と「Group」を変更してください。
作成したのは2つ「elasticsearch.service」,「growi.service」
[Unit]
Description=Elasticsearch
[Service]
Type=simple
WorkingDirectory=/opt/elasticsearch-8.7.0
ExecStart=/opt/elasticsearch-8.7.0/bin/elasticsearch
Restart=always
User=hoge
Group=hoge
[Install]
WantedBy=multi-user.target
ExecStartがnpmで「run app:server」で起動です。
このようにしないとビルドが入って時間がかかるので
「run app:server」とすることでgrowiビルド無しで起動します。
もちろん一度はビルドを行う必要がありますが。
[Unit]
Description=Growi
After=network.target elasticsearch.service
After=network.target mongod.service
[Service]
WorkingDirectory=/opt/growi
Environment=PORT=3000\
MONGO_URI=mongodb://localhost:27017/growi\
ELASTICSEARCH_URI=http://localhost:9200/growi
ExecStart=/usr/bin/npm run app:server
[Install]
WantedBy=multi-user.target
systemctl start elasticsearch.service
systemctl start growi.service
起動確認はgrowiが3000ポートを使う設定なのでポート使用状況をみて、正常に起動しているのかを判断する。
lsof -i:3000
enableにするだけですが
systemctl enable elasticsearch.service
systemctl enable growi.service
上のものは奮闘記になります。
ほとんど同じなので繰り返しになりますが、以下インストールを最終的にどうしたのかをまとめます。
#アンインストール
dnf remove nodejs
#一旦有効なバージョンをリセット
dnf module reset nodejs
#nodejsの確認
dnf module list nodejs
#nodejs 16を有効化
sudo dnf module enable nodejs:16 -y
#nodejs 16をインストール
dnf module -y install nodejs:16
バージョンを確認
node -v
v16.19.1
npm -v
8.19.3
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install -y yarn
そして起動確認。
yarn -v
1.22.19
java 11をインストールし起動確認をします。
dnf install java-11-openjdk-devel
#バージョン確認
java -version
##以下のように出力される。
openjdk version "11.0.18" 2023-01-17 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.18.0.10-2.el8_7) (build 11.0.18+10-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.18.0.10-2.el8_7) (build 11.0.18+10-LTS, mixed mode, sharing)
7.17.9をダウンロードして解凍
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.9-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.9-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-7.17.9-linux-x86_64.tar.gz.sha512
tar -xzf elasticsearch-7.17.9-linux-x86_64.tar.gz
cd elasticsearch-7.17.9/
プラグインのインストール
sudo .bin/elasticsearch-plugin install analysis-kuromoji
sudo .bin/elasticsearch-plugin install analysis-icu
ファイルを/opt/内に移動させ、ファイル所有者をrootから変更
各自の環境に合わせて「hoge」を変更してください。
chown -R hoge:hoge /opt/elasticsearch-7.17.9/
レポジトリ追加
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
インストール実行
sudo yum install -y mongodb-org
起動や自動起動の設定
#起動
sudo systemctl start mongod
#自動起動
sudo systemctl enable mongod
#正常起動を確認
sudo systemctl status mongod
3000ポート解放
firewall-cmd --zone=public --add-port=3000/tcp
GROWIをダウンロードし、6.0.9を選択
sudo mkdir -p /opt/
cd /opt/
sudo git clone https://github.com/weseek/growi /opt/growi
cd /opt/growi
sudo git checkout -b v.6.0.9 refs/tags/v6.0.9
必要なパッケージyarnでインストール
cd /opt/growi
sudo yarn
growiの起動。
sudo \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
npm start
2つのファイルを作成「elasticsearch.service」,「growi.service」
[Unit]
Description=Elasticsearch
[Service]
Type=simple
WorkingDirectory=/opt/elasticsearch-7.17.9
ExecStart=/opt/elasticsearch-7.17.9/bin/elasticsearch
Restart=always
User=hoge
Group=hoge
[Install]
WantedBy=multi-user.target
ExecStartを「yarn」から「npm」に変更し「run app:server」で起動させる
[Unit]
Description=Growi
After=network.target elasticsearch.service
After=network.target mongod.service
[Service]
WorkingDirectory=/opt/growi
Environment=PORT=3000\
MONGO_URI=mongodb://localhost:27017/growi\
ELASTICSEARCH_URI=http://localhost:9200/growi
ExecStart=/usr/bin/npm run app:server
[Install]
WantedBy=multi-user.target
systemctl start elasticsearch.service
systemctl start growi.service
起動確認はgrowiが3000ポートを使う設定なのでポート使用状況をみて、正常に起動しているのかを判断する。
lsof -i:3000
systemctl enable elasticsearch.service
systemctl enable growi.service
アカウント作成時、パスワードが8桁以上必要なのでアカウントが作れない現象が発生した。最初分からなかった。
growiが起動できました。結構時間がかかって大変でしたね...
公式のページが古い点は大変だったが、使ってみてるけどかなりいい。
質問や、間違いがありましたら、お気軽にどうぞ
※お名前とコメントの内容を入力してください。
※全てこのブログ上に公表されます。
※許可なく管理者によって修正・削除する場合がございます。 詳しくはプライバシーポリシーを参照ください