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
|
|
@ -250,6 +250,12 @@ struct StateSnapshot {
|
|||
/// local-dev deploys keep working. See `docs/gateway.md::Vhost
|
||||
/// map`.
|
||||
gateway_enabled: bool,
|
||||
/// Public URL of the forge vhost served by hive-gateway (e.g.
|
||||
/// `"http://forge.pr1ma.darkest.space"`). Sourced from the
|
||||
/// `HIVE_FORGE_PUBLIC_URL` env var, which the c0re NixOS module
|
||||
/// sets when `forge.behindGateway = true`. `None` when absent —
|
||||
/// the frontend falls back to `http://<hostname>:3000`.
|
||||
forge_public_url: Option<String>,
|
||||
/// Human name of this single-host hive instance (e.g. `"pr1ma"`).
|
||||
/// Sourced from `HYPERHIVE_HIVE_NAME` env var, set by the c0re
|
||||
/// NixOS module from `services.hyperhive.hiveName`. `None` when
|
||||
|
|
@ -466,6 +472,7 @@ async fn api_state(headers: HeaderMap, State(state): State<AppState>) -> axum::J
|
|||
let s = v.to_string_lossy().to_ascii_lowercase();
|
||||
matches!(s.as_str(), "1" | "true" | "yes")
|
||||
}),
|
||||
forge_public_url: std::env::var("HIVE_FORGE_PUBLIC_URL").ok().filter(|s| !s.is_empty()),
|
||||
hive_name: std::env::var("HYPERHIVE_HIVE_NAME").ok().filter(|s| !s.is_empty()),
|
||||
swarm_name: std::env::var("HYPERHIVE_SWARM_NAME").ok().filter(|s| !s.is_empty()),
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in a new issue