🔧

Ubuntuに開発用Misskey鯖を立ててみる

2023/12/09に公開

備忘録もかねてメモ。
なんもわかってないのでいらない操作とかあるかも。

リポジトリの用意

MisskeyのRepoからForkし、git cloneしてローカルに持ってくる。
git submodule update --initして、Fluent Emojisとかアセット類を持ってくる。

依存関係をいろいろ

諸々インストール

sudo apt update
sudo apt upgrade
# build-essentialのインストール
sudo apt install build-essential -y
# Node.jsのインストール
sudo apt 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

sudo apt update
sudo apt install nodejs -y

自分の場合はここで

dpkg-deb: エラー: ペースト subprocess was killed by signal (Broken pipe)
処理中にエラーが発生しました:
 /var/cache/apt/archives/nodejs_20.5.1-deb-1nodesource1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

と怒られたので、sudo apt remove libnode-devで解決した。

# npmのインストール
sudo apt install npm

自分の場合はここでも

インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 npm : 依存: node-agent-base しかし、インストールされようとしていません
       依存: node-aproba しかし、インストールされようとしていません
       依存: node-archy しかし、インストールされようとしていません
       依存: node-cacache しかし、インストールされようとしていません
       依存: node-chalk しかし、インストールされようとしていません
       依存: node-cli-table3

と怒られたので、sudo aptitude install npmで全部yしていったら通った。

# PostgreSQL
wget https://salsa.debian.org/postgresql/postgresql-common/raw/master/pgdg/apt.postgresql.org.sh
sudo sh apt.postgresql.org.sh -i -v 16
sudo /etc/init.d/postgresql restart
# Redis
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 redis -y
sudo systemctl start redis

PostgreSQLをセットアップする

sudo -u postgres psql
CREATE ROLE misskey LOGIN CREATEDB PASSWORD 'hoge';
CREATE DATABASE mk1 OWNER misskey;

でユーザーとデータベースを作る。
ここではユーザー名はmisskey、パスワードはhoge、データベース名はmk1としている。
\qで抜ける。

npmパッケージをインストール

cloneしたリポジトリにcdし、

sudo corepack enable
pnpm install

Misskeyのビルド

cloneしたリポジトリの.config/下にdefault.ymlを作成し、example.ymlの内容をコピペする。
以下のように書き換え保存。

url: http://localhost:3000
port: 3000

db:
  host: localhost
  port: 5432
  db  : mk1      # PostgreSQLのデータベース名
  user: misskey  # PostgreSQLのユーザー名
  pass: hoge     # PostgreSQLのパスワード

redis:
  host: localhost
  port: 6379

できたら

pnpm build
pnpm run init
pnpm start

するとMisskeyがlocalhost:3000で開かれる。

参考

WSL2を使ってWindowsでMisskey開発をはじめよう | aqz/tamaina

Discussion