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 aae206fbc6 Decouple ZIM/torrent ansible tasks for faster provisioning
- Simplify kiwix role from 213 lines to 151 lines
- Replace per-archive torrent status loops with single shell command
- Decouple kiwix startup from declared inventory - now serves whatever
  completed ZIM files exist in transmission download directory
- Remove redundant status rechecks and waits
- Fix tailscale_serve role to handle empty JSON in check mode

This reduces ansible runtime by ~3 minutes by eliminating O(n) shell
invocations per archive (previously ~132 operations, now ~5).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 15:12:43 -08:00
.claude
ansible Decouple ZIM/torrent ansible tasks for faster provisioning 2026-01-16 15:12:43 -08:00
mise-tasks Use explicit PostgreSQL superuser name and fix check mode (#17) 2026-01-16 14:41:36 -08:00
pulumi Add PostgreSQL and Miniflux services to tailnet (#16) 2026-01-16 12:30:20 -08:00
.gitignore
Brewfile Add zk-docs mise task for zettelkasten documentation (#10) 2026-01-15 11:25:02 -08:00
CLAUDE.md Add PostgreSQL and Miniflux services to tailnet (#16) 2026-01-16 12:30:20 -08:00
mise.toml Add Pulumi for tailnet IaC management (#15) 2026-01-15 20:55:25 -08:00
README.md Add zk-docs mise task for zettelkasten documentation (#10) 2026-01-15 11:25: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.

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.