本文へ移動
ch1w4

www.ch1w4.com / blog / personal-site

このサイトを自宅のDockerで動かし始めた

#homelab#docker#cloudflare

このサイト(www.ch1w4.com)は、自宅のProxmoxの上のVM「docker01」で動いている。

届くまでの経路

  1. Cloudflare(Tunnel)
  2. 自宅のルータ(NEC IX2215)
  3. DMZのリバースプロキシ(Nginx Proxy Manager)
  4. docker01のnginxコンテナ

Cloudflare Tunnelは、家の中から外へつなぎに行く方式なので、Web用のポートは開けていない。

サイトの作り

docker run --rm -v "$PWD/blogsite:/w" -w /w python:3.13-alpine \
  sh -c "pip install -q markdown && python build.py"
rm -rf html/* && cp -r blogsite/dist/* html/

ハマったこと:スマホだけ古いまま

CSSを直したのに、iPhoneだけ前のデザインのまま。原因はキャッシュだった。Cloudflareの「ブラウザキャッシュTTL」が4時間になっていて、Safariが古いCSSを持ち続けていた。

対策として、ビルドのときにCSSとJSのURLに中身のハッシュを付けるようにした(site.css?v=0e35c2e1 のような形)。中身が変わればURLも変わるので、キャッシュに古いものが残っていても新しいファイルが読み込まれる。

いずれはForgejoにpushしたら自動でビルドして反映されるようにしたい。