置き場所の選び方から、サーバーの要塞化・Docker Compose・Caddy による TLS・初回デプロイ・バックアップと復元・ロールバック・メンテナンス画面・CI からの更新まで。全50レッスンで「自分のサービスを 1 つ、月数百円の VPS で動かし続ける」ところまで進みます。Docker と Caddy は本物を手元で動かし、出力はすべて実測したものを載せています。
全50レッスンを7つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ コマンドはブラウザ内で実行できないため、Docker と Caddy を入れた手元の環境で試してください。サーバーの設定は捨ててよい VPS で試し、動いている本番のサーバーでいきなり試さないこと。ドメイン・IP・ユーザー名は例示用の値(deploy.example.com など)に置き換えてあります。
VPS・PaaS・コンテナサービスのどれに置くかを決め、月いくらで回せるかを見積もり、ドメインを取って DNS をサーバーに向けます。最後は Caddy→app→db の三層を compose でどう束ねるかを確かめます。
SSH 鍵でのログイン、作業用ユーザーと最小の sudo、sshd の要塞化、ファイアウォール、自動更新、fail2ban を順に入れます。最後はそれらの抜けを機械で点検するチェックリストを作ります。
Django アプリを Dockerfile で固め、docker compose で PostgreSQL と束ねます。healthcheck・.env・永続ボリューム・秘密情報の生成まで、本番で事故になりやすいところを実測で確かめます。
前段に Caddy を置き、443 で受けてアプリへ渡します。証明書の自動取得と更新、静的ファイル、HTTPS リダイレクト、複数サービスの同居、edge ネットワークまでを Caddyfile と compose で組みます。
検査→転送→ビルド→確認の流れを deploy スクリプトにまとめ、初回デプロイを通します。マイグレーション・管理者アカウント・SMTP の疎通を確かめ、最後は公開前チェックリストで抜けを拾います。
pg_dump でバックアップを取り、データを消してから戻すところまで実測します。コードとイメージのロールバック、メンテナンス画面、ログからの切り分けで、公開して終わりにしない備えを作ります。
2 回目以降の更新と CI からの自動デプロイ、費用とメモリの上限、監視の最低限を扱います。最後に全50回を「作って、出して、動かし続ける」運用の型としてまとめます。
全50レッスンを終えたら、次は push からデプロイまでを自動にする GitHub Actions や、サーバーそのものをコードで用意する Terraform へ。メンバーシップで全コースが解放されます。