mastodon server を建てる その2

最終更新日

mastodon の docker container image ができたところまで。

mastodon server を建てる その1

mastodon server を建てる その1

2022.11.20

mac からサーバへ引っ越し

docker container をsave

docker save tootsuite/mastodon:latest -o mastodon.docker
gzip  mastodon.docker

sourceやDB等

tar cvfz mastodon.tgz  {git cloneしたdirectory}

サーバ転送して展開

scp mastodon.docker.gz サーバ:
scp mastodon.tgz サーバ:

サーバにssh loginして展開。

tar xvfz mastodon.tgz
gzcat mastodon.docker.gz | docker load

nginx で https

mastodon では、https が必須。
今回は、Let's Encrypt で対応。

nginx の reverse proxy の設定は、こんな感じ。

 vi /etc/nginx/sites-available/mastodon
 ---
 server {
        # SSL configuration
        listen 443;
        client_max_body_size 10m;
        # listen [::]:443 ssl default_server;

        server_name mastodon.poppo-ya.com;
        ssl on;
        ssl_protocols              TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers  on;
        ssl_ciphers                "...";
        #ssl_dhparam                /etc/nginx/ssl/dhparam.pem;
        ssl_certificate            /etc/letsencrypt/lib/fullchain.pem;
        ssl_certificate_key        /etc/letsencrypt/lib/privkey.pem;
        location / {
                proxy_pass    http://localhost:3000/;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header Host $host;

                proxy_redirect   off;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Proto https;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_redirect http:// https://;
        }
        location /api/v1/streaming/ {
                proxy_pass    http://localhost:4000/;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header Host $host;

                proxy_redirect   off;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Proto https;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_redirect http:// https://;
        }
}

サーバの起動

メモリ1Gでは足りないので、swapを1Gほど足しておく。その操作は個々では省略。

いよいよ起動。

cd mastodon
docker compose up -d

無事起動すれば、ブラウザからアクセスできるはず。

ブラウザからaccount作成

create accountから、メール認証を経てaccount作成。

# 管理者設定とサービス設定

Webで作成したaccountは、一般権限なので、コマンドラインから管理者に変更する。

ユーザ名 は、 @ なしで。

docker compose exec web bash
$ RAILS_ENV=production bin/tootctl accounts modify {ユーザ名} --role Admin
OK

新規登録の制限

個人用なので、何はともあれ、新規account の登録を制限する。

画面をreloadして、 Prefarences をクリックする。

左側に新たに Administration メニューが表示される。
Sever Settings から Registrations を選択

Nobody can signup にしておく。

これで、 Create account ボタンをクリックしても、登録できずに、他のサーバが案内される。

ただし、管理者はinvaite用linkを作成すれば、その専用linkからは登録可能。

専用linkから何人まで登録できるか上限もあって、よくできてる。

これで設定は完了。

他のaccountをフォロー

画面の左上に Search ot paste URL という入力領域がある。
ここに、@[email protected] というようなフォローしたaccountの識別子を入力すれば、OK。

以降、 Federated メニューからタイムラインを参照できる。

シェアする