92 lines
1.4 KiB
Caddyfile
92 lines
1.4 KiB
Caddyfile
# Components
|
|
|
|
(application_logging) {
|
|
log {
|
|
level INFO
|
|
output stdout
|
|
output file /var/log/caddy/caddy_{args[0]}.log {
|
|
roll_size 100MiB
|
|
roll_keep 5
|
|
roll_keep_for 100d
|
|
}
|
|
format json
|
|
}
|
|
}
|
|
|
|
(application_base) {
|
|
import application_logging {args[0]}
|
|
|
|
tracing {
|
|
span api
|
|
}
|
|
|
|
reverse_proxy host.containers.internal:{args[1]}
|
|
|
|
}
|
|
|
|
(internal_base) {
|
|
import application_base {args[0]} {args[1]}
|
|
tls internal
|
|
}
|
|
|
|
{
|
|
log default {
|
|
output stdout
|
|
output file /var/log/caddy/caddy_main.log {
|
|
roll_size 100MiB
|
|
roll_keep 5
|
|
roll_keep_for 100d
|
|
}
|
|
format json
|
|
}
|
|
|
|
servers {
|
|
metrics
|
|
}
|
|
|
|
admin :2019
|
|
}
|
|
|
|
# Internal routes
|
|
#
|
|
# Local DNS is expected to set up and map
|
|
# these routes.
|
|
|
|
https://plex.home.karnov.club {
|
|
import internal_base "plex" 32401
|
|
}
|
|
|
|
https://deluge.home.karnov.club {
|
|
import internal_base "deluge-web" 8112
|
|
}
|
|
|
|
https://cloud.home.karnov.club {
|
|
import internal_base "nextcloud" 2100
|
|
}
|
|
|
|
https://panopticon.home.karnov.club {
|
|
import internal_base "grafana" 3100
|
|
}
|
|
|
|
https://cr.home.karnov.club {
|
|
import internal_base "registry" 5000
|
|
}
|
|
|
|
https://hole.home.karnov.club {
|
|
import internal_base "pihole" 8080
|
|
}
|
|
|
|
# External routes
|
|
#
|
|
# Port-based routes face the outside world.
|
|
:53000 {
|
|
import application_base "forgejo" 3000
|
|
}
|
|
|
|
:53001 {
|
|
import application_base "forgejo-pg-exporter" 3001
|
|
}
|
|
|
|
:58082 {
|
|
import application_base "vault-web" 8082
|
|
}
|