## Summary - Rename `date-modified` -> `modified` in all 80 docs and the `docs-check-frontmatter` task Quartz's `CreatedModifiedDate` plugin recognizes `modified`, `lastmod`, `updated`, and `last-modified` — but not `date-modified`. The wrong field name caused Quartz to ignore frontmatter dates entirely and fall through to filesystem timestamps (UTC inside Dagger), showing Feb 12 on pages built late on Feb 11 PST. ## Test plan - [x] `mise run docs-check-frontmatter` passes - [ ] Kick off docs release after merge — verify rendered dates match frontmatter values Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/158
1.4 KiB
1.4 KiB
| title | modified | tags | ||
|---|---|---|---|---|
| Roles | 2026-02-07 |
|
Ansible Roles
Roles for provisioning services on indri. Run via mise run provision-indri.
Available Roles
| Role | Purpose | Service |
|---|---|---|
| alloy | Observability collector | alloy |
| borgmatic | Backup automation | borgmatic |
| borgmatic_metrics | Backup metrics exporter | borgmatic |
| caddy | Reverse proxy & TLS | routing |
| forgejo | Git forge | forgejo |
| jellyfin | Media server | jellyfin |
| jellyfin_metrics | Media metrics exporter | jellyfin |
| minikube | Kubernetes cluster | cluster |
| minikube_metrics | Cluster metrics | cluster |
| zot | Container registry | zot |
| zot_metrics | Registry metrics | zot |
Role Structure
Each role follows Ansible conventions:
ansible/roles/<role>/
├── defaults/main.yml # Default variables
├── tasks/main.yml # Task definitions
├── handlers/main.yml # Handlers (restarts, etc.)
├── templates/ # Jinja2 templates
└── files/ # Static files
Secrets
Roles that need secrets use 1Password via the playbook's pre_tasks. Secrets are gathered at playbook start and passed to roles as variables.
Related
- indri - Target host
- observability - Metrics collection