Skip to content
Prev Previous commit
Next Next commit
refactor modular integration
  • Loading branch information
stevius10 committed Oct 25, 2025
commit a77071cba0eede6a5354babfff8033b4cf177271
62 changes: 33 additions & 29 deletions libs/proxy/templates/Caddyfile.erb
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
(internal) {
@external {
not remote_ip 192.168.0.0/24
}
respond @external 403
@internal remote_ip 192.168.0.0/24
@external not remote_ip 192.168.0.0/24
respond @external "Forbidden" 403
}

(security_headers) {
(header) {
header {
Strict-Transport-Security "max-age=31536000;"
X-Frame-Options "DENY"
Expand All @@ -15,34 +14,39 @@
}
}

(proxy_headers) {
header_up Host {host}
header_up X-Real-IP {remote_ip}
header_up X-Forwarded-For {remote_ip}
header_up X-Forwarded-Proto {scheme}
}
(common) {
import internal
import header

<% @hosts.each do |entry| -%>
<% domain, upstream, hostname = entry.split(' ') -%>
<%= domain %> {
import security_headers
import internal
tls internal

reverse_proxy <%= upstream %> {
import proxy_headers
header_up X-Container-IP <%= upstream.split(':').first %>
log {
output file <%= @log_dir %>/{args.0}.log {
roll_size <%= @logs_roll_size %>
roll_keep <%= @logs_roll_keep %>
roll_keep_for <%= @logs_roll_for %>
}
}
}

tls internal
(default) {
import common {args.0}

log {
output file <%= @log_dir %>/<%= domain %>.log {
roll_size <%= @logs_roll_size %>
roll_keep <%= @logs_roll_keep %>
roll_keep_for <%= @logs_roll_for %>
}
}
vars upstream {args.1}

import <%= @config_dir %>/<%= hostname %>*.caddy
reverse_proxy {args.1} {
header_up Host {args.0}
header_up X-Real-IP {remote_ip}
header_up X-Forwarded-For {remote_ip}
header_up X-Container-IP {args.1}
}
<% end -%>
}

<% @hosts.each do |entry| -%> <% domain, upstream, hostname = entry.split(' ') -%>
<%= domain %> {
import default <%= hostname %> <%= upstream %>
import <%= @config_dir %>/*<%= hostname %>.caddy
}
<% end -%>

import <%= @config_dir %>/*.local.caddy