Misskeyサーバーを立てる
最近とは言っても最近ではありませんが、Twitter(現在X)をイーロンマスクが買収してから、Twitterには様々な害悪な仕様変更が重ねられ、MisskeyやMastodonといった、分散型の新しいSNSへ移行する人が増えています。
今回紹介するMisskeyは先ほど紹介した通り、分散型SNSなので誰でもサーバーさえあれば立てることができます。
立て方
今回はDockerを使って立ててみます。Dockerを使うと簡単にサーバーを立てられます。
また、ポート開放やDDoS対策は大変なので、Cloudflare Tunnelという便利なサービスを利用することにします。
環境
ホストマシン環境はこちらです。
- OS: Ubuntu 22.04
- SSD: 256GB (OS)
- HDD: 4TB (データ保存用)
1. ディレクトリを作る
今回はMisskeyの設定ファイルなどはSSDへ、データなどはHDD (/mnt/external
にマウント済み)に保存するようにします。
*Dockerは仕様上、コンテナ内にデータを残しても、再起動後に消えてしまいます。データを永続化するためには、Volumeを使うか、コンテナ内にホストマシンのディレクトリをマウントします。
$ mkdir misskey
$ cd misskey
$ mkdir config
$ cd /mnt/external
$ mkdir misskey
$ cd misskey
$ mkdir data
$ mkdir db
$ mkdir redis
2. 環境作り
設定ファイルであるdocker-compose.yml
を書いていきます。ネットの記事を参考に適当にいじった程度です。
GitHubからダウンロードしてビルドすると時間かかるので、あらかじめ用意されているイメージを使います。
Misskeyが使用している、ActivityPubの仕様上、一度データベースを失うと、同じドメインでサーバーを立てることができなくなります。くれぐれもお気をつけください。
version: "3"
services:
web:
image: misskey/misskey:latest
restart: always
links:
- db
- redis
ports:
- "3000:3000"
networks:
- misskey_db
- external_network
volumes:
- /mnt/external/misskey/data:/misskey/files
- ./config/misskey.yaml:/misskey/.config/default.yml:ro
redis:
restart: always
image: redis:alpine
networks:
- misskey_db
volumes:
- /mnt/external/misskey/redis:/data
db:
restart: always
image: postgres:15-alpine
networks:
- misskey_db
environment:
- POSTGRES_PASSWORD=pass
- POSTGRES_USER=misskey
- POSTGRES_DB=misskey
volumes:
- /mnt/external/misskey/db:/var/lib/postgresql/data
tunnel:
image: cloudflare/cloudflared
command: tunnel run
environment:
- TUNNEL_TOKEN=xxxxx
tty: true
restart: always
networks:
misskey_db:
internal: true
external_network:
TUNNEL_TOKEN
はCloudflareで取得できます。
3. Misskey設定
Misskeyの設定ファイルであるmisskey.yaml
を書きます。
url
には使用したいドメインを設定してください。
url: https://misskey.example.com
db:
host: db
port: 5432
db: misskey
user: misskey
pass: pass
redis:
host: redis
port: 6379
id: 'aid'
port: 3000
4. Cloudflareの設定
この設定を忘れるとMisskeyが正常に動きません!
Cloudflareのダッシュボードから、「Speed」→「最適化」と進みます。最適化のページのタブから、「コンテンツの最適化」を選びます。
規定では、「Rocket Loader
」と「Auto Minify
」が有効になっているので、両方オフにします。
Auto Minifyの注意書きに「この機能は、特定の新しい CSS および JS 言語機能と完全に互換性がない場合があり、サイトの機能に影響を与える可能性がありますので、ご注意ください。」とあるように、Misskeyでは互換性がありません。必ずオフにしましょう。
オンにしたままだと、ログインが出来ません。
5. Misskeyを起動
ここまで出来たら、早速起動してみます。Dockerを使っているので、起動は簡単です。
初回起動は、データベースの設定などを行うので起動に時間がかかります。
$ sudo docker-compose up -d
おつかれさまでした。
さいごに
また次の記事であいましょう。