No description
  • Python 96.3%
  • Dockerfile 3.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
John Sturgeon a64fcbe906 Fix media-fix-permissions and alert_on_failure
media-fix-permissions:
  - `username: foo` on the fix task, so it could never have authenticated.
  - Both `cd homelab-pyinfra` lines failed ("No such file or directory") while
    `just` resolved its recipe anyway, so the directory was never needed.
    Removed rather than chained -- `cd X && just` would have stopped `just`
    from running at all.
  - The audit exits 1 when it finds drift, which is the normal case and the
    reason the fix task exists. That failed the task and the flow stopped
    before the fix ever ran, so drift was detected and never corrected.
    `|| true` keeps the audit informational. Deliberately not `allowFailure`,
    which ends the execution in WARNING and would mail an alert every 30
    minutes for something that self-heals on the next task.

alert_on_failure:
  - SMTP username/password were routed through `variables:`, so the mailer got
    the literal expression text and Purelymail answered 535. Same
    non-recursive-rendering trap as tenant_sync; call secret() on the task.

Audited the other eight flows: no other flow-level variable holds an
expression, and no remaining uses of ForEach, pluginDefaults, trigger
conditions, json(), CANCELED, log.Fetch, execution.Count/Resume or
trigger.Toggle.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 11:56:53 +02:00
.forgejo/workflows updated 2026-08-01 21:19:59 +02:00
.run fixed sync pihole dns 2026-07-17 15:24:33 +02:00
adb-tuner Adding docker compose for adb-tuner 2026-02-14 21:27:09 +01:00
audiobookshelf-metadata Added audiobookshelf 2026-08-02 16:11:51 +02:00
channels-mlb Updated to support external volume 2026-07-15 11:27:10 +02:00
eplustv added eplustv 2026-07-12 21:29:42 +02:00
fastchannels readded tz 2026-07-15 21:51:33 +02:00
fruitdeeplinks Migrate README to Komodo and add fruitdeeplinks stack 2026-05-26 18:01:03 +02:00
homelab-utils/ha-presence-simulator cleaned up paths on the docker compose for HA Presence Simulation 2026-03-02 09:58:39 -08:00
kestra moved docker to komodo deployable area 2026-07-09 09:26:03 +02:00
kestra-ns-files Fix media-fix-permissions and alert_on_failure 2026-09-16 11:56:53 +02:00
op-python-base Updated base python image to include plexapi 2026-08-04 08:55:21 +02:00
pangolin Fixed error with pangolin 2026-07-08 19:15:02 +02:00
registry renamed yaml 2026-07-17 12:33:33 +02:00
tgfp Added tgfp to the stack 2026-08-14 21:09:42 +02:00
tidarr Fixed tidarr permissions for group write of files 2026-06-25 11:42:01 +02:00
tindra Added the PUBLIC_URL variable to Tindra 2026-08-14 15:11:47 +02:00
.gitignore fixed sync pihole dns 2026-07-17 15:24:33 +02:00
a touched a 2026-07-22 17:14:33 +02:00
README.md Update README.md 2026-07-17 22:11:08 +02:00

homelab-stacks

Docker Compose stacks for my homelab, managed via Komodo with GitOps auto-sync.

Note: Migrated from Dockhand to Komodo.

Structure

Each stack lives in its own directory with a docker-compose.yml and optional .env file:

stack-name/
  docker-compose.yml
  .env (if needed)

Deployment

Stacks are deployed to remote Docker hosts via Komodo + Periphery agents over Tailscale. Komodo syncs from this repo and manages the full lifecycle — deploy, update, rollback.

Hosts

Stacks are distributed across multiple Proxmox LXC containers, each running Docker with a Periphery agent. Host assignments are configured in Komodo's server settings, not in this repo.

Notes

  • All volume paths use absolute paths (required for Periphery remote deployment)
  • Sensitive values go in Komodo's variable/secret management, not committed here
  • Komodo polls this repo for changes; pushes trigger redeployment of affected stacks
  • Webhooks push to Kestra (on push) and Komodo (on new release)