for admin - Groundpolis/Groundpolis GitHub Wiki
運用者向け Groundpolis 手引書
本書は、Groundpolis インスタンスを運用する方法をまとめた手引書である。
サーバー構築方法
本書では、Linux サーバーで動かすことを想定している。Windows や macOS での動作も確認されてはいるが、サポートはしていないので悪しからず。
1. 下ごしらえ
Groundpolis を運用する上で、いくつか必要なアプリケーションがある。次のソフトウェアを、お使いの OS での方法に則ってインストールすること。
- Node.js (16.x, 18.x)
- PostgreSQL (10以上)
- Redis
- Git
オプション
- Yarn
- 直接インストールしなくても使えるが、その場合は、本書の
yarnをnpx yarnに置き換えること。
- 直接インストールしなくても使えるが、その場合は、本書の
- ElasticSearch
- 導入することで、検索機能を高速化できる。
- FFmpeg
- 導入することで、動画のサムネイル生成など、いくつかのメディア関連の機能が使えるようになる。
2. ユーザー作成
専用のユーザーアカウントを作成する。無くても動作はするが、セキュリティの観点で望ましいとされる。
useradd -m -s /bin/bash groundpolis
3. Groundpolis のインストール
お使いの OS のシェルを使って次のように進める。
# 1. 先程作成したアカウントにログインする
sudo su - groundpolis
# 2. Groundpolis をダウンロードするべき場所に移動する。今回はホームディレクトリに作成する
cd ~
# 3. Git リポジトリから最新版の Groundpolis をクローンする
git clone -b master https://github.com/Groundpolis/Groundpolis.git
# 4. リポジトリに移動
cd Groundpolis
# 5. 必要なライブラリをインストールする
yarn install
4. 設定ファイルの編集
.config/example.ymlというファイルをdefault.ymlという名前で同フォルダにコピーする。- コピーしたファイルを開き、示される手順に従って編集する。
5. データベースの作成
sudo su postgresコマンドで PostgreSQL のスーパーユーザーになるcreateuser (4.で設定したDBのユーザー名) -Pコマンドを実行する- パスワードを設定するよう促されるので、 4.で設定したパスワードを指定する
createdb (4.で設定したデータベース名) -O (4.で設定したDBのユーザー名)コマンドを実行する
6. ビルドおよびデータベースの初期化
yarn build-productを実行し、ソフトウェアをビルドするyarn run initを実行し、データベースを初期化する
7. 起動
普通に起動するだけであれば、次のコマンドを実行する。
NODE_ENV=production yarn start
systemd を用いた起動
systemd を用いてデーモンとして常時起動することもできる。
-
systemd のサービス定義ファイルを作成
/etc/systemd/system/groundpolis.service -
ファイルを開き、編集する
編集例:
[Unit] Description=Groundpolis daemon [Service] Type=simple User=groundpolis ExecStart=/usr/bin/npm start WorkingDirectory=/home/groundpolis/groundpolis Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=syslog StandardError=syslog SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.targetCentOS で、1024 以下のポートを使用して Groundpolis を使用する場合、
ExecStart=/usr/bin/sudo /usr/bin/npm startに置き換えること。 -
systemd を再読み込みし、サービスを有効化
systemctl daemon-reload; systemctl enable groundpolis -
サービスを起動
systemctl start groundpolis
更新
Groundpolis の最新版がリリースされた場合、お使いのインスタンスを更新する必要がある。
Groundpolis Update Toolsを使う (推奨)
macOS/Linux環境向けだが、アップデートスクリプトを用いて簡単にアップデートできる。
使用する場合は、はじめにupdate.default.envファイルをupdate.envファイルにコピーして、中身を編集する必要がある。
普通にアップデートする場合は、Groundpolis のディレクトリ内にて
./update
するだけで良い。マイグレーションを伴うアップデートを行う場合は
./update migrate
とすること。その他の使い方は
./update -h
とすることで確認できる。
手動でアップデートする
コマンドを用いて手動でアップデートすることもできる。次に手順を示す。
git pullyarn installyarn build-productyarn migrate
トラブルシューティング
systemdでnpmが無いと言われる
npmのインストール場所を確認して、サービスファイル内のnpmのパスを書き換える必要があります。以下のいずれかのコマンドを試して、npmコマンドがインストールされている場所を調べます。
where npmwhich npmtype npm