Misskey構築の手引き

このガイドではMisskeyのインストール・セットアップ方法について解説します。

一度使用を始めたインスタンスのドメイン・ホスト名は、決して変更しないでください!

前提条件

以下のソフトウェアがインストール・設定されていること

Debian/Ubuntuをお使いであれば、build-essentialパッケージをインストールしておくと良いです。

corepackが有効化されていること

sudo corepack enable

ユーザーの作成

Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。 Debianの例:

adduser --disabled-password --disabled-login misskey

Misskeyのインストール

sudo -iu misskey
git clone --recursive https://github.com/misskey-dev/misskey.git
cd misskey
git checkout master
git submodule update --init
NODE_ENV=production pnpm install --frozen-lockfile

設定

設定サンプルの.config/example.ymlをコピーし、default.ymlにリネームします。

cp .config/example.yml .config/default.yml

default.yml をファイル内の指示に従って編集します。

ビルドと初期化

次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。

NODE_ENV=production pnpm run build
pnpm run init

起動

お疲れ様でした。以下のコマンドでMisskeyを起動できます。

NODE_ENV=production pnpm run start

GLHF✨

systemdを用いた管理

systemdサービスのファイルを作成

/etc/systemd/system/misskey.service

エディタで開き、以下のコードを貼り付けて保存:

[Unit]
Description=Misskey daemon

[Service]
Type=simple
User=misskey
ExecStart=/usr/bin/npm start
WorkingDirectory=/home/misskey/misskey
Environment="NODE_ENV=production"
TimeoutSec=60
StandardOutput=journal
StandardError=journal
SyslogIdentifier=misskey
Restart=always

[Install]
WantedBy=multi-user.target

CentOSで1024以下のポートを使用してMisskeyを使用する場合はExecStart=/usr/bin/sudo /usr/bin/npm startに変更する必要があります。

systemdを再読み込みしmisskeyサービスを有効化

sudo systemctl daemon-reload
sudo systemctl enable misskey

misskeyサービスの起動

sudo systemctl start misskey

systemctl status misskeyと入力すると、サービスの状態を調べることができます。

Misskeyのアップデート方法

アップデートの際は必ずリリースノートを確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。

masterをpullし直し、インストール、ビルド、データベースのマイグレーションを行います:

git checkout master
git pull
git submodule update --init
NODE_ENV=production pnpm install --frozen-lockfile
NODE_ENV=production pnpm run build
pnpm run migrate

アップデート内容、およびデータベースの規模によっては時間がかかることがあります。

アップデートが終わり次第、Misskeyプロセスを再起動してください。

sudo systemctl restart misskey

ビルドや起動時にエラーが発生した場合は、以下のコマンドをお試しください:

  • pnpm run cleanまたはpnpm run clean-all
  • pnpm rebuild