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 ce6c5b6b37 Refactor kiwix role to use shell scripts instead of ansible loops
Replace ansible loops for torrent syncing and ZIM symlinking with
standalone shell scripts that handle all items in a single pass:

- kiwix-sync-torrents.sh: Reads torrent URLs from file, adds missing
  ones to transmission in one execution
- kiwix-symlink-zims.sh: Symlinks all completed ZIM files from download
  directory to kiwix directory in one pass
- kiwix-torrents.txt: Generated list of torrent URLs from inventory

This reduces ansible output noise and improves execution speed by
avoiding per-item task invocations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 22:19:46 -08:00
.claude Add pre-commit hooks for code quality (#19) 2026-01-16 19:33:02 -08:00
ansible Refactor kiwix role to use shell scripts instead of ansible loops 2026-01-16 22:19:46 -08:00
mise-tasks Add pre-commit hooks for code quality (#19) 2026-01-16 19:33:02 -08:00
pulumi Add pre-commit hooks for code quality (#19) 2026-01-16 19:33:02 -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 Add pre-commit hooks for code quality (#19) 2026-01-16 19:33:02 -08:00
.yamllint.yaml Add pre-commit hooks for code quality (#19) 2026-01-16 19:33:02 -08:00
Brewfile Add zk-docs mise task for zettelkasten documentation (#10) 2026-01-15 11:25:02 -08:00
CLAUDE.md Remove ansible role meta dependencies to fix duplicate execution 2026-01-16 22:06:31 -08:00
mise.toml Add Pulumi for tailnet IaC management (#15) 2026-01-15 20:55:25 -08:00
README.md Add pre-commit hooks for code quality (#19) 2026-01-16 19:33:02 -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

Documentation

Detailed documentation lives in my personal zettelkasten, which is not included in this repository. You can view the docs with:

mise run zk-docs

The zettelkasten is private at time of writing. If you're interested in the documentation or have questions about this project, please reach out to blume.erich@gmail.com.