0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

概要

社内Wikiを検討していました。面白そうなOSSがあったためご紹介します。
※画面とかは後々アップロードすると思う。

要件

要件とその理由は以下の通りです。

  • Markdown記法が使える:楽に記述できる環境が欲しい
  • クラウドサービスではない:クラウドサービス利用は会社での稟議が厳しい
  • ユーザ管理ができる:誰が何を書いたかがわかる
  • バックアップや復旧が容易(ソフトウェア or インフラにて):データが消えたら困る

候補

いくつか調査しました。どれを選んでも良いとは思いますし一長一短だなと思いました。

環境(マシン)

PromoxVEの上に以下スペックの仮想マシンを構築しました。

  • OS:Ubuntu 24.04 LTS
  • CPU:2 コア(host:Ryzen7 4750 ※MongoDBにはAVXが要)
  • メモリ:4 GB
  • ストレージ:32 GB

環境(ソフトウェア)

公式ドキュメントにも記載されています。私の環境では以下のバージョンで導入しました。

  • node.js 20.15.0
  • npm 10.7.0
  • yarn 1.22.22
  • MongoDB 4.4 以上 (6.0 以上を推奨)

導入作業(各種ソフトウェア導入)

Node.js

公式URL:https://deb.nodesource.com/

bash
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt-get install -y nodejs
sudo npm install -g yarn
sudo yarn global add turbo

ElasticSearch

本体のインストール

公式ホームページの通りに行えばインストールできる。JDKのインストール方法は以下で可能だが、場合によっては別途インストールが必要かもしれない。(java -versionでインストール済みか確認できる)
公式URL:https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html

bash
sudo apt install openjdk-17-jdk sudo bash -
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
sudo echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update && sudo apt install elasticsearch
dpkg -l elasticsearch #インストール後のバージョン確認
+++-==============-============-============-=====================================================
ii  elasticsearch  8.14.2       amd64        Distributed RESTful search engine built for the cloud

JVMヒープサイズの設定

ヒープサイズは、そこまで大きくなくてよい。

bash
sudo vim /etc/elasticsearch/jvm.options
# IMPORTANT: JVM heap size のコメントブロックの後に追記
# 以下は1GBのヒープサイズに設定
-Xms1G
-Xmx1G

TLSの無効化

bash
# 以下ファイルを編集する。
/etc/elasticsearch/elasticsearch.yml

# 編集個所は三か所
# 1. Xpackのセキュリティ設定無効化
xpack.security.enabled: true
↓
xpack.security.enabled: false

# 2.HTTPSのAPIを無効化
enabled: true
↓
enabled: false

# 3.クラスタノード間の相互認証を無効化
enabled: true
↓
enabled: false

ElasticSearchプラグインのインストール

bash
# analysis-kuromoji のインストール
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
# analysis-icu plugin のインストール
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu

ElasticSearchの起動

bash
sudo systemctl enable --now elasticsearch
# うまく起動しているか確認
$ curl http://localhost:9200/
{
  "name" : "localhost.localdomain",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "_na_",
  "version" : {
    "number" : "8.13.3",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "617f7b76c4ebcb5a7f1e70d409a99c437c896aea",
    "build_date" : "2024-04-29T22:05:16.051731935Z",
    "build_snapshot" : false,
    "lucene_version" : "9.10.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

MongoDBのインストール

公式URL:https://www.mongodb.com/docs/v6.0/tutorial/install-mongodb-on-ubuntu/

bash
curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \
   --dearmor
   
# Ubuntu 22.04(LTS)のコマンド
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo systemctl enable --now mongod

GROWIのインストール

bash
# git-lfsの導入
sudo apt update && sudo apt install git-lfs
sudo mkdir -p /opt/
cd /opt/
sudo git clone https://github.com/weseek/growi /opt/growi
cd /opt/growi
sudo git tag -l
=======
1.0.0-RC3
@growi/core-styles@1.0.0
@growi/core@1.0.0
@growi/pluginkit@1.0.0
v1.0.0
・
・
・
v7.0.7
v7.0.8
v7.0.9
v7.0.x-base
=====
# RC がついていない最新版を利用(上記だと7.0.9)
sudo git checkout -b v7.0.9 refs/tags/v7.0.9
cd /opt/growi
sudo yarn
# yarmでビルドを行う。そこそこ時間がかかる
sudo yarn app:build

起動確認:

bash
sudo \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
yarn app:server
# 以下のメッセージが表示されるまでしばらく待つ
{"name":"growi:crowi","hostname":"growi-server","pid":29259,"level":30,"msg":"[production] Express server is listening on port 3000","time":"2024-04-30T21:50:05.549Z","v":0}

GROWIへの接続

http://<hostname or ip address>:3000 にアクセスして初回セットアップ画面が出ることを確認する。
管理者ユーザを作成する。

systemdによる自動起動の設定(公式サイトと相違有)

公式で紹介されているsystemdのユニットファイルは、CentOSをもとに紹介されている。Ubuntuの場合、相違点があるのでサンプルとして記載しておく。

bash
sudo vim /etc/systemd/system/growi.service

Ubuntuの場合、ユニットファイルは以下のようになる。

bash:/etc/systemd/system/growi.service
[Unit]
Description=Growi
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/yarn app:server

[Install]
WantedBy=multi-user.target

・GROWIの起動

bash
sudo systemctl start growi

・自動起動の有効化

bash
sudo systemctl enable growi

インストールについてはここまで。以降は、作業していて気づいたことを記載する。

雑メモ:(気づいたこと)

・GROWIには、draw.ioで記入した図を挿入できる。ただしこれにはサーバがインターネットにつながっている必要がある。
・MongoDBは、AVXが必要。そのため、CPUがAVXに対応していないCPU(kvm64)だと起動に失敗する。(エラー文は失念したが、AIに確認するとWARNING: MongoDB 5.0+ requires a CPU with AVX support, and your current system does not appear to have that!と表示されるらしい)
・APIも対応しているので、今後使い方を考えようと思う。

参考URL

GROWI公式ドキュメント:
https://docs.growi.org/ja/admin-guide/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?