Mastodon立ったり立たなかったり

nginx_proxy + letsencrypt-nginx-proxy-companion + dockerの構成。

どこの情報を見てもそのまま動くものはなかったので苦労している。かき集めてきた情報でとりあえず動くところまで言ったので備忘録を兼ねて設定を晒す。

全体的に情報が古い。検索に引っかかる情報は2017年前半のMastodon黎明期のものが多いが、OSSであるMastodonの進化のスピードは非常に速く数カ月前の情報でも役に立たないことがある。

比較的新しくて参考になった記事:Ubuntu16.04にDockerでMastodonインスタンスを立てる


残る問題点

Mastodonを立てるぞ1

ツイッターもUserStreamの廃止でとうとう終わりだろうと思ったので。

まずサーバー上でこのホームページ(wordpress)が稼働しているのでどうしたものかと調べ、nginx_proxyを採用することにした。こいつはアクセスされたサブドメインに応じて違うコンテナにリクエストを振り分けてくれる。なかなか難航したが導入した。ついでにSSL証明書の取得まで自動化された。

次はMastodonのデプロイだ。docker-compose.ymlを編集してサーバーまで同時に起動するようにし、さらにそれがnginx_proxyの管理下になるようにnetworksの設定をイジイジする。絶対うまくいってない気がするが現在アセットのコンパイル中なので結果はまだわからない。

俺を起こさないでくれ。死ぬほど疲れてる。

https復活

証明書の期限が切れたのでhttps接続ができなくなっていた。このブログはdockerでwordpressを動かしている。コンテナに入ってcertbot renewをタイプすれば済んでいたはずなんだが、コンテナを一時停止したあと間違ったdocker-compose.ymlからコンテナを作りなおしてしまっていてえらい遠回りをしてしまった。データは永続化してあったが、間違って上書きしてしまわなかったのは運が良かった。それにしても証明書関連の手続きはよくわからない。そもそも仕組みを理解していない。

特に理由のない技術的挑戦としてHTTP/2にも対応させてみようかと思ったが、かなり大変そうだったのでやめた。

今日は洗濯からの帰り道、近所の駐車場で猫と遭遇したのでしばらく見つめ合っていた。いきなり近づくと警戒されて逃げられるが、姿勢を低くしよそ見をして敵意がないことをアピールすると相手も警戒を解いてよそ見したり目を閉じたりする。残念ながら触ることはできなかった。

適度に予測可能な振る舞いをすることが動物っぽさを感じさせるのかな、などと思った。

ホームページを復活させた

このホームページはしばしば消える。その理由はMySQLがしばしば原因不明のエラー(socketがない)を吐き、僕の技術では結局DBをリセットするしかなくなるからだ。

いい加減キレたので今回はdocker-composeでwordpressを立てた。

https://github.com/chao7150/myhomepage

https化も難題だった。立てたworepressのコンテナにexec -it <container id> bashで入り、certbotのインストールからapacheの設定ファイル更新まで地道にやった。