Compare commits

...

3 commits

3 changed files with 23 additions and 8 deletions

View file

@ -13,6 +13,12 @@ let
publicHostsExist = virtualHosts |> lib.any (vHost: (!self.lib.isPrivateDomain vHost.domain)); publicHostsExist = virtualHosts |> lib.any (vHost: (!self.lib.isPrivateDomain vHost.domain));
privateHostsExist = virtualHosts |> lib.any (vHost: self.lib.isPrivateDomain vHost.domain); privateHostsExist = virtualHosts |> lib.any (vHost: self.lib.isPrivateDomain vHost.domain);
privateDomains =
virtualHosts
|> lib.filter (vHost: self.lib.isPrivateDomain vHost.domain)
|> lib.map (vHost: vHost.domain)
|> lib.unique;
mkVirtualHost = mkVirtualHost =
{ {
domain, domain,
@ -138,11 +144,7 @@ in
reloadServices = [ "caddy.service" ]; reloadServices = [ "caddy.service" ];
}; };
certs = certs = privateDomains |> lib.map (domain: lib.nameValuePair domain { }) |> lib.listToAttrs;
virtualHosts
|> lib.filter (host: self.lib.isPrivateDomain host.domain)
|> lib.map (host: lib.nameValuePair host.domain { })
|> lib.listToAttrs;
}; };
services.nebula.networks.mesh.firewall.inbound = [ services.nebula.networks.mesh.firewall.inbound = [
@ -160,7 +162,11 @@ in
systemd.services.caddy = { systemd.services.caddy = {
requires = [ netCfg.overlay.systemdUnit ]; requires = [ netCfg.overlay.systemdUnit ];
after = [ netCfg.overlay.systemdUnit ]; wants = privateDomains |> lib.map (domain: "acme-${domain}.service");
after = [
netCfg.overlay.systemdUnit
]
++ (privateDomains |> lib.map (domain: "acme-${domain}.service"));
}; };
custom.persistence.directories = [ "/var/lib/acme" ]; custom.persistence.directories = [ "/var/lib/acme" ];

View file

@ -17,7 +17,7 @@ let
|> lib.map (host: { |> lib.map (host: {
type = "monitor"; type = "monitor";
cache = "1m"; cache = "1m";
title = host.config.networking.hostName; title = "${host.config.networking.hostName} Services";
sites = sites =
host.config.custom.meta.sites host.config.custom.meta.sites
|> lib.attrValues |> lib.attrValues

View file

@ -34,7 +34,16 @@ in
}; };
}; };
systemd.services.scrutiny.enableStrictShellChecks = false; systemd.services.scrutiny = {
enableStrictShellChecks = false;
serviceConfig = {
DynamicUser = lib.mkForce false;
ProtectSystem = "strict";
ProtectHome = "read-only";
PrivateTmp = true;
RemoveIPC = true;
};
};
custom = { custom = {
services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; services.caddy.virtualHosts.${cfg.domain}.port = cfg.port;