my-homelab-configs/infra
jv fe661f9b24 Add Matrix/Hermes/Omniroute to jeannie pipeline (SOPS-encrypted secrets)
Codify the full Matrix homeserver stack, OmniRoute LLM gateway, and
Hermes agent into the Jeannie deploy pipeline so the repo reproduces
the running homelab from scratch.

New files:
  infra/matrix-server/  — Synapse + Postgres + Element docker-compose,
    homeserver.yaml.tpl, log_config, element config, bootstrap.sh
  infra/omniroute/      — diegosouzapw/omniroute:latest on port 20128
  infra/hermes.secret.yaml   — SOPS-encrypted bot password + API key
  infra/matrix-server/matrix.secret.yaml — SOPS-encrypted Synapse secrets
  .sops.yaml            — age recipient + encrypted_regex: '.*'

jeannie additions:
  deploy_matrix()  — renders homeserver.yaml from template, creates
    signing key via 'generate' on first boot, delegates to bootstrap.sh
  deploy_omniroute() — docker compose up with env-file support
  deploy_hermes()  — git clone + venv + 'hermes gateway install',
    writes ~/.hermes/.env (mode 600), registers non-admin bot via
    shared-secret CLI, idempotent
  sops_load_secrets() — decrypts *.secret.yaml via age key at deploy
    time; fails loudly if the age key is missing
  ensure_sops_age_tools() — installs sops from getsops GitHub release
    when apt has no sops package (Debian trixie)

DAG: hermes-deploy depends on matrix-deploy + omniroute-deploy.

Root cause: deploy_hermes previously used wrong entrypoint (python
module instead of ./hermes launcher); generate was called with
--generate-config (invalid subcommand); .sops.yaml encrypted_regex
'^password$' left prefixed keys as plaintext — all fixed in this
commit.
2026-09-16 11:37:13 -05:00
..
agent-sandbox Restart NotReady Pimox worker during heal 2026-06-30 14:10:27 -06:00
ai Add Jeannie memory provenance checks 2026-06-30 13:19:49 -06:00
ai-evals Add homelab AI evals harness 2026-06-30 11:45:29 -06:00
ai-scheduler Add AI workload scheduler simulator 2026-06-30 13:17:57 -06:00
arr-stack Add generated docs config 2026-06-27 15:42:59 -06:00
artifact-cache Add optional artifact cache stack 2026-06-29 17:49:26 -06:00
blockchain-devnet Add blockchain devnet metrics dashboard 2026-06-29 19:22:23 -06:00
gitea Add generated docs config 2026-06-27 15:42:59 -06:00
heimdall Heimdall seeds 2026-07-02 16:56:56 -06:00
incident-commander Add AI incident commander 2026-06-30 11:50:10 -06:00
jeannie-explain Improve Jeannie explain readability 2026-06-29 20:37:03 -06:00
jeannie-impact Add Jeannie change impact analysis 2026-06-29 20:44:49 -06:00
matrix-server Add Matrix/Hermes/Omniroute to jeannie pipeline (SOPS-encrypted secrets) 2026-09-16 11:37:13 -05:00
model-observatory Add model behavior observatory 2026-06-30 13:24:54 -06:00
omniroute Add Matrix/Hermes/Omniroute to jeannie pipeline (SOPS-encrypted secrets) 2026-09-16 11:37:13 -05:00
pimox Add Pimox golden image ledger 2026-06-29 17:50:24 -06:00
promotion Add canary promotion gates 2026-06-30 13:22:50 -06:00
red-blue-loop Add red blue security loop 2026-06-30 13:21:15 -06:00
rpi-services Update docker root dir in rpi 2026-07-02 09:02:52 -06:00
safety-cases Add safety case generator 2026-06-30 13:15:07 -06:00
tailscale Add repo-managed Tailscale ACL policy 2026-06-27 17:46:21 -06:00
youtube-backup Add generated docs config 2026-06-27 15:42:59 -06:00
hermes.secret.yaml Add Matrix/Hermes/Omniroute to jeannie pipeline (SOPS-encrypted secrets) 2026-09-16 11:37:13 -05:00
resource-budgets.yml Add resource budget policy checks 2026-06-29 17:45:31 -06:00
resource-recommendations.yml Moving heimdall outside k8s 2026-07-02 15:49:00 -06:00