Commit Graph

456 Commits

Author SHA1 Message Date
jv 556e5002f1 fix: use nodesource for nodejs to avoid debian repo 404s
Homelab Main / validate (push) Failing after 21s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-18 09:36:03 -05:00
jv 627d0d13b9 fix: use golang:1.23-bullseye container for jeannie-core
Homelab Main / validate (push) Failing after 52s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-18 09:25:41 -05:00
jv bb909f139e fix: install golang-go for jeannie-core build
Homelab Main / validate (push) Failing after 20s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-18 09:20:48 -05:00
jv 25e55e4d7a fix: install python3-yaml for jeannie validation
Homelab Main / validate (push) Failing after 8s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-18 09:09:26 -05:00
jv ff4d98aa4e fix: change --depth 0 to --depth 100 for compatibility
Homelab Main / validate (push) Failing after 5s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-18 09:07:05 -05:00
jv 0e41c661b7 fix: remove pipefail from sh shell
Homelab Main / validate (push) Failing after 2s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-18 09:00:49 -05:00
jv 0d6f6ec2a0 fix: replace actions/checkout with manual git clone to fix URL path issue
Homelab Main / validate (push) Failing after 1s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-18 08:55:05 -05:00
jv 6926e20c83 fix: use default checkout with GITEATOKEN
Homelab Main / validate (push) Failing after 38s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-18 08:47:21 -05:00
jv 98f69b2677 fix: use full HTTPS URL for checkout to force /git/ path
Homelab Main / validate (push) Failing after 3s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-18 08:43:30 -05:00
jv 2fc77c0d80 fix: update secret name to GITEATOKEN
Homelab Main / validate (push) Failing after 37s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-18 08:34:43 -05:00
jv b0e94c60b6 fix: use repository property to align with ROOT_URL /git/
Homelab Main / validate (push) Failing after 40s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-18 08:07:28 -05:00
jv b3cbcf525c fix: remove explicit ref from checkout to avoid repository not found
Homelab Main / validate (push) Failing after 43s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-17 23:38:15 -05:00
jv dca1d9f0a0 fix: set fetch-depth 0 to fix git error 128
Homelab Main / validate (push) Failing after 42s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-17 23:27:24 -05:00
jv 02f74ce659 fix: clean up workflow duplication and syntax
Homelab Main / validate (push) Failing after 1m17s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-17 23:19:16 -05:00
jv e635e73e2b fix: simplify container image definition for k8s runner 2026-09-17 22:32:02 -05:00
jv 6c570f6217 fix: set container image for k8s runner to provide node/python 2026-09-17 22:12:43 -05:00
jv 7bb6f3f819 fix: migrate to actions/checkout for k8s runner
Homelab Main / validate (push) Failing after 12s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-17 22:10:25 -05:00
jv 1dfd3145e5 fix: add k8s label to runner to match workflow
Homelab Main / validate (push) Failing after 0s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-17 21:53:01 -05:00
jv 71add0daef fix: update gitea-runner with correct registration token
Homelab Main / validate (push) Failing after 1s Details
Homelab Main / deploy (push) Has been skipped Details
2026-09-17 21:28:22 -05:00
jv 878c84637b chore: update workflow to use k8s runner
Homelab Main / validate (push) Waiting to run Details
Homelab Main / deploy (push) Blocked by required conditions Details
2026-09-17 20:45:15 -05:00
jv c0830e2d63 feat: add argocd application for gitea-runner 2026-09-17 20:25:08 -05:00
jv 106a5a4752 fix: correctly encrypt gitea-runner secrets using sops 2026-09-17 20:21:26 -05:00
jv 9c64a79aef feat: implement containerized gitea-runner with encrypted secrets 2026-09-17 20:20:33 -05:00
jv 4d7b9d0216 chore: update website blog with worker-03 expansion and sync homelab.yml 2026-09-17 16:04:20 -05:00
jv c7f6e90ba2 Revert blog translation path to Redis (Valkey migration pending) 2026-09-17 08:37:40 -05:00
jv cafe804d71 Fix render script filename extension bug 2026-09-16 22:17:52 -05:00
jv be02fa45d2 Modularize documentation and add architecture diagram 2026-09-16 22:00:00 -05:00
jv 6dfae38adf Platform: re-keyscan Argo CD GitOps SSH host on every apply
The argocd_private_repo provisioner only ran when its static triggers
(namespace, repo_url, ssh_key_path) changed. When the Gitea SSH host key
rotated (container rebuild / Debian rekey), the trigger set stayed
identical so tofu apply never re-ran the ssh-keyscan, silently leaving
Argo CD with 'knownhosts: key is unknown' and all Applications in
ComparisonError.

Add a timestamp()-based scan_revision trigger so the keyscan +
configmap/secret merge runs on EVERY apply, self-healing the host key
in argocd-ssh-known-hosts-cm. The provisioner is idempotent (reads the
existing configmap, merges the fresh scan, sorts, reapplies), so
re-running is safe.
2026-09-16 11:54:25 -05:00
jv dce4fa6022 Edge matrix vhost, node-exporter scrape, arr/rpi refinements
- bootstrap/edge: add matrix-vhost template + matrix.conf mount
  (isolated cert path), config_hash includes matrix.conf so tofu
  regenerates edge config when it changes; add node-exporter sidecar
- bootstrap/platform: prometheus additionalScrapeConfigs for rpi-node
  and oci-edge-node targets, plus node-exporter edge port 9100
- apps/homelab-alerts: host filesystem >85% alert
- infra/arr-stack + rpi-services: compose refinements
- .gitignore: ignore tofu tfstate backups (*.tfstate.*.backup)
2026-09-16 11:37:35 -05:00
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
juvenal.diaz d6e33250f4 Gates for pimoc workers with less than 2 cpus 2026-07-23 13:16:11 -06:00
juvenal.diaz fb605ffa8b Increase argocd limits 2026-07-23 11:32:23 -06:00
juvenal.diaz 6277dfb5d2 Confir what argo is watching 2026-07-22 23:31:10 -06:00
juvenal.diaz 005a3c4b84 Make helm do not block 2026-07-22 23:10:11 -06:00
juvenal.diaz 101668fbc9 Fixes stale state in tofu 2026-07-22 22:35:23 -06:00
juvenal.diaz 318ba53eb0 Fixes stale helm 2026-07-22 22:22:54 -06:00
juvenal.diaz 0d05159054 Fix apt interpolation 2026-07-22 22:11:57 -06:00
juvenal.diaz 9df2dd0fd4 Making apt cms ricker in pimox workers 2026-07-22 22:07:17 -06:00
juvenal.diaz a47f4b56e9 Using dedicated known host file for ephemeral pimox workers 2026-07-22 21:43:36 -06:00
juvenal.diaz 1f94eebca2 Fixing terraform error 2026-07-22 21:32:24 -06:00
juvenal.diaz 53e7fbd228 Failing faster on no ip for pimox template 2026-07-22 21:17:33 -06:00
juvenal.diaz 7c0936d889 Fixing pimox template ip 2026-07-22 20:42:19 -06:00
juvenal.diaz 58af55e7e0 Fixing pimox worker seen one cpu instead of two 2026-07-22 19:09:55 -06:00
juvdiaz de990cdfb3 adding platform agument 2026-07-02 21:38:48 -06:00
juvdiaz 7a0a54b60b untrim srgocd after adding 2nd worker 2026-07-02 21:20:14 -06:00
juvdiaz 8c07e3f27b wait on iptables lock 2026-07-02 21:02:49 -06:00
juvdiaz 41db105b8b disabling dex in argo 2026-07-02 20:38:52 -06:00
juvdiaz d5458a3482 Limit diagnostic to failed component 2026-07-02 20:21:31 -06:00
juvdiaz 1e63d0cbc8 Fixing k8s api timing 2026-07-02 19:26:43 -06:00
juvdiaz 12cde3acac Fixing k8s api timing 2026-07-02 17:40:50 -06:00