mastodon server を建てる その2
mastodon の docker container image ができたところまで。
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
メニューからタイムラインを参照できる。