Misskey

Misskey v13をDebian系で構築する

keywords
Misskey , misskey , みすきー , ミスキー , wls , wsl , debian , 構築 ,建てる , 立てる ,建て方, 立て方 , 方法 , やりかた , やり方 , インスタンス , instance , いんすたんす ,鯖 , さば , サーバー , さーばー , misky , Debian , debian , debian系 , linux , マニュアル , まにゅある , manual,v13,Misskeyインスタンス
date
Mar 19, 2023
slug
debian-misskeyv13
author
status
Public
tags
Misskey
summary
Misskey v13をdebian系osで構築する方法を解説します。
type
Post
thumbnail
https://raw.githubusercontent.com/misskey-dev/assets/main/banner-2.png
category
Misskey
updatedAt
Mar 16, 2024 03:03 PM

前提

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: localhost
  port: 6379
id: 'aid'
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です。