サルでもできるMastodonインスタンス閉鎖
この記事は以下のような生物を対象にしています。
サーバーの電源落とすだけじゃだめなの?
接続されているサーバーのSidekiqに無限に再試行が積まれるのでやめましょう。
じゃあ何をすればいいの?
閉鎖を周知する
公開インスタンスの場合、特に重要です。
自分のサーバーのユーザーや接続されているインスタンスの管理者に閉鎖をきちんと伝えましょう。(お一人様で無言に消えたいなら次の項目だけやっとけばいい気もする)
十分に閉鎖までに余裕を持って告知しましょう。
下の画像は悪い例です。ちなみにこれを投稿したのは末代再起動の30分ぐらい前で末代再起動とともにインスタンスが消滅しました。本当に悪い例です。
410を返す
v2.6.1からはやらなくていいと書いている記事もありますが、やった方がいいと私は思います。(お一人様で無言で消えたい場合とかはとりあえずこれだけやっとけば文句は言われないと思う)
接続されているインスタンスがすべてv2.6.1以上とは限らないので。
Mastodon用のNginxを
map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; listen [::]:80; server_name example.com; root /home/mastodon/live/public; # Useful for Let's Encrypt location /.well-known/acme-challenge/ { allow all; } location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com; ssl_protocols TLSv1.2; ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; return 410; }
に書き換えてNginxを再起動するとできます。(example.comを自分のサーバーのドメインに置き換えて)
大体この状態で1~2ヶ月ほど放置すればいいと思います。(本当はもうちょっと放置した方がいいけど、資金面で負担になるから最低1ヶ月ぐらいを目安にしていいと思う)
MastodonのSystemd Serviceは全部停止して大丈夫です。
サーバーの処理
データは自分が規約に書いた期間、安全に保管してから確実に削除しましょう。
最後に
これを見た人に言う言葉ではないと思うんだけど楽しいSNSライフを!
Mastodonの~/liveを飛ばした時の復旧
Mastodonに強い人に会って話題に出したので復旧した時の手順を書いておく。
記憶を元に書いてるので合ってるかわからないけどそもそもこんな状態が稀だと思う。
Non Docker前提
飛ばすとどうなるのか
動かない。だって本体がないんだもの。
慌てない
ここで絶望して「もうだめだ...DBを飛ばして0からやりなおそう...」とか考えてはいけない。
まだDBは生きてるし設定ファイルもある。
とりあえずソースを戻す
MastodonはLGPLなので、カスタムしてる場合は自分のリポジトリにソースがあるし、そうじゃないなら普通に公式にソースがあります。
(まさか自分のサーバーにzipで置いてるわけないよね?)
とりあえずそれをgit clone URL
するなりなんなりして持ってくる。
私の場合はlive/でrm -rf *
したのでgit checkout .
で戻ってきた。
アップデートの要領で動作するようにする
cd ~/live # 任意のバージョン git checkout v1.4.7 # ライブラリを復元 bundle install --deployment --without development test yarn install --pure-lockfile # どっかから.env.productionを持ってくる cp ~/backup/2018/07/30/.env.production . # 一応migrateしてprecompile env RAILS_ENV=production bundle exec rails db:migrate env RAILS_ENV=production bundle exec rails assets:precompile # 再起。 systemctl restart mastodon-web systemctl restart mastodon-sidekiq systemctl restart mastodon-streaming
これでとりあえず動く(はず)。
画像をできるだけ復元
動いてもそこは画像がない虚無の世界です。
なので画像を復元します。
アイコン
まずローカルのアイコンはどうしようもないので、ローカルの人達に謝罪してアイコンを再設定してもらいましょう。
ユーザーが上げた画像はもう戻ってきません。これも同時に謝罪しましょう。
そしてリモートはリモートの鯖に画像があるのでとりあえず
env RAILS_ENV=production bundle exec rails mastodon:media:redownload_avatars
を叩きましょう。(そもそも本来の用途じゃないらしいのであまり効果は期待できない。)
それでも取得できない場合は、モデレーションのアカウントからアバターの更新を叩くと完全に再取得されます。(といっても全部叩くことになるとDBを飛ばしたくなる。)
カスタム絵文字
これはローカルのものも比較的安易に復元できます。
まず自分の鯖のカスタム絵文字の一覧をどこかにメモしておく。この時自分の鯖の絵文字がコピーされている鯖もメモする。
カスタム絵文字をローカル、リモート見境なく全部消す。
自分の鯖のカスタム絵文字をコピーした鯖に行き、自分の鯖の自分のアカウント宛てにカスタム絵文字をDMで送る。
自鯖でそれをコピーする。コピーされてなかったものはがんばって復旧する。
他鯖の絵文字は時が復旧してくれます。(全部削除したので勝手に取得される。)
その後
私の鯖は、その後は普通に動作しています。
飛ばした場合に楽に復旧できないかMastodonに強い人に聞いたら「できる限り全部バックアップして」だそうです。
なのでバックアップを大事にして鯖運営しようね。
Mastodonが壊れた話
タイトルの通りです。運営しているMastodonが壊れました。そして直しました。
雑に言うと大体::1
が悪いです。
環境
昨日この環境で再起動したらMastodonのSidekiqが暴走しました。
どうやらredisが動いていないようなので確認したところ
redis-server.service: Can't open PID file /var/run/redis-server.pid (yet?) after start: No such file or directory
redis-server.service: Start operation timed out. Terminating.
redis-server.service: Failed with result 'timeout'.
と
これを最初に見た時は完全にredis-server.service: Can't open PID file /var/run/redis-server.pid (yet?) after start: No such file or directory
しか見ていなくて「pidファイルが生やせないのか!?なぜだ!?」ってなったわけです。
そんなわけでパーミッションをいじったりconfigをいじったりしていたんですが、どうにもならないわけです。
そうして苦しんでいたらその時通話していた人から「IPv6を無効化してるとredisが起動できないとかいう記事が」って言ってきたんです。
ええ...と思いつつIPv6を有効化して再起動したら動きました。
どうやら/etc/redis/redis.conf
のbind 127.0.0.1 ::1
の行が地雷らしくbind 127.0.0.1
にすると動きました。
やはりIPv6に対応しないと洗礼を受けるのか...(途中のコマンドミスで画像飛ばしたし...)
MC-R500を買った話
みなさん、ジャンクしてますか?
私は月始めに財布の半分を溶かす程度にはジャンクしてます。
というわけで勢いで秋葉原行ってきました。
そして古いホッカイロArrowsとか通話ができない高級文鎮IS04が売っている中古屋に行ったらカゴに10台ぐらいPCが入っていて
そこで手に入れてきたのがタイトルにもなってるコイツ
NECのMC-R500です。
いわゆるハンドヘルドPCというやつでスペックは以下の通りです。同時発売のMC-R300と同時にどうぞ。
型番 | MC-R500 | MC-R300 |
---|---|---|
CPU | NEC VR4111 | |
RAM(最大) | 16MB(32MB) | 8MB(32MB) |
OS | Windows CE 2.0 | |
液晶 | 8.1インチカラーSTN (640×240ドット、256色) |
7.3インチモノクロEL (640×240ドット、4階調) |
モデム | 33.6kbps FAXモデム内蔵 | |
インターフェイス | RS-232C、モジュラージャックRJ-11、モニタ(VGA)、IrDA 1.0、PCMCIA Type2、コンパクトフラッシュスロット、マイク、スピーカー | |
標準バッテリ | リチウムイオン | 単3乾電池×2 |
駆動時間(非通信時) | 約8時間 | 約30時間 |
サイズ(幅×奥行×高さ) | 245×138×31.4mm | 245×122×30.5mm |
重量(電池含む) | 850g | 670g |
標準仕様以外のアプリケーション | MGメール、MG FAX、MGエディタ、MGパソコン通信、MG運用アシスタント、MGオートダイヤラー、MGボイスレコーダのほか、パソコン通信入会用プログラムなど |
???「でもこんな低スペックじゃ何もできないでしょ?」
普通に遊べます!楽しいです!
タッチパネルも生きてるしキーボードも快調です。
お値段3218円とお高いですが私は満足です。
初投稿がこれでいいのか?まあ気にしない!