fix(#888): use gateway forge URL in dashboard links
Dashboard links to the forge were hardcoded as http://<hostname>:3000, which breaks when the operator accesses the dashboard through hive-gateway (forge is served at forge.<domain> with no port). - nix/modules/hive-c0re.nix: inject HIVE_FORGE_PUBLIC_URL when forge.behindGateway = true (e.g. http://forge.pr1ma.darkest.space) - hive-c0re/src/dashboard.rs: expose forge_url: Option<String> in StateSnapshot, reading from HIVE_FORGE_PUBLIC_URL - frontend/packages/dashboard/src/tabs.js: use state.forge_url when present; fall back to http://<hostname>:3000 for gateway-off / local-dev deploys
This commit is contained in:
parent
61b9c23613
commit
d3ca857659
5 changed files with 37 additions and 3 deletions
|
|
@ -299,6 +299,16 @@ in
|
|||
# When true the dashboard builds same-origin `/agent/<name>/`
|
||||
# links; when false it falls back to direct `<host>:<port>` TCP.
|
||||
HIVE_GATEWAY_ENABLED = "1";
|
||||
}
|
||||
// lib.optionalAttrs (config.services.hyperhive.forge.enable && config.services.hyperhive.forge.behindGateway) {
|
||||
# Public URL of the forge vhost served by hive-gateway. The
|
||||
# dashboard uses this to build browser-facing forge links
|
||||
# instead of hardcoding `<hostname>:3000`, which breaks when
|
||||
# the operator accesses the dashboard through the gateway
|
||||
# (forge sub-domain has no port; direct port URL would be
|
||||
# wrong). Absent when `behindGateway = false` — dashboard
|
||||
# falls back to `<hostname>:3000`.
|
||||
HIVE_FORGE_PUBLIC_URL = "https://${config.services.hyperhive.forge.domain}";
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = "${cfg.package}/bin/hive-c0re --socket /run/hyperhive/host.sock serve --hyperhive-flake ${cfg.hyperhiveFlake} --dashboard-port ${toString cfg.dashboardPort} --operator-pronouns ${lib.escapeShellArg cfg.operatorPronouns} --context-window-tokens ${lib.escapeShellArg (builtins.toJSON cfg.contextWindowTokens)}";
|
||||
|
|
|
|||
Loading…
Reference in a new issue