refactor(3202): the swarm UI declares its own vhost and dns name
Last of the four. The vhost, its `auth_request` block and the swarm apex's dns record move into swarm-ui.nix; vhosts.nix drops `uiCfg`, `controllerCfg` and `autheliaCfg` and is now 259 lines of hive surface with no swarm service in it. Also collapses a THIRD copy of the per-service list. `networking.hosts` restated every service's name with its own copy of that service's guard, after the vhosts and the dnsmasq records had each done the same. It asks the same question — which names does this host answer for — so it now reads the same answer: a service added later lands in /etc/hosts with no edit, and cannot land there under a different condition than it used for DNS. The `forceSSL`-not-`addSSL` comment travels intact: it records that authelia answers an http auth subrequest with 400 and nginx's auth_request only understands 2xx/401/403, so the scheme is load-bearing for this vhost and no other.
This commit is contained in:
parent
6caf177416
commit
030eef0948
4 changed files with 134 additions and 143 deletions
|
|
@ -22,9 +22,6 @@ let
|
|||
# same list rather than each deciding what "a swarm service" means.
|
||||
swarmServiceDomains = config.services.hyperhive.swarm.serviceDomains;
|
||||
matrixCfg = config.services.hyperhive.swarm.matrix;
|
||||
autheliaCfg = config.services.hyperhive.swarm.authelia;
|
||||
uiCfg = config.services.hyperhive.swarm.ui;
|
||||
controllerCfg = config.services.hyperhive.swarm.controller;
|
||||
networkCfg = config.services.hyperhive.network;
|
||||
|
||||
# Dashboard SPA dist, static-served by nginx.
|
||||
|
|
@ -95,9 +92,6 @@ let
|
|||
cfg
|
||||
errorPages
|
||||
matrixCfg
|
||||
autheliaCfg
|
||||
uiCfg
|
||||
controllerCfg
|
||||
hyperhiveDomain
|
||||
dashboardDist
|
||||
swaggerUiTheme
|
||||
|
|
@ -379,7 +373,6 @@ in
|
|||
lib
|
||||
cfg
|
||||
networkCfg
|
||||
uiCfg
|
||||
hyperhiveDomain
|
||||
;
|
||||
};
|
||||
|
|
@ -393,19 +386,18 @@ in
|
|||
];
|
||||
};
|
||||
|
||||
# `/etc/hosts` entries for local dev — bare hive domain + any
|
||||
# sub-domain modules that are on. `lib.unique` dedupes if any
|
||||
# sub-domain happens to equal another. See `docs/gateway.md`
|
||||
# `/etc/hosts` entries for local dev — the bare hive domain plus
|
||||
# every name a service module contributed. See `docs/gateway.md`
|
||||
# ("Local dev").
|
||||
#
|
||||
# This used to restate the per-service list a THIRD time (after the
|
||||
# vhosts and the dnsmasq records), with its own copy of each
|
||||
# service's guard. It is the same question — "which names does this
|
||||
# host answer for" — so it reads the same answer; a service added
|
||||
# later lands here with no edit, and cannot land here with a
|
||||
# different condition than it used for DNS.
|
||||
networking.hosts = lib.mkIf cfg.localHostsEntry {
|
||||
"127.0.0.1" = lib.unique (
|
||||
[ hyperhiveDomain ]
|
||||
++ lib.optional (config.services.hyperhive.swarm.forge.behindGateway or false
|
||||
) config.services.hyperhive.swarm.forge.domain
|
||||
++ lib.optional (matrixCfg.enable && matrixCfg.gatewayHost != null) matrixCfg.gatewayHost
|
||||
++ lib.optional autheliaCfg.enable autheliaCfg.domain
|
||||
++ lib.optional uiCfg.enable uiCfg.domain
|
||||
);
|
||||
"127.0.0.1" = lib.unique ([ hyperhiveDomain ] ++ cfg.localNames);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue