Watch
0
0
Fork
You've already forked hyperhive
0
Commit graph hyperhive/nix/host-modules
Author SHA1 Message Date
atlas
8d31f0ad27 give openbao's own start the container's long timeout 2026-11-01 15:03:28 +01:00
atlas
868c57321c order the store's readers after its container without wanting it 2026-11-01 13:35:52 +01:00
atlas
b1c828dbf8 let the store container's cold start finish, and order its readers after it 2026-11-01 13:35:52 +01:00
atlas
abf21683b9 agent trust bundle: retry the root fetch inside its start job so a dns blip at boot queues the harness instead of failing it 2026-11-01 13:35:01 +01:00
iris
fec66af1c8 agents board: a busiest-agents table, joined by agent
Five instant table-format queries, one per column, joined on the agent label,
sorted by turns. Checked in a real Grafana 13 against a mock Prometheus.
2026-11-01 13:21:09 +01:00
iris
ed86356928 egress board: join the host tables by labels, one row per group
labelsToFields and merge left a __name__ column and one row per stat on
the multi-stat table. joinByLabels gives a column per stat.
2026-11-01 13:12:31 +01:00
iris
728e1beb6a egress board: the host tables merge their frames, so they are tables and not a series dropdown
A grouped stats query is one frame per group. Labels become columns,
then the frames merge into rows.
2026-11-01 13:12:31 +01:00
damocles
0912e2ca06 claude usage dashboard: count the token and cost panels as increase per step so review classifier sessions show up 2026-11-01 12:02:31 +01:00
atlas
81a57a9f81 containers reach network-online only with a dhcp lease, and bao users wait for it 2026-11-01 11:06:41 +01:00
atlas
04f8683f99 force tuwunel's start limit off over the upstream value 2026-11-01 10:56:22 +01:00
atlas
c4924d227b retry the authelia mint and the appservice render until the store answers, and let tuwunel retry 2026-11-01 10:47:50 +01:00
atlas
3a4b0ffabf render the matrix appservice registration from the store onto tmpfs
swarm-matrix-ctl appservice render now reads the registration's tokens
from the store and renders swarm.yaml under /run/swarm-matrix-appservice,
which tuwunel loads through LoadCredential. It mints a pair only when the
store answers and holds none; a host that has the old files stores their
pair once instead. A store that does not answer fails the unit and keeps
tuwunel down; sync starts it once the store answers.

Refs #4998 (item 3)
2026-10-30 17:38:29 +01:00
atlas
7813337548 agents dashboard: count agents reporting over the selected range 2026-10-30 17:12:11 +01:00
atlas
204abb1d0e read grafana's datasource key from the store into /run, seeding an empty store from the old file 2026-10-30 16:59:07 +01:00
atlas
fcc9c8d0ba drop the one-time migration: seed the store from a leftover file once, leave the file
A leftover plaintext client secret is stored once with -cas=0 when the store holds none, so nothing rotates. A store value wins over a different file. The file is no longer read back, compared or removed, and the migration unit is gone.
2026-10-30 16:57:58 +01:00
atlas
2fc63d844b name the mint, not the publisher, as the writer of the client secrets
Finishes the sweep of prose that said the publisher unit writes or carries the OIDC client secrets: rust docs, nix comments and option descriptions, test names and docs.
2026-10-30 16:57:58 +01:00
atlas
05665c05f3 derive a missing client digest from the secret that exists
A client with a secret in the store or in a leftover file but no digest gets the digest of that secret instead of stopping the unit. The password reaches authelia's prompt through a pty, not argv. A lost mint race takes the winner's secret. Also name the mint, not the publisher, in the remaining rust docs.
2026-10-30 16:57:58 +01:00
atlas
d30cb7d122 keep authelia's oidc client secrets in the store, not on disk
The mint creates each client's secret in the swarm secret store and writes only the digest to disk. It mints only when the store answers and holds none. A new unit moves the plaintext files an earlier release left into the store and removes each once the store holds the same value. The bridge reads its secret from the store into /run before each start. The secret publisher unit and its path unit are gone.
2026-10-30 16:57:58 +01:00
iris
e334e677e0 egress dashboard: match squid's result codes by prefix
"TCP_" alone is a word filter for the token TCP_, which no result code is, so
the overview and refused tabs read zero. "TCP_"* matches TCP_TUNNEL and the
rest. The module-eval case now fails on the bare form.
2026-10-30 16:15:19 +01:00
iris
6b0c06800b egress dashboard: tabs like the agents board, with totals on the first
The board was one page of would-deny panels. It now has three tabs: overview
(requests, agents active, refused, credential challenges, data transferred,
status over time, busiest agents and destinations), refused (the hosts each
agent was refused) and would-deny (the old panels). The module-eval check pins
the tab layout and both squid log layouts the queries parse.
2026-10-30 16:10:02 +01:00
atlas
7eb9db47d6 declare the root-check link on hosts without a controller too 2026-10-30 11:18:53 +01:00
atlas
29c57e058a run the platform containers' root check through a build-independent path 2026-10-30 11:13:16 +01:00
atlas
700279026f add the egress log dashboard 2026-10-30 08:53:03 +01:00
atlas
e46ad07226 add a per-agent egress log mode 2026-10-30 08:52:22 +01:00
atlas
221c3f35a1 remove the hive-c0re forge-credential chain nothing reads any more
With no nix build on the hive, the boot publish of the forge token for nix has no reader. Removes the ForgeSweep node, the token file, the git credential helper and hive-c0re's forge gitconfig sections.
2026-10-29 22:55:31 +01:00
atlas
4590b04cac remove the hive's local build of agent closures
A rebuild or create downloads the closure the swarm built and applies it; with none to deploy it fails and changes nothing. hive-priv takes a store path instead of an internal/meta commit and builds nothing.
2026-10-29 22:17:07 +01:00
atlas
70538fb209 move c0re.hyperhiveFlake to deploy.hyperhiveFlake 2026-10-29 14:31:20 +01:00
atlas
c9096484d7 fold the container units into the one journalUnits definition 2026-10-29 12:52:54 +01:00
atlas
e316e683c3 ship container unit journals through the hive collector 2026-10-29 12:49:03 +01:00
atlas
da16487800 move the squid host options to deploy.hive-controller.squid 2026-10-29 09:53:20 +01:00
atlas
525de62b06 move the small per-service host options to deploy.<service> 2026-10-29 08:44:11 +01:00
atlas
7e2f4ce7c8 always include a hive's own allowedDomains in the rendered swarm-wide list 2026-10-29 08:25:22 +01:00
atlas
c5a876b845 derive an agent's backend hosts into the egress allow list at the controller 2026-10-29 08:25:22 +01:00
atlas
4f32948a97 warn when the in-swarm cache runs under another domain 2026-10-29 08:24:44 +01:00
atlas
74f463c40e move the c0re host options to deploy.hive-controller 2026-10-29 01:08:41 +01:00
atlas
f22f4ee6ac let the operator's oidc login write the cache's tokens and facts 2026-10-29 00:09:12 +01:00
atlas
e0d2350902 ignore a failed warn-only root check: prefix its ExecStartPre with a dash 2026-10-28 23:52:37 +01:00
atlas
24afc89ab3 run the root check warn-only on hyperhive's own containers, per unit, not on the container@ template 2026-10-28 23:50:58 +01:00
atlas
c191975aab check every container's root before its start, through the container@ template 2026-10-28 23:50:58 +01:00
atlas
46693b3c25 repeat the security headers in the swarm api 401 location 2026-10-28 23:37:22 +01:00
damocles
6dbb18b6d4 drop the hive-side matrix code: sweep, hivectl matrix and the apiUrl option 2026-10-28 23:04:55 +01:00
atlas
a00bcb8c05 merge the self-scrape into each collector's settings instead of defining them twice 2026-10-28 23:02:18 +01:00
atlas
73c966a7eb container collectors scrape their own telemetry and push it up their hop 2026-10-28 23:02:18 +01:00
atlas
c9abc2a42b make squid's allowed domains editable at runtime in the swarm ui 2026-10-28 23:01:43 +01:00
atlas
836b15a46e harden the ephemeral-root salvage: clone, check space, lock
- clone each file with FICLONE, copy the data only where that fails
- skip the salvage when the copy would leave too little free space
- hold a per-container flock and one copy at a time across containers
- run WriteNspawnFlags on the blocking pool
2026-10-28 23:01:04 +01:00
damocles
ae9c3444bc test the invite room check and the no-homeserver sweep, drop the last space wording 2026-10-28 21:07:32 +01:00
damocles
fd01848d4d also stop provisioning the hive space and make hivectl matrix invite take a room 2026-10-28 20:57:41 +01:00
damocles
c7f3706597 stop provisioning the hive-chat room in the matrix sweep 2026-10-28 20:44:48 +01:00
atlas
099af86cd2 raise the cert role token ttl to 1h 2026-10-28 20:35:11 +01:00
atlas
00df3ccffb give cert-auth role tokens a 15m ttl so logins stop leaving 32-day leases 2026-10-28 20:35:11 +01:00