LinuxでMisskeyサーバーを自前で立てる

Misskeyは、オープンソースの分散型ソーシャルネットワークで、誰もがサーバーを立ち上げることができる。

X(旧Twitter)との違い

分散型ソーシャルメディア

Xが運営元企業が一元的に管理する中央集権型SNSに対して、Misskeyは、誰でも自由にサーバー(インスタンス)を開設し、各開設者が管理者として独自のルールや利用規約を定めて運営することが出来る「分散型ソーシャルメディア」の形態をしています。
ユーザーは、既存の「インスタンス」と呼ばれるサーバーの中から自身の目的に合ったものを選ぶか、自らサーバーを立ち上げて、アカウントを作成・利用することが出来、管理者は自身のインスタンスを自由に操作することが可能。

投稿機能
Misskeyの投稿は「note」として知られ、他のSNSと比べても非常に高い文字数制限(3,000文字)を持っています。
さらに、MFM機能(Misskey上で使用できる専用コード)を使用して、文字の色やフォントなど変えたり、投稿のデザインやレイアウトをカスタマイズすることも可能です。

タイムライン
Misskeyにはタイムラインが次の4種類あります
①ホーム……自分がフォローした人の投稿
②ローカル……自身が所属しているインスタンス内の投稿
③ソーシャル……ホームとローカルを同時に
④グローバル……所属インスタンスとつながっているインスタンスすべての投稿

絵文字やカスタムスタンプを投稿につけられる
Misskeyには、MastdonやXにあるような、「いいね」が存在しません。その代わりに、絵文字やカスタムスタンプを投稿につけることができます。

Misskeyサーバー(インスタンス)構築

次の条件で構築する
・Linux : Ubuntu22.04
・Domain :独自ドメインを取得し、ローカルIPアドレスと紐づいている

1. ユーザーの作成

Misskey専用のユーザー(misskey)を作成

2. 必要なパッケージインストール

3.Node.js インストール

Node.js リポジトリ追加

Node.js インストール

Node.jsバージョン確認

corepack 有効化

4. PostgreSQL のインストール・設定

PostgreSQL インストール

PostgreSQL ステータス確認

PostgreSQL サービスを開始

PostgreSQL シェルにログイン

Misskeyで使うユーザーを作成
今回は例としてユーザー名をmisskey_user、パスワードをhogeとする

Misskey 用のデータベース(misskey_db)を作成

PostgreSQL シェルを終了

5. Redisのインストール

redis-serverのステータス確認

6. nginx のインストールと設定

nginxの起動、ステータス確認

7. ファイアウォールの設定

UFWでhttp,httpsポート開放

8. Let's Encrypt証明書を取得する

下記を参照して取得しておく

9. Misskeyのインストール

Gitでファイル類を展開

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

Misskeyを設定
設定ファイル.config/default.ymlを作成

nginxの設定
/etc/nginx/conf.d/misskey.confを作成する。設定例は

Misskey Hubの設定例をコピー&ペーストし、次の部分を自分のものに書き換える。
example.tldを自分の取得したドメインに置き換える
ssl_certificateとssl_certificate_keyはLet's Encryptで取得した証明書のパスになるようにする
CloudflareなどのCDNを使う場合は、「If it's behind another reverse proxy or CDN, remove the following.」から4行を削除する

設定例

設定ファイルが正常に読み込まれるか確認

nginxデーモンを再起動

Misskeyのビルド

データベースの初期化

Misskeyを起動

Now listening on port 3000 on http://example.tld と表示されたら、設定したURLにアクセスする
http://example.tldは各自取得したドメイン名
下図のようなアカウント作成画面が出るのでアカウントを作成する

アカウントを作成しログインすると下図のようなダッシュボードが表示される

10.Misskeyのデーモンを作成

systemd serviceを作成

misskeyデーモンを開始

misskeyデーモンのステータス確認

タイトルとURLをコピーしました