Cloudflare Tunnel で Pleroma を公開する

Twitter の移行先として Pleroma を考えた。もちろん僕は自分でインスタンスを立てたい。

Twitter オルタナティブとしては Mastodon が有名だが、僕は Pleroma が好きだ。Pleroma にこだわったのは、立てようと思えば Raspberry Pi 3 でも立てられるから。Mastodon は Raspberry Pi 4 が必要になる。

今回はいわゆる「お一人様インスタンス」ではない、一般登録も可能になるインスタンスも立てようと思っている。その場合は Raspberry Pi だと心もとないので、とりあえず VPS を使いたい。

VPS に立てる前にまずは Mac の VMware Fusion で実験をすることにした。

環境:macOS Catalina Version 10.15.6(英語環境)、VMware Fusion 12.0.0

結構苦労した。スクラップ・アンド・ビルドが簡単な VMware を使って正解だった。

以前 VPS に Pleroma を立てたときは Debian でできたので、今回も Debian でやってみたが、何度やっても途中でエラーが出て進めなくなる。

Docker でのインストールも試してみたがダメだった。

最終的には Ubuntu 22.10 でうまくいった。英語版の公式インストールガイドが、最新の情報でかつ丁寧なのでそれにそのまま従えばいい。

Installing on Debian Based Distributions - Pleroma Documentation
https://docs.pleroma.social/backend/installation/debian_based_en/

そして今回の試みは Let's Encrypt を使わないようにしたことだ。Let's Encrypt は証明書の有効期限を気にしたり更新がが手間だったりする。

そこで先日紹介した Cloudflare Tunnel を利用することにしたのだ。cloudflared を同じ Ubuntu 上にインストールしてしまえば、独自ドメインが使え Let's Encrypt なしに更新不要の SSL 接続ができるようになる。ポートの開放が不要で、自宅サーバーの IP アドレスも隠せる。しかも Nginx のようなウェブサーバーもインストール不要となる。

具体的には以下がポイントとなる。
1:ローカルに立てる場合は通常ドメインを localhost:4000 などとしてインストールを進めるのが一般的だ。しかし今回の方式では最終的に Pleroma は動くが、一部ページで URL が localhost となって接続できなくなったり、アップロードした画像の URL に :4000 が追加されてしまい、画像が表示されなかった。最初から Cloudflare Tunnel で設定するドメインでインストールを進めるとそういう問題は起きなかった。
2:インストールガイドの $ sudo -Hu pleroma MIX_ENV=prod mix phx.server まで行ったら、$ curl -I localhost:4000 で Pleroma が起動できていることを確認する(Nginx をインストールしていないので、この時点では他のマシンからはアクセスできない)。ctrl + c で Pleroma を一旦止める。
3:その後の Nginx や Certbot はインストールしなくていい。
4:Pleroma のサービスを起動し、永続化。
5:cloudflared をインストール。Cloudflare Tunnel の Public Hostname で http://localhost:4000 をサービスとして登録する。

これで Pleroma が使えるようになる。

飽きるほどスクラップ・アンド・ビルドを繰り返したので、しまいにはスイスイ作業ができるようになってきた。

参考:
分散型SNSのPleromaをDocker+Macでローカルに構築する|てくてくぷれいす
https://murabitoleg.com/pleroma/


この記事が気に入ったらサポートをしてみませんか?