-
BlumeOps v1.11.5 Stable
released this
2026-02-26 07:56:02 -08:00 | 524 commits to main since this releaseBlumeOps release v1.11.5
What's Changed
Features
- Add authenticated GitHub mirror sync with PAT rotation tooling (
mirror-update-pats,mirror-createauth support, how-to doc). - Add Transmission Grafana dashboard with metrics exporter sidecar for monitoring upload/download speeds, transfer volumes, and per-torrent breakdowns.
Bug Fixes
- Fix Frigate dashboard "Detection Events Rate" panel showing no data — corrected metric name to
frigate_camera_events_totaland label tocamera. - Filter car and bird detections from Frigate driveway zone to stop repeated alerts on parked cars at night
Infrastructure
- Port CloudNative-PG operator from Helm chart to direct upstream release manifest via forge mirror.
- Add multi-cluster Kubernetes observability: deploy kube-state-metrics and Alloy on ringtail (k3s), add
clusterlabel to all metrics/logs, replace single-cluster dashboards with multi-cluster Kubernetes dashboard and dedicated Ringtail dashboard with GPU monitoring. - Add explicit ExternalSecret defaults for SSA sync parity with ArgoCD v3.3
- Upgrade ArgoCD from v3.2.6 to v3.3.2 with Server-Side Apply enabled
AI Assistance
- Bake default bat options into
ai-docsmise task so agents no longer need verbose flags at session start. - docs-review task now prints the file path instead of the file content, so the LLM reads it directly.
Documentation
Download
docs-v1.11.5.tar.gzand configure the quartz container with:DOCS_RELEASE_URL=https://forge.ops.eblu.me/eblume/blumeops/releases/download/v1.11.5/docs-v1.11.5.tar.gzDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
docs-v1.11.5.tar.gz
2 downloads ·
2026-02-26 07:56:02 -08:00 · 1.5 MiB
- Add authenticated GitHub mirror sync with PAT rotation tooling (
-
BlumeOps v1.11.4 Stable
released this
2026-02-25 07:04:22 -08:00 | 537 commits to main since this releaseBlumeOps release v1.11.4
What's Changed
Features
- Add
mirror-createmise task for creating upstream mirrors in themirrors/Forgejo org
Bug Fixes
- Fix Grafana OAuth role mapping: INI parser was stripping quotes from
role_attribute_path = 'Admin', causing all Authentik users to get Viewer role instead of Admin. Now uses group-based mapping from theadminsAuthentik group. - Fix TeslaMate dashboards showing "No Data": Grafana 12.x's
grafana-postgresql-datasourceplugin requires the database name injsonData, not just the top-leveldatabasefield.
Infrastructure
- Move image tags to kustomize
images:transformer across 22 services and replace hand-written ConfigMaps withconfigMapGenerator:in 12 services, enabling content-hash-based automatic rollouts on config changes. - Migrate upstream mirror repos from
eblume/tomirrors/Forgejo organization - Port Prometheus to local container build (3-stage: Node UI, Go binaries, Alpine runtime) for supply chain control via Zot registry.
- Fix ArgoCD app definitions and credential template to use
mirrors/org after forge mirror migration; bump immich v2.5.2 → v2.5.6. - Document AirPlay cross-VLAN firewall rules for Samsung Frame TV (established/related, AirPlay ports, dynamic reverse) and fix rule ordering in segment-home-network plan.
- Update image tags for all 6 mirror-migrated containers (homepage, navidrome, ntfy, miniflux, prometheus, teslamate)
- Switch prometheus, teslamate, and miniflux container builds to forge mirrors; create miniflux mirror
Documentation
- Document squash-merge container tag provenance issue and post-merge workflow for updating manifests to main-SHA tags.
- Add mise-tasks reference card with categorized task inventory; include in ai-docs context
- Review 3 how-to docs: stamp provision-authentik-database and use-pypi-proxy, fix wrong policy path and misleading --yes in update-tailscale-acls
Documentation
Download
docs-v1.11.4.tar.gzand configure the quartz container with:DOCS_RELEASE_URL=https://forge.ops.eblu.me/eblume/blumeops/releases/download/v1.11.4/docs-v1.11.4.tar.gzDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
docs-v1.11.4.tar.gz
2 downloads ·
2026-02-25 07:04:22 -08:00 · 1.5 MiB
- Add
-
BlumeOps v1.11.3 Stable
released this
2026-02-23 21:04:33 -08:00 | 558 commits to main since this releaseBlumeOps release v1.11.3
What's Changed
Features
- Upgrade Grafana from 11.4.0 to 12.3.3 with home-built container image and Kustomize manifests, replacing the Helm chart deployment.
Bug Fixes
- Fix Dagger pipelines hanging when called from mise tasks in interactive terminals. Added
--progress=plainto alldagger callinvocations to prevent SIGTTOU from stopping the process when mise's child process group is not the terminal foreground group. - Fix Grafana TeslaMate dashboards not appearing in a folder — enabled
foldersFromFilesStructureso the sidecar'sgrafana_folderannotation is respected. - Container build workflows now checkout the dispatch ref when building from feature branches, fixing "No Dockerfile — skipping" errors for containers not yet on main.
Infrastructure
- Fix Frigate Prometheus scrape target to route via Caddy (nvr.ops.eblu.me) after migration to ringtail, and rebuild Grafana dashboard with updated Frigate 0.17 metrics (GPU usage, temperature, skipped FPS, detection events).
- Update tooling dependencies: pre-commit hooks (trufflehog, ruff, shellcheck, prettier, actionlint), Fly.io Dockerfile (pin nginx 1.28.2-alpine, alloy v1.13.1), and normalize mise task Python lower bounds.
- Rename
containers/forgejo-runnertocontainers/runner-job-imageto distinguish the CI job execution image from the Forgejo runner daemon, fixing a version-check false positive.
Documentation
- Review deploy-authentik card: rewrite as reproducible process guide, remove stale version info and future work section, mark plan as completed.
- Formalize C0/C1/C2 change classification: C0 allows direct-to-main commits, C1 adds docs-first workflow with branch deployment, C2 introduces the Mikado Branch Invariant for strict commit ordering on multi-phase changes. Add C2 conventions:
C2(<chain>): plan/impl/close/finalizecommit messages,mikado/<chain-stem>branch naming, andbranch:frontmatter on goal cards. New tooling:docs-mikado --resumefor cold-start session pickup andmikado-branch-invariant-checkpre-commit hook. - Replace Grafana Helm upgrade plan with C2 Mikado chain for upgrading to 12.x with kustomize and home-built containers.
AI Assistance
- Improved Mikado C2 process: end-of-cycle session prompts, rigorous reset discipline with documented git patterns, and
--resumenow shows PR number and stash hints.
Documentation
Download
docs-v1.11.3.tar.gzand configure the quartz container with:DOCS_RELEASE_URL=https://forge.ops.eblu.me/eblume/blumeops/releases/download/v1.11.3/docs-v1.11.3.tar.gzDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
docs-v1.11.3.tar.gz
2 downloads ·
2026-02-23 21:04:33 -08:00 · 1.5 MiB
-
BlumeOps v1.11.2 Stable
released this
2026-02-22 17:52:04 -08:00 | 575 commits to main since this releaseBlumeOps release v1.11.2
What's Changed
Features
- Add
branch-cleanupmise task and scheduled Forgejo workflow to delete merged branches locally and on the Forgejo remote. Detects squash-merged PRs via the Forgejo API. The workflow runs approximately every 10 days with a configurable age cutoff (default 30 days). - Add Forgejo repository health metrics collector and Grafana dashboard with CI/CD, release, and language tracking across all repos.
- Switch Frigate object detection from YOLO-NAS-S (320x320) to YOLOv9-c (640x640) with CUDA Graphs support, and add
frigate-export-modelDagger pipeline + mise task for reproducible model exports.
Infrastructure
- Simplify service-versions.yaml type taxonomy to
argocd | ansible | nixos; add nix-container-builder entry; backfill forgejo and forgejo-runner versions - Prepare forgejo-runner v12 upgrade: review config compatibility, add workflow schema validation via Dagger, wire pre-commit hook
- Upgrade k8s forgejo-runner daemon from v6.3.1 to v12.7.0
Documentation
- Add Mikado chain for upgrading k8s forgejo-runner from v6.3.1 to v12.x
Documentation
Download
docs-v1.11.2.tar.gzand configure the quartz container with:DOCS_RELEASE_URL=https://forge.ops.eblu.me/eblume/blumeops/releases/download/v1.11.2/docs-v1.11.2.tar.gzDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
docs-v1.11.2.tar.gz
1 download ·
2026-02-22 17:52:04 -08:00 · 1.5 MiB
- Add
-
BlumeOps v1.11.1 Stable
released this
2026-02-22 10:21:19 -08:00 | 583 commits to main since this releaseBlumeOps release v1.11.1
What's Changed
Infrastructure
- Use Zot registry logo instead of Docker logo on homepage dashboard
Documentation
Download
docs-v1.11.1.tar.gzand configure the quartz container with:DOCS_RELEASE_URL=https://forge.ops.eblu.me/eblume/blumeops/releases/download/v1.11.1/docs-v1.11.1.tar.gzDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
docs-v1.11.1.tar.gz
1 download ·
2026-02-22 10:21:19 -08:00 · 1.5 MiB
-
BlumeOps v1.11.0 Stable
released this
2026-02-22 09:16:00 -08:00 | 586 commits to main since this releaseBlumeOps release v1.11.0
What's Changed
Features
- Add agent change process (C0/C1/C2) documentation and
docs-mikadotool for Mikado method dependency chain resolution. Renamezk-docstask toai-docs. - Deploy Authentik identity provider on ringtail k3s cluster, replacing Dex as the SSO provider. Includes Nix-built container, CNPG database, Redis, and Caddy routing at
authentik.ops.eblu.me. - Integrate Forgejo with Authentik OIDC for single sign-on with group-based admin propagation. Enforce TOTP MFA on Authentik authentication flow.
- Add Authentik SSO to Jellyfin with admin group mapping
- Container builds now trigger automatically on merge to main (path-based) and use commit-SHA-based image tags (
vX.Y.Z-<sha>) for full traceability. Thecontainer-tag-and-releasetask is replaced bycontainer-build-and-releasewhich dispatches workflows via the Forgejo API. Added pre-commit hook to keep container versions in sync withservice-versions.yaml. - Register Zot as an OIDC client in Authentik via blueprint, with artifact-workloads group, zot-ci service account, and OIDC credentials template for Ansible deployment.
- Enable OIDC + API key authentication on zot registry with three-tier access control (anonymous read, CI create, admin full). Wire both CI push paths (Dagger and Nix/skopeo) with registry credentials via Forgejo Actions secrets. Allow anonymous Prometheus metrics scraping via
accessControl.metrics.users.
Bug Fixes
- Fix frigate-notify notification pipeline: switch to webapi polling, enable dedup, drop events without snapshots, use hi-res snapshots
Infrastructure
- Add Mikado prereq for commit-based container tagging scheme to harden-zot-registry chain
- Convert deploy-authentik plan to C2 Mikado chain entry point.
- Add
flake-updateDagger pipeline for updating ringtail NixOS flake inputs. - Upgrade frigate-notify from v0.3.5 to v0.5.4
Documentation
- Add deployment plan for Authentik identity provider to replace Dex
Documentation
Download
docs-v1.11.0.tar.gzand configure the quartz container with:DOCS_RELEASE_URL=https://forge.ops.eblu.me/eblume/blumeops/releases/download/v1.11.0/docs-v1.11.0.tar.gzDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
docs-v1.11.0.tar.gz
1 download ·
2026-02-22 09:16:00 -08:00 · 1.5 MiB
- Add agent change process (C0/C1/C2) documentation and
-
BlumeOps v1.10.0 Stable
released this
2026-02-19 20:45:42 -08:00 | 620 commits to main since this releaseBlumeOps release v1.10.0
What's Changed
Features
- Deploy Dex OIDC identity provider on ringtail with Grafana as first SSO client.
- Added Nix container build for nettest, validating the full nix-container-builder pipeline on ringtail. One git tag now triggers both Dockerfile and Nix workflows — each skips if its build file is absent. Rewrote container-tag-and-release as a typer CLI with --dry-run support. Added container policy.json and registries.conf to ringtail for skopeo.
- Add NixOS configuration for ringtail (gaming/compute workstation with RTX 4080). Includes declarative disk partitioning via disko, NVIDIA drivers, sway/Wayland desktop, Steam, Tailscale, and Ansible-driven provisioning.
- Add screen lock, idle timeout, and sleep prevention to ringtail: swaylock locks after 15min, display powers off after 60min, machine never suspends.
- Systemd Forgejo Actions runner on ringtail (
nix-container-builderlabel) for building containers withnix buildand pushing viaskopeo. K3s cluster retained for future workloads. 1Password Connect + External Secrets Operator available for k8s secret management.
Bug Fixes
- Cap detect FPS to 2 and sync motion masks/zones from live config
- Fix
zk-docstask to use new path for troubleshooting doc after how-to reorg. - Inhibit swayidle lock screen when a fullscreen window is active on ringtail, preventing screen lock during gamepad-only gaming sessions.
- Make 1Password secret tasks in ringtail playbook idempotent by checking kubectl apply output instead of always reporting changed.
Infrastructure
- Port Frigate NVR to ringtail k3s with RTX 4080 GPU acceleration (TensorRT/ONNX), replacing the ZMQ-based Apple Silicon detector on indri.
- Replace Homepage Helm chart (jameswynn/homepage v2.1.0, pinned at app v1.2.0) with plain kustomize manifests and a custom Dockerfile built from upstream v1.10.1. Gives full version control and matches the pattern used by other blumeops services.
- Port ntfy to a locally built container image from forge mirror source.
- Port Mosquitto (MQTT) and ntfy to ringtail k3s; retire Apple Silicon Detector from indri.
- Ringtail post-install: NixOS config (sway with Catppuccin Macchiato theme, fish, 1Password, Steam, LibreWolf, Bluetooth audio, chezmoi, dev tools, nix-ld), Dagger flake-lock pipeline, improved provision-ringtail workflow, services-check integration, and reference documentation.
- Add ringtail DeviceTags to Pulumi and allow homelab-to-homelab Tailscale SSH for cross-host ansible/management.
- Update Frigate zone masks from live config and expand alert notifications to cover both Driveway and Driveway_entrance zones.
- Add Apple Silicon ZMQ detector for Frigate — inference moves from in-pod ONNX CPU to CoreML on indri via ZMQ, using YOLOv9-m model
- Deploy Tailscale operator on ringtail k3s cluster
- Upgrade ntfy from v2.11.0 to v2.17.0 and add ntfy and frigate reference docs.
- Update External Secrets Operator Helm chart from 1.3.1 to 2.0.0 (operator v1.3.2)
- Upgrade Frigate NVR from 0.16.4 to 0.17.0-rc2 (prerequisite for Apple Silicon ZMQ detector)
Documentation
- Add Dex OIDC documentation: reference card, federated login explanation, services-check integration, and updated plan.
- Update services-check and documentation to reflect Frigate, Mosquitto, and ntfy migration from indri minikube to ringtail k3s (PRs #216, #217).
- Review and fix update-documentation how-to: add missing cache purge step, clean up fragment types table.
Documentation
Download
docs-v1.10.0.tar.gzand configure the quartz container with:DOCS_RELEASE_URL=https://forge.ops.eblu.me/eblume/blumeops/releases/download/v1.10.0/docs-v1.10.0.tar.gzDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
docs-v1.10.0.tar.gz
2 downloads ·
2026-02-19 20:45:42 -08:00 · 1.3 MiB
-
BlumeOps v1.9.4 Stable
released this
2026-02-17 07:30:38 -08:00 | 658 commits to main since this releaseBlumeOps release v1.9.4
What's Changed
Documentation
- Reorganize how-to guides into
deployment/,configuration/, andoperations/subdirectories; review and update gandi-operations doc; fix missing cv.eblu.me CNAME in gandi reference card.
Documentation
Download
docs-v1.9.4.tar.gzand configure the quartz container with:DOCS_RELEASE_URL=https://forge.ops.eblu.me/eblume/blumeops/releases/download/v1.9.4/docs-v1.9.4.tar.gzDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
docs-v1.9.4.tar.gz
3 downloads ·
2026-02-17 07:30:38 -08:00 · 1.2 MiB
- Reorganize how-to guides into
-
BlumeOps v1.9.3 Stable
released this
2026-02-16 21:25:46 -08:00 | 660 commits to main since this releaseBlumeOps release v1.9.3
What's Changed
Features
- Add service version review system with
mise run service-reviewtask, tracking file, and how-to guide. - Add UniFi admin link to homepage dashboard bookmarks.
Infrastructure
- Eliminate double towncrier run in release workflow — changelog is now built once on the runner, then the pre-processed source tree is passed to a new
build_quartzDagger function for the Quartz site build only. - First service version review: pin mosquitto to 2.0.22, bump tailscale-operator to v1.94.2, record 7 reviewed services
Documentation
Download
docs-v1.9.3.tar.gzand configure the quartz container with:DOCS_RELEASE_URL=https://forge.ops.eblu.me/eblume/blumeops/releases/download/v1.9.3/docs-v1.9.3.tar.gzDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
docs-v1.9.3.tar.gz
1 download ·
2026-02-16 21:25:47 -08:00 · 1.2 MiB
- Add service version review system with
-
BlumeOps v1.9.2 Stable
released this
2026-02-16 15:51:12 -08:00 | 666 commits to main since this releaseBlumeOps release v1.9.2
What's Changed
Features
- Add how-to guide for building container images and port navidrome to a custom-built container image.
Bug Fixes
- Fix Frigate repeatedly alerting on parked cars by removing per-object max_frames and setting stationary interval to 0. Make Frigate config writable so UI changes (zones, masks) persist within a pod lifecycle.
- Switch navidrome to custom container image with dedicated non-root user and fsGroup security context
Documentation
- Review expose-service-publicly doc: replace stale inline code with references to actual files, add observability sidecar section, fix broken internal link, update templates to current patterns.
Documentation
Download
docs-v1.9.2.tar.gzand configure the quartz container with:DOCS_RELEASE_URL=https://forge.ops.eblu.me/eblume/blumeops/releases/download/v1.9.2/docs-v1.9.2.tar.gzDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
docs-v1.9.2.tar.gz
1 download ·
2026-02-16 15:51:12 -08:00 · 1.2 MiB