SNSを自給自足するために、私はMisskeyのフォーク版であるCherryPickをサーバーにインストールしてみました。

X(旧Twitter)の改悪が続く中、自分のSNS環境を持つことが重要だと感じ、今回は独自サーバーでCherryPickをセットアップすることにしました。
以下はその手順と注意点です。
まずMisskeyとは

Misskeyは、日本発のオープンソースSNSプラットフォームです。Misskeyは、分散型SNSプロトコルである「ActivityPub」をサポートしており、これによりMastodonやPleromaといった他のActivityPub対応SNSと通信が可能です。
分散型SNSの特徴
通常のSNS(例えばX(旧Twitter)やFacebook)は、一社のサーバーで全てが管理されており、データや運営ルールはその会社の方針に依存しています。これに対して、分散型SNSでは、複数の独立したサーバー(インスタンス)が存在し、それぞれが独自のルールで運営されます。しかし、同じ「ActivityPub」プロトコルを使用しているため、異なるインスタンス間でも相互に接続し、情報をやり取りすることができます。
これにより、SNSの管理者や運営ルールが特定の会社に依存することなく、ユーザーがより自由でオープンな環境でコミュニケーションを楽しむことができるようになります。
画像引用元
今、押さえておきたい次世代のSNSとは? – DX先端研究所
https://www.dx-sentanken.com/report/742
用意したもの
PC: Ubuntu 24.04、RAM 8GB
Docker と Docker Compose
独自ドメイン: 好きなドメイン(今回はどこでも良い)
DNS: Cloudflare(推奨)
オブジェクトストレージ: 任意のもの
Misskeyのインストール
Misskeyのインストールには、Docker環境が必要です。以下の手順でインストールできます。
CherryPickリポジトリのクローン
git clone -b master https://github.com/kokonect-link/cherrypick.git
リポジトリに移動
cd cherrypick
masterブランチにチェックアウト
git checkout master
その後、Misskeyの公式インストールガイドに従って、残りの設定を行います。詳細はMisskey公式ガイドをご覧ください。
CDNの設定

CDN(コンテンツ配信ネットワーク)を利用すると、静的なコンテンツをキャッシュしてサーバーの負荷を軽減することができます。しかし、MisskeyのAPIはキャッシュしないように設定する必要があります。特に、/api/* の部分はキャッシュしないようにしましょう。
Cloudflareを使用している場合は、Cloudflareの「Cache Rules」を設定して、APIリクエストがキャッシュされないようにします。
オブジェクトストレージの設定
オブジェクトストレージを設定することで、静的コンテンツや画像を外部ストレージに保存し、サーバーのディスク容量を節約できます。私自身はこの記事を参考に設定しました。
注意点
リモートファイルのキャッシュ設定
Misskeyのコントロールパネルにある「設定」→「全般」から、リモートのファイルをキャッシュするをオフにすることを強くお勧めします。これをオフにしないと、大量のファイルがオブジェクトストレージに保存され、無料枠を圧迫してしまう可能性があります。
Postgresのバックアップ
今回私はPostgresのバックアップを行っていませんでしたが、定期的なバックアップを取ることを強くお勧めします。Postgresのデータベースは重要なデータを保持しているので、バックアップは安全策として重要です。バックアップ方法についてはこちらの記事を参考にしてください。
結論
今回はMisskeyのフォーク版であるCherryPickをサーバーにインストールして、自分専用のSNS環境を構築しました。DockerとCloudflareをうまく組み合わせることで、安定した運用が可能になり、独自ドメインでの運用も快適です。今後はさらにカスタマイズして、自分好みのSNS環境を作り上げていきたいと思います。
もしSNSを自分でホストしたいと考えているなら、Misskeyのフォーク版CherryPickは非常に有力な選択肢です。興味がある方はぜひ、手順を試してみてください。
コメント