nanasi-apps.xyz

Misskey v13をFedora 37で構築する

公開日: 2023/3/19
Misskey

前提

Memory 2GB以上 (swapもりもりでも可)

Fedora 37を使う (Redhat系列でも可能かもしれないけど保障はしません)

Cloudflare argo tunnel で公開する

ことを前提とします

Misskey v13の必須のものは

Node.js v18

Postgresql v15

Redis (バージョンは不明だがこの記事では7を入れる)

です。

準備

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/F-37-x86_64/pgdg-fedora-repo-latest.noarch.rpm
sudo dnf install -y postgresql15-server redis:7 ffmpeg nodejs:18
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable --now postgresql-15 redis
sudo systemctl start postgresql-15
sudo useradd misskey -m -s /sbin/nologin
sudo npm i -g corepack
sudo corepack enable

これが終わったら

sudo -u postgres psql

ってしてdbに接続して下のコードをコピペしてuser(role)とdbを作る

パスは任意のものを入力

create user misskey password '任意のパス';
create database misskey_db owner misskey;
/q

これが終わったら準備完了

構築

下記のコマンドを実行してください。

sudo su - -s /bin/bash misskey
git clone -b master --recursive https://github.com/misskey-dev/misskey.git --recurse-submodules
cd misskey
git checkout master
nano .config/default.yml

ってして下のdefault.ymlをコピペする

書き換えるところは適所書き換え

default.yml

url: https://example.tld/ #自分が使いたいドメインにする
port: 3000 
db:
  host: localhost
  port: 5432
  db: misskey_db
  user: misskey
  pass: example-misskey-pass #最初に設定したdbのユーザーのパスワード
redis:
  host: localhost
  port: 6379
id: 'aid'
proxyBypassHosts:
  - api.deepl.com
  - api-free.deepl.com
  - www.recaptcha.net
  - hcaptcha.com
  - challenges.cloudflare.com
signToActivityPubGet: true

configを書けたら下のやつをコピペで実行

内容はmisskeyに必要なものをインストールしてbuildしてdbを初期化するみたいな意味合いな感じかも

NODE_ENV=production pnpm install --frozen-lockfile && pnpm build && pnpm run init

これが終わったら下記のコマンドでmisskeyをstartさせる

NODE_ENV=production pnpm start

無事起動することを確認したらおk

Systemdでサービス化するには

まずmisskeyユーザーから抜けるために

exit

する

そうしたら

sudo nano /etc/systemd/system/misskey.service

って下の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

保存して

sudo systemctl daemon-reload

sudo systemctl enable --now misskey

ってやったら自動起動がオンになるはず。

sudo systemctl status misskey

これがactiveになっていたらおk。

Cloudflare argo tunnel で公開する方法はこちら