From 35cbcdcc92e9264b4811e040fe91ea590dfddd22 Mon Sep 17 00:00:00 2001 From: Asep Haryana Date: Sun, 2 Aug 2026 16:36:55 +0700 Subject: [PATCH] chore(infra): add tuned Caddyfile.prod reference --- infra/caddy/Caddyfile.prod | 105 +++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 infra/caddy/Caddyfile.prod diff --git a/infra/caddy/Caddyfile.prod b/infra/caddy/Caddyfile.prod new file mode 100644 index 0000000..879114a --- /dev/null +++ b/infra/caddy/Caddyfile.prod @@ -0,0 +1,105 @@ +# ── Caddyfile PRODUKSI v2 — TUNED (auto-TLS Let's Encrypt) ── +# Tuning: HTTP/3 default, keep-alive upstream, zstd+gzip, timeouts, buffer, TLS 1.3 + +{ + email asepharyana@gmail.com + + # Global tuning + servers { + protocols h1 h2 h3 + trusted_proxies static private_ranges + } + grace_period 10s +} + +# ── Helper: handler umum (gzip + zstd, header keamanan) — dipanggil dgn argumen: port +# Penggunaan: import proxy 4003 +(proxy) { + encode zstd gzip + header { + -Server + X-Content-Type-Options "nosniff" + X-Frame-Options "SAMEORIGIN" + Referrer-Policy "strict-origin-when-cross-origin" + } + # Keep-alive upstream: max 100 idle conns per host, dial timeout 3s + reverse_proxy 127.0.0.1:{args[0]} { + transport http { + keepalive 120s + keepalive_interval 30s + max_conns_per_host 100 + dial_timeout 3s + response_header_timeout 30s + read_timeout 60s + write_timeout 60s + } + } +} + +asepharyana.my.id, www.asepharyana.my.id, asepharyana.web.id, www.asepharyana.web.id, hub.asepharyana.my.id { + import proxy 4003 +} + +scraper.asepharyana.my.id, api.asepharyana.my.id, scraper.asepharyana.web.id, api.asepharyana.web.id { + import proxy 4091 +} + +ai.asepharyana.my.id, ai.asepharyana.web.id { + import proxy 4010 +} + +tools.asepharyana.my.id, tools.asepharyana.web.id { + import proxy 4007 +} + +9router.asepharyana.my.id { + import proxy 4014 +} + +pr-agent.asepharyana.my.id { + import proxy 4002 +} + +lidm.asepharyana.my.id { + import proxy 4004 +} + +lidm-api.asepharyana.my.id { + import proxy 4005 +} + +zeavisedu.asepharyana.my.id { + import proxy 4011 +} + +api-zeavisedu.asepharyana.my.id { + import proxy 4006 +} + +ml-zeavisedu.asepharyana.my.id { + import proxy 4012 +} + +dashboard.asepharyana.my.id { + import proxy 4013 +} + +imphnen.asepharyana.my.id { + import proxy 4009 +} + +upload.asepharyana.my.id, upload.asepharyana.web.id { + # Upload: no compression (binary), big body allowed, streaming + reverse_proxy 127.0.0.1:4000 { + transport http { + keepalive 120s + keepalive_interval 30s + max_conns_per_host 100 + dial_timeout 3s + } + flush_interval -1 + } + request_body { + max_size 0 + } +}