nanasi-apps.xyz

Misskey v13をDebian系で構築する

公開日: 2023/3/19
Misskey

前提

memory 4gb以上(swapは省く)

Debian系統のOSを使用していること

cloudflared (cloudflare argo tunnel)で公開する

ことを前提に進めていきます。

nginxの設定などを省いています。

準備

packageをインストールします

sudo apt update

sudo apt install -y curl git build-essential ca-certificates gnupg2 lsb-release

sudo apt-get update

sudo apt-get install -y ca-certificates curl gnupg

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

NODE_MAJOR=20

echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
	
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt update 

sudo apt install -y nodejs redis ffmpeg postgresql-common

sudo corepack enable

sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15

終わったらしっかりインストールできているかを確認します

sudo systemctl enable --now redis-server

sudo systemctl enable --now postgresql
node -v

こうやって v18.xx.xみたいな文字列が出てきたらおkです

次に下記のコマンドを実行してユーザーを作成します。

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

これで色々聞かれるのですがenterでおkです

次にdbを作成します

sudo -u postgres psql 

このコマンドを入力したらこのサイトに行ってサーバーのスペックを入力してください。

Number of Connections という項目は100くらいにしておくのがおすすめです。

入力して generate を押すと画像のようになると思うのでALTER SYSTEMを選択してcopyしてターミナルに貼り付けてください。

Notion image

これが終わったら

create user misskey with 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

するとeditorが開くので下記の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: '
  port: 6379
id: 'aidx'
proxyBypassHosts:
  - api.deepl.com
  - api-free.deepl.com
  - www.recaptcha.net
  - hcaptcha.com
  - challenges.cloudflare.com
signToActivityPubGet: true

これが終わったら下記のコマンドでパッケージのインストール、build、dbの初期化を終わらせます。

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

これが終わったら多分misskey自体を起動できるようになります。

下記のコードで起動できます。

NODE_ENV=production pnpm run start

listening to port 3000~~~~ みたいなのが出たら起動できています

systemdで自動起動できるようにさせるには

exit

これで自分のユーザーに戻ります

sudo nano /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

保存して

sudo systemctl daemon-reload

sudo systemctl enable --now misskey

としたら自動起動がオンになるはずです

sudo systemctl status misskey

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

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