2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

とにかくFediverseはじめてみようという趣旨です。

OSCでFediverse関連ブースが出てたので、気になっただけで何もせず放置していたMastodonをすっ飛ばして、いきなりMisskeyを使ってみようという背景です。

Fediverse?Misskey?

Fediverseは、複数の独立したサーバーが連携する分散型ソーシャルメディアです。ユーザーは異なるサーバー間でも交流できます。特にMastodonが代表的です。

Misskeyは、分散型ソーシャルメディアの一つで、Fediverseと連携可能なプラットフォームです。多様なリアクションやカスタマイズ性が特徴です。

環境について

Debian(バージョンは13 Trixie)を使います。
今回はdebootstrapでminbaseをインストールしたものに、適宜NetworkManagerやカーネルをインストール済みのイメージを使います。

仮想マシンはAArch64のKVMです。

user@localhost:~$ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux trixie/sid"
NAME="Debian GNU/Linux"
VERSION_CODENAME=trixie
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
user@localhost:~$ sudo virt-what 
kvm

着手

まずこのマークダウンを参考に適宜オリジナリティーを交えつつすすめていきたいと思います。

依存関係のインストール

早速つまづきポイントですnodejsのバージョンがDebianのtestingでもそんなに新しくないです。

あたらしいnodejs
欲しい!

せっかくDebianなのでDebianらしくunstableから前借りします。

sid(unstable)の前借り設定+nodejsのインストール

unstableのリポジトリを有効にします。

/etc/apt/sources.list(抜粋)(この行を追加)
deb https://deb.debian.org/debian sid main contrib non-free non-free-firmware

unstableのリポジトリの優先順位を下げます。
これにより、全てのパッケージがsidのものに置き換えられてしまうのを防ぎます。

/etc/apt/preferences.d/90sid(この内容でファイルを追加)
Package: *
Pin: release n=sid
Pin-Priority: 80

新しいnodejsのインストールします。

ターミナルで実行
sudo apt-get update
sudo apt-get install -t sid nodejs npm
node -v
v20.13.1

新しいのが入りました✨

残りのインストール

ターミナルで実行
sudo apt-get install redis postgresql postgresql-contrib ffmpeg build-essential git corepack

corepackを有効化します。corepackはyarnやpnpmを1つづつインストールしなくてもyarnやpnpmを使うことができるツールです。

ターミナルで実行
sudo corepack enable

ユーザー作成

ユーザーはmisskeyで作りました。(が、結局このユーザーを使わなくても出来ました……)

sudo useradd -U -r -s /usr/sbin/nologin -M misskey

ビルド

さて主たる話題のビルドです!GitHubから取ってきてビルドするだけです。

ターミナルで実行
git clone --recurse-submodules --depth=1 -b master https://github.com/misskey-dev/misskey
cd misskey
git submodule update --init
pnpm install --frozen-lockfile
cp .config/example.yml .config/default.yml
NODE_ENV=production pnpm run build

DB準備

sudo -u postgres psql

データベースを作って、パスワード付きのユーザーを作って、そのユーザーにそのデータベースの全部を許可します。
パスワードもデータベースもユーザー名も全部misskeyにする場合は↓こんな感じです。

↑のコマンドの中で作業
CREATE DATABASE misskey WITH encoding='UTF-8';
REATE USER misskey WITH encrypted password 'misskey';
GRANT ALL PRIVILEGES ON DATABASE misskey TO misskey;
ALTER DATABASE misskey owner TO misskey;
\q

初期設定

.config/default.ymlを適宜変更します。特にdbのところにあるパスワードを変えておくのを忘れると起動しませんでした。

データベース、パスワード、ユーザー名、全部misskeyの構成ではこんな感じの変更でした。

diff --git a/.config/example.yml b/.config/default.yml
index 7fea929..e794357 100644
--- a/.config/example.yml
+++ b/.config/default.yml
@@ -102,8 +102,8 @@ db:
   db: misskey
 
   # Auth
-  user: example-misskey-user
-  pass: example-misskey-pass
+  user: misskey
+  pass: misskey
 
   # Whether disable Caching queries
   #disableCache: true

あとはコマンドを実行します。

pnpm run init

起動

あとは起動するだけです。

ターミナルで実行
NODE_ENV=production pnpm run start

ポートは3000でLISTENするようです。

image_720.png

動いた✨

image.png

つぶやけた✨

大成功🎉

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?