Skip to content
This repository has been archived by the owner on Jun 5, 2023. It is now read-only.

for admin

Ebise Lutica edited this page Jul 9, 2022 · 11 revisions

運用者向け Groundpolis 手引書

本書は、Groundpolis インスタンスを運用する方法をまとめた手引書である。

サーバー構築方法

本書では、Linux サーバーで動かすことを想定している。Windows や macOS での動作も確認されてはいるが、サポートはしていないので悪しからず。

1. 下ごしらえ

Groundpolis を運用する上で、いくつか必要なアプリケーションがある。次のソフトウェアを、お使いの OS での方法に則ってインストールすること。

  • Node.js (16.x, 18.x)
  • PostgreSQL (10以上)
  • Redis
  • Git

オプション

  • Yarn
    • 直接インストールしなくても使えるが、その場合は、本書の yarnnpx 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. 設定ファイルの編集

  1. .config/example.yml というファイルを default.yml という名前で同フォルダにコピーする。
  2. コピーしたファイルを開き、示される手順に従って編集する。

5. データベースの作成

  1. sudo su postgres コマンドで PostgreSQL のスーパーユーザーになる
  2. createuser (4.で設定したDBのユーザー名) -P コマンドを実行する
  3. パスワードを設定するよう促されるので、 4.で設定したパスワードを指定する
  4. createdb (4.で設定したデータベース名) -O (4.で設定したDBのユーザー名) コマンドを実行する

6. ビルドおよびデータベースの初期化

  1. yarn build-product を実行し、ソフトウェアをビルドする
  2. yarn run init を実行し、データベースを初期化する

7. 起動

普通に起動するだけであれば、次のコマンドを実行する。

NODE_ENV=production yarn start

systemd を用いた起動

systemd を用いてデーモンとして常時起動することもできる。

  1. systemd のサービス定義ファイルを作成

    /etc/systemd/system/groundpolis.service

  2. ファイルを開き、編集する

    編集例:

    [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.target

    CentOS で、1024 以下のポートを使用して Groundpolis を使用する場合、ExecStart=/usr/bin/sudo /usr/bin/npm start に置き換えること。

  3. systemd を再読み込みし、サービスを有効化

    systemctl daemon-reload; systemctl enable groundpolis

  4. サービスを起動

    systemctl start groundpolis

更新

Groundpolis の最新版がリリースされた場合、お使いのインスタンスを更新する必要がある。

Groundpolis Update Toolsを使う (推奨)

macOS/Linux環境向けだが、アップデートスクリプトを用いて簡単にアップデートできる。

使用する場合は、はじめにupdate.default.envファイルをupdate.envファイルにコピーして、中身を編集する必要がある。

普通にアップデートする場合は、Groundpolis のディレクトリ内にて

./update

するだけで良い。マイグレーションを伴うアップデートを行う場合は

./update migrate

とすること。その他の使い方は

./update -h

とすることで確認できる。

手動でアップデートする

コマンドを用いて手動でアップデートすることもできる。次に手順を示す。

  1. git pull
  2. yarn install
  3. yarn build-product
  4. yarn migrate

トラブルシューティング

systemdでnpmが無いと言われる

npmのインストール場所を確認して、サービスファイル内のnpmのパスを書き換える必要があります。以下のいずれかのコマンドを試して、npmコマンドがインストールされている場所を調べます。

  • where npm
  • which npm
  • type npm