Refactor caddy and add hosts
This commit is contained in:
parent
2b1e9119dc
commit
8e949f9a0f
1 changed files with 27 additions and 11 deletions
|
|
@ -15,19 +15,35 @@ let
|
||||||
"ha.figtree.dev" = "http://192.168.1.50:8123";
|
"ha.figtree.dev" = "http://192.168.1.50:8123";
|
||||||
# "budget.figtree.dev" = "http://192.168.80.1:5006";
|
# "budget.figtree.dev" = "http://192.168.80.1:5006";
|
||||||
|
|
||||||
# Only this one needs extra top-level Caddyfile lines:
|
# .box domains now automatically get "tls internal"
|
||||||
"budget.box" = {
|
"home.box" = "http://192.168.1.63:3000";
|
||||||
backend = "http://192.168.80.1:5006";
|
"budget.box" = "http://192.168.80.1:5006";
|
||||||
extraBefore = ''
|
"torrent.box" = "http://192.168.1.65:8080";
|
||||||
tls internal
|
"books.box" = "http://192.168.80.4:8010";
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Turn strings into { backend = "..."; }
|
# Normalize sites:
|
||||||
normalizedSites = lib.mapAttrs (_: v: if lib.isString v then { backend = v; } else v) sites;
|
# 1. Turn strings into { backend = "..."; }.
|
||||||
|
# 2. Automatically prepend `tls internal` for any domain ending in .box.
|
||||||
|
normalizedSites = lib.mapAttrs (domain: siteConfig:
|
||||||
|
let
|
||||||
|
# Ensure siteConfig is an attrset.
|
||||||
|
baseConfig = if lib.isString siteConfig then { backend = siteConfig; } else siteConfig;
|
||||||
|
# Check if it's a .box domain.
|
||||||
|
isBoxDomain = lib.hasSuffix ".box" domain;
|
||||||
|
in
|
||||||
|
if isBoxDomain then
|
||||||
|
baseConfig // {
|
||||||
|
extraBefore = ''
|
||||||
|
tls internal
|
||||||
|
${lib.optionalString (baseConfig ? extraBefore) baseConfig.extraBefore}
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
baseConfig
|
||||||
|
) sites;
|
||||||
|
|
||||||
# Render each vhost
|
# Render each vhost from its config.
|
||||||
mkVHost = cfg: {
|
mkVHost = cfg: {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
${lib.optionalString (cfg ? extraBefore) cfg.extraBefore}
|
${lib.optionalString (cfg ? extraBefore) cfg.extraBefore}
|
||||||
|
|
@ -39,6 +55,6 @@ in
|
||||||
{
|
{
|
||||||
services.caddy = {
|
services.caddy = {
|
||||||
enable = true;
|
enable = true;
|
||||||
virtualHosts = lib.mapAttrs (_domain: cfg: mkVHost cfg) normalizedSites;
|
virtualHosts = lib.mapAttrs (_: cfg: mkVHost cfg) normalizedSites;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue