blumeops/argocd/manifests
Erich Blume a2f1e06224 Add hephaestus sync hub to indri (launchagent, PWA, device-code OIDC) (#369)
Makes indri the canonical **heph** hub for the hub-and-spoke task/context system, deployed as a self-updating LaunchAgent managed by Ansible. Other devices (gilbert) attach as offline-capable spokes.

## What's here
- **`ansible/roles/heph`** (tag `heph`) — bootstrap `cargo install hephd` (only if absent; `--self-update` keeps it current after), version-pinned `heph-pwa` checkout served via `--web-root`, launchagent `mcquack.eblume.heph`:
  ```
  hephd --mode server --http-addr 0.0.0.0:8787 --db … --web-root …
        --oidc-issuer …/o/heph/ --oidc-audience heph
        --self-update --self-update-interval-secs 600
  ```
  `~/.cargo/bin` is on the agent `PATH` so self-update's `cargo install` works.
- **Caddy** — `heph.ops.eblu.me → localhost:8787` (TLS for the PWA secure context).
- **Authentik** — new `heph` **public device-code** OIDC app + `default-device-code-flow` bound to the default brand's `flow_device_code` (verified live: brand `authentik-default`, field currently unset → additive).
- **Docs** — `services/hephaestus.md` (Path-A seeding runbook + spoke caveat), `indri.md`, changelog fragment.

## Three features requested
- **Autoupdate** — 10-min interval (`--self-update-interval-secs 600`).
- **PWA** — `--web-root` (confirmed shipped in v1.2.0).
- **Spoke** — gilbert reconfig documented (post-merge step).

## Deploy plan (not done yet — awaiting review)
1. Seed from gilbert (Path A): `heph daemon stop` → copy `heph.db` → `DELETE FROM meta WHERE key='origin'`.
2. Sync Authentik `apps`/blueprint; verify blueprint status via API (not just logs).
3. `provision-indri --tags heph,caddy` from this branch.
4. Point gilbert at the hub + `heph auth login`.

## Known follow-ups (heph-side, tracked in the Hephaestus project)
- `heph daemon` can't bake hub/spoke config or pass `--self-update-interval-secs` → worked around by the ansible plist.
- Path-A seeding lacks a clean `hephd --owner-id`/seed command → manual `meta.origin` reset for now.
- Self-update moves hephd ahead of the ansible-pinned PWA shell over time (drift; tolerated by the SW cache, revisit on next release).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: #369
2026-06-05 06:46:58 -07:00
..
1password-connect Migrate 1Password Connect from Helm to kustomize (1.8.1 → 1.8.2) (#326) 2026-04-06 07:31:40 -07:00
alloy-k8s C0: wave-1 decommission follow-ups (argocd admin RBAC, teslamate probe) 2026-06-03 13:02:05 -07:00
alloy-ringtail C0: move immich blackbox probe to ringtail alloy 2026-05-17 08:46:22 -07:00
alloy-tracing-ringtail C0: alloy — bump kustomization tags to main-branch SHA 2026-05-01 08:31:27 -07:00
argocd C0: wave-1 decommission follow-ups (argocd admin RBAC, teslamate probe) 2026-06-03 13:02:05 -07:00
authentik Add hephaestus sync hub to indri (launchagent, PWA, device-code OIDC) (#369) 2026-06-05 06:46:58 -07:00
cloudnative-pg Port CloudNative-PG off Helm to direct release manifest (#268) 2026-02-25 17:37:53 -08:00
databases Decommission wave-1 minikube services (paperless, teslamate, mealie) (#365) 2026-06-03 12:36:06 -07:00
databases-ringtail Wire ringtail blumeops-pg into backups + Grafana (#364) 2026-06-03 12:25:30 -07:00
external-secrets C0: rebuild external-secrets off main, repoint both clusters to stable tags 2026-06-04 16:19:20 -07:00
external-secrets-ringtail C0: rebuild external-secrets off main, repoint both clusters to stable tags 2026-06-04 16:19:20 -07:00
forgejo-runner chore: repoint runner-job-image tag at CI-built v0.20.6-50f8c2a 2026-04-21 08:38:33 -07:00
frigate C0: bump frigate-notify to v0.5.4-e928054-nix (workdir fix) 2026-04-21 09:44:24 -07:00
grafana Wire ringtail blumeops-pg into backups + Grafana (#364) 2026-06-03 12:25:30 -07:00
grafana-config C1: deploy adelaide-baby-shower-app to ringtail k3s (#349) 2026-05-11 13:47:18 -07:00
homepage C0: drop duplicate Homepage static entries for ringtail-migrated services 2026-06-03 15:31:59 -07:00
immich-ringtail C0: rebuild valkey from squashed main commit 2026-05-28 14:53:21 -07:00
kingfisher Add compensating controls framework and date-based report dirs (#320) 2026-03-30 17:44:11 -07:00
kiwix Update kiwix-serve to Dagger-built container (Alpine 3.23) 2026-04-17 14:27:42 -07:00
kube-state-metrics Pin kube-state-metrics to main-SHA container tags 2026-04-07 16:10:14 -07:00
kube-state-metrics-ringtail Pin kube-state-metrics to main-SHA container tags 2026-04-07 16:10:14 -07:00
loki Add RuntimeDefault seccomp profiles to all managed workloads 2026-03-24 16:19:40 -07:00
mealie-ringtail C0: mealie-ringtail image rebuilt from main (e0057b4-nix) 2026-06-03 12:26:55 -07:00
miniflux Update navidrome, miniflux, forgejo-runner image tags to Alpine 3.23 builds [main] 2026-04-16 15:37:30 -07:00
navidrome Update navidrome, miniflux, forgejo-runner image tags to Alpine 3.23 builds [main] 2026-04-16 15:37:30 -07:00
ntfy Add RuntimeDefault seccomp profiles to all managed workloads 2026-03-24 16:19:40 -07:00
nvidia-device-plugin Recurring review sweep: 4 doc cards + nvidia-device-plugin v0.19.2 (#366) 2026-06-04 13:37:02 -07:00
ollama Upgrade ollama from 0.17.5 to 0.20.4 2026-04-09 06:42:05 -07:00
paperless-ringtail C0: ringtail wave-1 images rebuilt from main (fcac8e5-nix tags) 2026-06-03 10:36:15 -07:00
prometheus Add RuntimeDefault seccomp profiles to all managed workloads 2026-03-24 16:19:40 -07:00
prowler Rip out compensating-controls framework (#359) 2026-05-22 21:08:53 -07:00
shower C0: deploy shower v1.1.3 (kustomize newTag bump) 2026-05-15 20:09:54 -07:00
tailscale-operator Expose Forgejo publicly at forge.eblu.me (#278) 2026-03-03 08:40:41 -08:00
tailscale-operator-base C0: point tailscale-operator base mirror fetch at tailnet forge 2026-06-04 12:40:21 -07:00
tailscale-operator-ringtail C0: tailscale main-SHA rebuild for ringtail proxyclass 2026-05-06 06:52:39 -07:00
tempo Point Tempo at main-built container v2.10.3-75f9ba4 2026-04-02 13:45:57 -07:00
teslamate-ringtail C0: ringtail wave-1 images rebuilt from main (fcac8e5-nix tags) 2026-06-03 10:36:15 -07:00
torrent Deploy transmission containers from Dagger builds 2026-04-15 11:34:28 -07:00
unpoller C0: rebuild unpoller container from squashed main commit 2026-05-28 10:10:21 -07:00