GitOps repository for personal infrastructure management
  • Nix 32.5%
  • Jinja 21.5%
  • Python 17.9%
  • Shell 11.8%
  • Go 8.1%
  • Other 8.2%
Find a file
Erich Blume 4f2e49f219 Add TTL to zim-watcher CronJob for automatic cleanup
Jobs created by the CronJob will now auto-delete 4 days after completion.
This prevents zombie Jobs from accumulating when the CronJob spec changes
(e.g., image updates), since ArgoCD only tracks the CronJob resource itself,
not the Jobs it spawns.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 07:18:49 -08:00
.claude Add pre-commit hooks for code quality (#19) 2026-01-16 19:33:02 -08:00
.forgejo Simplify CI: remove Tailscale sidecar, use skopeo for push (#74) 2026-01-30 10:18:20 -08:00
.github Rename github readme to avoid display issues on github.com 2026-01-29 11:32:55 -08:00
ansible Add Navidrome music streaming server (#79) 2026-01-31 20:19:31 -08:00
argocd Add TTL to zim-watcher CronJob for automatic cleanup 2026-02-03 07:18:49 -08:00
containers Add skopeo to forgejo-runner image 2026-01-30 11:11:19 -08:00
docs Add docs/ with blumeops zk cards (#82) 2026-02-02 21:40:53 -08:00
mise-tasks Add docs/ with blumeops zk cards (#82) 2026-02-02 21:40:53 -08:00
pulumi Add Gandi DNS management via Pulumi (#54) 2026-01-25 08:15:46 -08:00
.ansible-lint Add pre-commit hooks for code quality (#19) 2026-01-16 19:33:02 -08:00
.gitignore Add pre-commit hooks for code quality (#19) 2026-01-16 19:33:02 -08:00
.pre-commit-config.yaml Switch to Buildah for container builds (#51) 2026-01-24 13:30:26 -08:00
.yamllint.yaml K8s Migration Phase 1: Infrastructure Setup (#29) 2026-01-19 09:49:52 -08:00
Brewfile Add Caddy layer4 for Forgejo SSH (#56) 2026-01-25 11:37:23 -08:00
CLAUDE.md Add docs/ with blumeops zk cards (#82) 2026-02-02 21:40:53 -08:00
mise.toml Add Pulumi for tailnet IaC management (#15) 2026-01-15 20:55:25 -08:00
README.md Add docs/ with blumeops zk cards (#82) 2026-02-02 21:40:53 -08:00

blumeops

                    l0K                                k..:k.
                  .:...c.                            ;c....
                    ....'o                          x.....
                      ....k                        x....
                       ... l'                    'c....
                        ....,l                  o'....
                         .....x                k....
                          .....d.             c....
                            ... l            x....
                              .,.d         ;c.c'
                               'c':;      x',c.
                                .:,'o   .x.::.
                                 .;:.k ,:.c'
                                   ,c.c';:.
                                    .,.:;.
                                   ;'.c, l
                                  d',c..:.d.
                                 O.:;.  'c';c
                               ;c.c'     .:;.x
                              o',c.       .;:.k
                             x.::.          'c.l.
                         dOKl.c,             .c,'o
                   0l'...... ..'              .::.ocx.
                 'o ............              o .... :olx;
                x,ox;. ....... .k             ....,dKKo;..x
              'd,OXXXXk:. ...... ;            ;:dXOl;',';l;o;
             x,oXXXXXXXXXkc. ...              .lc,',':dKNNNx;x;
           ;o;0KXXXXXXXXXXXX0l.                .',ckNNNNNNNNNxco0d
          l,d0oOXKOKXXXXKXXXX0.                  kNNNNNNNNNNNNNXxloo::
             .OXxdXKOX0kXXXX0.                   .KNNNNNNNNNNXONX0o.
                ,OdxKldXXXXx.                     ,NNNNNNNNNNNKoc
                   :.OXXkKo                       .kNNNNNNNNXx.
                      ':0c                         .NdNkXkc

Blue Mops — GitOps for Erich Blume's personal computing environment.

What is this?

Infrastructure-as-code for my tailnet (tail8d86e.ts.net). This repo contains ansible playbooks, configuration, and automation for managing my personal infrastructure.

This codebase was heavily co-authored by Claude Code, as an experiment in LLM-assisted development. I want to include a personal note here that I don't know entirely how I feel about LLMs in our current era, but it felt important to learn.

Development

Pre-commit Hooks

This repo uses pre-commit for code quality and consistency. Install hooks with:

uvx pre-commit install

Run all hooks manually:

uvx pre-commit run --all-files

Hooks include:

  • General: trailing whitespace, end-of-file fixer, large files, merge conflicts
  • Secrets: TruffleHog for secret detection
  • YAML: yamllint, ansible-lint
  • Python: ruff (linting + formatting)
  • Shell: shellcheck, shfmt
  • TOML: taplo
  • JSON: prettier

CI/CD

This repo uses Forgejo Actions for CI/CD. Workflows live in .forgejo/workflows/ (not .github/workflows/). The runner executes jobs in host mode within the Kubernetes cluster.

Documentation

Documentation lives in docs/ and covers infrastructure, services, and operational runbooks. View all docs with:

mise run zk-docs

The docs use Obsidian wiki-link syntax ([[link]]) for cross-references. Edit with any markdown editor, or use obsidian.nvim for enhanced navigation and completion.