Watch
0
0
Fork
You've already forked hyperhive
0

swarm-ui: build the forge link from swarm.forge.domain

The swarm-controller builds the Forge quick link from
services.hyperhive.swarm.forge.domain, replacing hive-forge/default.nix's
per-host entry, so all seven swarm-service links come from swarm-level
options.

Also drops the remaining references to the removed matrix GUI switch:
the HiveUrls / Urls / hive_urls docs, the hivectl.md `open` note and
the gateway.md vhost-map rows, which name `gatewayHost` instead. The
grafana, victoriametrics and victorialogs modules' comments no longer
mention a quick-link they do not define.

Refs #4885
This commit is contained in:
atlas 2026-10-02 19:39:32 +02:00
commit 72e9e1bb4a
11 changed files with 25 additions and 31 deletions

View file

@ -252,16 +252,6 @@ in
# The forge container resolves the rest of the hive through dnsmasq.
services.hyperhive.gateway.dns.enable = lib.mkDefault true;
# This swarm-ui quick-links entry. See
# `services.hyperhive.swarm.controller.links`'s description.
services.hyperhive.swarm.controller.links = [
{
label = "Forge";
icon = "⚒";
url = "https://${cfg.domain}/";
}
];
# The metrics endpoint, declared once: the collector both scrapes this
# URL and derives from it the audience its token is minted for.
#

View file

@ -31,6 +31,11 @@ let
url = "https://${s.domain}/";
})
[
{
label = "Forge";
icon = "⚒";
inherit (swarmCfg.forge) domain;
}
{
label = "Authelia";
icon = "🔑";
@ -462,13 +467,13 @@ in
add arbitrary extra entries here directly with no swarm-controller
or swarm-ui change.
The Authelia, Grafana, Metrics and Logs entries come from
The Forge, Authelia, Grafana, Metrics and Logs entries come from
`services.hyperhive.swarm.<service>.domain`, the Bao entry from
`services.hyperhive.swarm.bao.ui.domain`, and the Matrix entry
from `services.hyperhive.swarm.matrix.gatewayHost` when it is set,
so they are present whichever host runs each service.
`hive-forge/default.nix` and `swarm-ui.nix` contribute their own
entries, and only where they are enabled on this host.
`swarm-ui.nix` contributes its own API-docs entry wherever the
swarm UI is enabled on this host.
Read only on the host that runs the controller.
'';

View file

@ -388,7 +388,7 @@ in
};
config = lib.mkIf deployCfg.grafana.enable {
# The gateway name and the quick-link, both inside `deploy.grafana` — that
# The gateway name, inside `deploy.grafana` — that
# guard is the load-bearing part. Every hive in a swarm may know this UI
# exists, but only the host that RUNS it may claim the name; a client
# hive declaring the vhost would answer for a service it does not have.

View file

@ -101,7 +101,7 @@ in
# hosts are separate evaluations.
services.hyperhive.swarm.otel.scrapeTargets.victorialogs = "127.0.0.1:${toString cfg.port}";
# The gateway name and the quick-link, both inside `deployCfg.victorialogs.enable` — same
# The gateway name, inside `deployCfg.victorialogs.enable` — same
# "only the host that runs the service may claim the name" guard every
# sibling swarm-service module uses (`swarm-grafana.nix`,
# `swarm-victoriametrics.nix`).

View file

@ -59,7 +59,7 @@ in
};
config = lib.mkIf deployCfg.victoriametrics.enable {
# The gateway name and the quick-link, both inside `deployCfg.victoriametrics.enable` — that
# The gateway name, inside `deployCfg.victoriametrics.enable` — that
# guard is the load-bearing part. Every hive in a swarm may know this
# store exists, but only the host that RUNS it may claim the name; a
# client hive declaring the vhost would answer for a service it does not