VPSでPeerTubeを動かす
さくらのVPSでPeerTubeを動かす。
さくらは転送量課金が無いのが魅力。
構成
管理はItamae
リバースプロクシーにTraefikを使ってみる
PeerTubeのドキュメントでは(というか公式compose.ymlでは)Dockerで動かす時はNginxのコンテナーも合わせて起動する
Traefikに置き換えられる?
Nginxはリバースプロクシーだけじゃなくて静的ファイル配信でも使ってそうだから、そのままにしてTraefikとNginxを繋いでやるのがよさそう
peertubeコンテナの1935番ポートは使わない
Comment if you don't want to use the live feature
とのことだけど。
RMTPのポートらしい
動画用ストレージ
Linuxのディレクトリーでのサイズ制限で用意
メールはSendGrid
監視
外形監視はさくらのVPSの監視サービス
ストレージ容量のチェック
ヘルスチェック用の簡易ウェブアプリケーションを作って、さくらのサーバー監視から叩く
Rubyのアプリケーションを3000番ポートで起動
さくらの監視ネットワークである27.133.139.32/28からの3000番ポートへのアクセスをパケットフィルターで許可
サーバー監視 — さくらの VPS マニュアル
メール通知はさくらのサーバー監視がやってくれる
WIP
バックアップ
PeerTubeのストレージ
監視 DONE
ストレージ
大掛かりなのは入れなくていい
ディスク容量の閾値監視をシェルスクリプトで自動化する
上の動画用ストレージ
ホスト全体のストレージとinode
通知をどうしよう
何らかのメール送信プログラムを入れる
知らずに悪用されると嫌だなあ
直接SendGridのSMTPを叩く
Huginnとか入れておいて、Huginnから送る
ヘルスチェック用の簡易ウェブアプリケーションを作って、さくらの死活監視から叩く 採用
Rubyのアプリケーションを3000番ポートで起動
さくらの監視ネットワークである27.133.139.32/28からの3000番ポートへのアクセスをパケットフィルターで許可
サーバー監視 — さくらの VPS マニュアル
Nagiosを入れる
ハマったこと
PeerTubeコンテナーはpeertubeユーザーで動かしていたけど、docker-volumeは所有者がtraefikユーザーになっていたので動画を書き込めなかった。
動画をアップロードする時に、何故かHTTPスキームでPUTしていてアクセスできない。他のPOSTとかはHTTPSになっているのに。
Nginxの設定にproxy_set_header X-Forwarded-Proto "https";を足したらうまくいった。
Nginxの設定を変えたい時に、いちいちコンテナーを作り直すの面倒くさい。
エントリーポイントスクリプトで、テンプレートから設定ファイルを作ってるみたいだから、テンプレートファイルを更新して単に再起動するだけでよかった。
https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/entrypoint.nginx.sh
ファイルが大き過ぎるとかでアップロードできない。
Nginxのclient_max_body_sizeを弄ってみたが効果無し
ブラウザーのコンソールでよくよくレスポンスを見てみたら、
413 Request Entity Too Large
cloudflare
となってた。「cloudflare」だってさ。
ローカルでPeerTubeを動かすでアップロードできてたわけだから、Nginxの問題ではないよな。
Discourseの投稿:
Unable to upload big file on cloudflare using proxy - Website, Application, Performance / Security - Cloudflare Community
413 Request Entity Too Large - How to increase the size? - Website, Application, Performance / DNS & Network - Cloudflare Community
Increase Maximum Upload Size - General - Cloudflare Community
はっきり書いてなくて文脈が分からないが、DNSのProxyと思ってよい? その環境では無料プランでは100MiBまでらしい。まじか。
TraefikでTLS終端させるか・・・
Cloudflareリゾルバーで
Traefik で Let's Encrypt の DNS チャレンジを Cloudflare でしたい - なつねこメモ