Commit Graph
4354 Commits
Author SHA1 Message Date
k.rennerandClaude f0f9e710a8 feat: Add syslog receiver to monitoring-agent for Synology NAS logging
- Add loki.source.syslog receiver to Alloy config template
- Enable syslog receiver on loki.srv.renner.uno (UDP port 1514)
- Extracts hostname and app labels from syslog messages
- Configure Synology DSM to forward logs to loki.srv.renner.uno:1514

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-01 06:48:37 +01:00
k.rennerandClaude 0eaaca5131 feat: Add third Caddy ingress and NetBird client role
- Add caddy3.dmz.renner.uno (LXC 234) on jupiter node
- Update caddy-ha role to support 3-node priorities (100/90/80)
- Add netbird-client role for automated NetBird deployment
- Add setup-netbird-client.yml playbook with host_vars/group_vars support
- Add proxmox_caddy_ha group_vars for shared NetBird setup key

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-28 09:16:03 +01:00
k.rennerandClaude b6761e2c10 feat: Add PBS client role for Synology NAS backup
Security Audit / Infrastructure Scan (IaC) (push) Successful in 35s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 2m34s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 1m47s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Successful in 3m58s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 23s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 37s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 37s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 2m15s
Add Ansible role to deploy Proxmox Backup Server client on Synology NAS
using Docker. The role uses the aterfax/pbs-client image with built-in
cron scheduling for automated backups.

Configured for nas-1.renner.uno backing up to pbs2.renner.uno:
- Documents, homes, Homeassistant Backup, Games, Media, Music, video volumes
- Daily backups at 2 AM with retention policy

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-26 19:56:23 +01:00
k.rennerandClaude b969a77589 chore: Remove old single-node authentik infrastructure
Security Audit / Infrastructure Scan (IaC) (push) Successful in 35s
Deploy Infrastructure / plan (push) Successful in 1m9s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 1m55s
Deploy Infrastructure / apply (push) Successful in 1m55s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Successful in 3m29s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 28s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 22s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 16s
Deploy Infrastructure / integration-tests (push) Successful in 2m0s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 28s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 2m17s
- Delete authentik.renner.uno DNS CNAME (was pointing to old VM)
- VM 116 (authentik.srv.renner.uno) destroyed via tofu

Authentik HA is now the primary with auth.renner.uno endpoint
served via Caddy reverse proxy to authentik-app-1/2.srv.renner.uno.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 22:23:16 +01:00
k.rennerandClaude bf84109eb5 fix: Update docs.renner.uno to use Authentik HA endpoints
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Waiting to run
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Waiting to run
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Waiting to run
Security Audit / Infrastructure Scan (IaC) (push) Successful in 34s
Deploy Infrastructure / plan (push) Successful in 1m39s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 2m14s
Deploy Infrastructure / apply (push) Failing after 1m49s
Deploy Infrastructure / integration-tests (push) Has been skipped
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 45s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Has been cancelled
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Has been cancelled
Update forward_auth configuration in Caddyfile to use the new HA Authentik
servers (authentik-app-1/2) instead of the deprecated authentik.renner.uno.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 22:17:44 +01:00
k.rennerandClaude 35af8786ab fix: Complete Authentik HA migration and update ingress routing
- Update authentik-update.yml to target HA hosts (authentik_app group)
- Add serial: 1 for rolling updates across HA nodes
- Update Caddyfile to route auth.renner.uno to HA setup with load balancing
- Replace single-instance reverse_proxy with dual-backend configuration
- Add health checks for automatic failover

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 21:38:07 +01:00
k.rennerandClaude d57cc56316 update: Update RustFS cluster configuration template
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:19:50 +01:00
k.rennerandClaude 0c9957c566 update: Update OpenTofu infrastructure definitions
- Update Authentik HA LXC configuration
- Update Proxmox VM module
- Update Home Assistant and Paperless VM configs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:19:50 +01:00
k.rennerandClaude 057be7831d update: Update Ansible inventory and host variables
- Update pve_hosts inventory
- Add proxmox_docker group vars
- Add host-specific variables

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:19:50 +01:00
k.rennerandClaude 2d1e110ce8 update: Update Prometheus and blackbox exporter configuration
- Update Prometheus server node and main config templates
- Update blackbox exporter configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:19:50 +01:00
k.rennerandClaude 70d2ab97ad update: Improve Caddy HA configuration
- Update Caddy HA tasks and Caddyfile template
- Update setup playbook and credentials

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:19:40 +01:00
k.rennerandClaude 2aee1571a9 feat: Enhance Paperless migration with metrics and tooling
- Add Paperless metrics exporter service
- Add failed imports handler script
- Add disk migration playbook
- Update migration defaults and tasks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:19:40 +01:00
k.rennerandClaude 6dcf7120a4 update: Enhance monitoring agent (Alloy) configuration
- Update defaults, handlers, and tasks for monitoring agent
- Improve Alloy configuration template

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:19:40 +01:00
k.rennerandClaude 112d9286f2 update: Improve existing Grafana dashboards and provisioning
- Update heatpump-roi, home-energy, netbird-overview, unifi-overview dashboards
- Update dashboard provisioning configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:19:31 +01:00
k.rennerandClaude 94a8ddce27 feat: Add new Grafana dashboards
- Add Alloy overview dashboard for monitoring agent
- Add DNS overview dashboard
- Add Docker overview dashboard
- Add Paperless overview dashboard
- Add PV system ROI dashboard

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:19:31 +01:00
k.rennerandClaude 7ed52e7f5d feat: Add Music Assistant application deployment
- Add music-assistant Ansible role with Docker Compose setup
- Add installation playbook for Music Assistant
- Add OpenTofu LXC definition for music-assistant

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:19:31 +01:00
k.rennerandClaude 73c1079936 feat: Add Grist spreadsheet application
- Add OpenTofu LXC definition for Grist (ID 228)
- Add Ansible role for Grist deployment with Docker
- Add installation playbook

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:18:16 +01:00
k.rennerandClaude 66cadedde6 docs: Add NetBird HA proxy deployment plan
Plan for deploying multiple reverse proxy instances across VPS and
Caddy HA nodes for geographic redundancy and automatic failover.

Based on: https://docs.netbird.io/selfhosted/maintenance/scaling/multiple-proxy-instances

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:18:04 +01:00
k.rennerandClaude 56cb235ef0 docs: Add critical rule about following official documentation
Lesson learned from NetBird proxy debugging: always strictly adhere
to official documentation instead of improvising custom solutions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:17:59 +01:00
k.rennerandClaude b9eea14fe9 fix: Configure NetBird reverse proxy per official documentation
- Update docker-compose to use HostSNI(*) with priority=1 per docs
- Remove unnecessary user, cap_add, and sysctls from proxy container
- Configure proxy to connect via internal Docker network (http://management:443)
- Add NB_PROXY_ALLOW_INSECURE=true for internal HTTP connection
- Add recreate handler for full container recreation

Reference: https://docs.netbird.io/selfhosted/migration/enable-reverse-proxy

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 00:17:54 +01:00
k.rennerandClaude c379bded8e feat: Add NetBird Overview dashboard to Grafana
- Create netbird-overview.json dashboard with log-based panels
- Shows cluster status, error/warning counts, log volume
- Service-specific log panels for Management, Signal, Relay, Traefik
- Add deployment task to grafana-observability role

Dashboard provides visibility into NetBird mesh network operations
via Loki log aggregation from the Hetzner datacenter.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-21 10:55:52 +01:00
k.rennerandClaude 953b6acc9e feat: Add monitoring infrastructure for NetBird server via mesh
- Add netbird_client tag to Loki and Prometheus LXC containers
- Create setup-netbird-monitoring.yml playbook for ARM64 NetBird server
- Update install-netbird-client.yml to also target netbird_server group
- Fix monitoring-agent role to use architecture-specific binary pattern

Enables log aggregation and metrics collection from the external
NetBird server by routing traffic through the NetBird mesh network.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-21 10:48:32 +01:00
k.rennerandClaude f53794251e feat: Add NetBird relay server configuration
- Add relay service to docker-compose with Traefik routing
- Add Relay configuration to management.json
- Relay exposed at rels://netbird.renner.uno:443

This enables relay connectivity for peers behind strict NAT/CGNAT,
improving connectivity for mobile devices and restrictive networks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-21 10:29:33 +01:00
k.rennerandClaude e5ad86f0c2 feat: Add NetBird client deployment and mesh connectivity for Caddy
- Add install-netbird-client.yml playbook for deploying NetBird clients
- Add netbird_client tag to Caddy containers for dynamic inventory
- Add caddy_ha group to static inventory
- Update proxy configuration with debug logging
- Update vault with new setup key for gateway clients

Caddy nodes now connected to NetBird mesh (caddy.nb.renner.uno,
caddy2.nb.renner.uno) enabling direct mesh access to ingress services.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-21 10:23:20 +01:00
k.rennerandClaude 33157b45e0 feat: Add NetBird reverse proxy infrastructure
Security Audit / Infrastructure Scan (IaC) (push) Successful in 21s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 4m43s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 4m42s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 38s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 28s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 26s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 17s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 3m5s
- Add netbirdio/reverse-proxy container with required capabilities
- Configure Traefik TLS passthrough for proxy domains (*.proxy.netbird.renner.uno)
- Add HTTP-01 ACME challenge support for proxy certificate issuance
- Fix /etc/hosts loopback entry that was blocking mesh connectivity
- Add per-router HTTP redirects (instead of global) to allow proxy HTTP
- Store proxy token in Ansible vault

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-20 21:12:45 +01:00
k.rennerandClaude 1b297edf41 feat: Add NetBird server and gateway infrastructure
Security Audit / Infrastructure Scan (IaC) (push) Successful in 23s
Deploy Infrastructure / plan (push) Failing after 1m25s
Deploy Infrastructure / apply (push) Has been skipped
Deploy Infrastructure / integration-tests (push) Has been skipped
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 4m9s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 50s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 25s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 4m28s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 19s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 25s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 2m57s
- Add netbird-server role with Docker Compose deployment
- Add netbird-gateway role for mesh network routing
- Add OpenTofu LXC definition for netbird gateway (ID 260)
- Add inventory group for netbird_server
- Include playbooks for installation and setup

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-20 18:53:09 +01:00
k.rennerandClaude 9a92197b48 fix: CrowdSec role prerequisites and Caddy SSH keys
Deploy Infrastructure / apply (push) Blocked by required conditions
Deploy Infrastructure / integration-tests (push) Blocked by required conditions
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Waiting to run
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Waiting to run
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Waiting to run
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Waiting to run
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Waiting to run
Security Audit / Infrastructure Scan (IaC) (push) Successful in 39s
Deploy Infrastructure / plan (push) Successful in 1m27s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Has been cancelled
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Has been cancelled
- Add gnupg, curl, ca-certificates as prerequisites for CrowdSec
- Fix log directory ownership to root:root (caddy user doesn't exist yet)
- Enable SSH keys for both Caddy HA containers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-20 18:50:55 +01:00
k.renner f06acaa8a4 chore: Trigger Caddy build
Build Caddy Custom / build (push) Successful in 2m44s
2026-02-20 18:38:21 +01:00
k.renner a5609daea6 chore: Trigger Caddy build after ingress restore 2026-02-20 18:36:38 +01:00
k.rennerandClaude 0efaa2c4b1 feat: Add CrowdSec integration to Caddy HA
Security Audit / Infrastructure Scan (IaC) (push) Successful in 45s
Build Caddy Custom / build (push) Failing after 11m4s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 10m19s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 1m37s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 1m4s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 59s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 4m36s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 24s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 3m51s
- Update Caddy build workflow with CrowdSec bouncer modules
- Create crowdsec Ansible role for installation and configuration
- Update caddy-ha role with CrowdSec configuration in Caddyfile
- Add setup-crowdsec-caddy.yml playbook for deployment
- Upgrade Caddy to v2.10.2 and Go to 1.24

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-20 18:07:05 +01:00
k.renner c1ccfbb92b chore: Retry CI after state sync
Deploy Infrastructure / plan (push) Successful in 1m39s
Deploy Infrastructure / apply (push) Successful in 1m22s
Deploy Infrastructure / integration-tests (push) Successful in 42s
2026-02-18 21:50:33 +01:00
k.rennerandClaude f76d396763 fix: Remove stale moved block causing resource type mismatch
Deploy Infrastructure / integration-tests (push) Blocked by required conditions
Security Audit / Infrastructure Scan (IaC) (push) Successful in 43s
Deploy Infrastructure / plan (push) Successful in 1m21s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 4m6s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 4m31s
Deploy Infrastructure / apply (push) Has been cancelled
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 31s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 56s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 27s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 20s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 4m9s
The moved block for template migration was already applied and is now
causing errors when comparing state types during plan.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 21:44:37 +01:00
k.renner 10f5aef91c chore: Trigger clean pipeline run
Deploy Infrastructure / plan (push) Failing after 1m4s
Deploy Infrastructure / apply (push) Has been skipped
Deploy Infrastructure / integration-tests (push) Has been skipped
2026-02-18 21:38:10 +01:00
k.renner 943095438f fix: Remove --pull=missing option causing runner freeze
Deploy Infrastructure / plan (push) Waiting to run
Deploy Infrastructure / apply (push) Blocked by required conditions
Deploy Infrastructure / integration-tests (push) Blocked by required conditions
2026-02-18 21:36:09 +01:00
k.renner 483be1fd70 chore: Trigger pipeline after runner restart
Deploy Infrastructure / plan (push) Failing after 1s
Deploy Infrastructure / apply (push) Has been skipped
Deploy Infrastructure / integration-tests (push) Has been skipped
2026-02-18 21:31:27 +01:00
k.renner fac064508a chore: Trigger workflow with file change
Deploy Infrastructure / plan (push) Failing after 1s
Deploy Infrastructure / apply (push) Has been skipped
Deploy Infrastructure / integration-tests (push) Has been skipped
2026-02-18 21:22:21 +01:00
k.renner c68e555d4f chore: Test pipeline trigger 2026-02-18 21:21:23 +01:00
k.rennerandClaude d0dc829331 chore: Force pipeline trigger
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 21:17:07 +01:00
k.rennerandClaude 7170cfaff8 chore: Re-trigger CI with runners online
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 21:05:22 +01:00
k.rennerandClaude d402996e73 chore: Trigger CI after runner restart
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 21:00:07 +01:00
k.rennerandClaude 55535f4142 chore: Trigger CI re-run after network disruption
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 20:57:08 +01:00
k.rennerandClaude 7e6929a01c perf: Optimize CI pipeline with image caching and fixes
Deploy Infrastructure / plan (push) Failing after 6s
Deploy Infrastructure / apply (push) Has been skipped
Deploy Infrastructure / integration-tests (push) Has been skipped
- Pin container images to specific versions (opentofu:1.9, alpine:3.21)
- Add --pull=missing to avoid unnecessary image pulls
- Fix POSIX shell compatibility in Caddy test (no bash arrays)
- Check if mc is already installed before downloading

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 20:45:03 +01:00
k.rennerandClaude 501e1f1d6c fix: Update RustFS health check to work with limited S3 credentials
Deploy Infrastructure / plan (push) Successful in 1m11s
Deploy Infrastructure / apply (push) Successful in 55s
Deploy Infrastructure / integration-tests (push) Failing after 2m3s
- Check S3 endpoint connectivity first
- Verify tfstate bucket access (critical for OpenTofu)
- Test read/write capability
- Make cluster health check optional (requires admin credentials)
- TF_RFS credentials are S3-only, not admin

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 20:37:48 +01:00
k.rennerandClaude 75b5a1ee0e fix: Improve RustFS health check to verify cluster status
Deploy Infrastructure / plan (push) Successful in 1m11s
Deploy Infrastructure / apply (push) Successful in 50s
Deploy Infrastructure / integration-tests (push) Failing after 2m0s
- Use mc admin info to check full cluster health
- Report cluster mode and drive status
- Warn if cluster is degraded (offline drives)
- Verify tfstate bucket is accessible
- Fail if cluster is unhealthy or bucket inaccessible

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 20:31:59 +01:00
k.rennerandClaude 6ffa0f3ddc fix: Update RustFS health check to handle authenticated endpoints
Deploy Infrastructure / integration-tests (push) Blocked by required conditions
Deploy Infrastructure / plan (push) Successful in 1m8s
Deploy Infrastructure / apply (push) Has been cancelled
- Check server responds (any HTTP code except 000 means running)
- Use S3 credentials for optional bucket access verification
- RustFS health endpoints require auth, so check connectivity instead

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 20:30:11 +01:00
k.rennerandClaude fbf5be53ae fix: Update validate_plan.py for module-based infrastructure
Security Audit / Infrastructure Scan (IaC) (push) Successful in 1m12s
Deploy Infrastructure / plan (push) Successful in 1m30s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 4m55s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 5m35s
Deploy Infrastructure / apply (push) Successful in 1m7s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 1m7s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 59s
Deploy Infrastructure / integration-tests (push) Failing after 10s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 52s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 2m1s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 3m57s
- Add recursive function to collect resources from child modules
- Update resource address patterns for BPG provider
  (proxmox_virtual_environment_container instead of proxmox_lxc)
- Handle tags as arrays instead of comma-separated strings
- Use pattern matching for gitea/runner detection

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 20:16:58 +01:00
k.rennerandClaude 29c30fc45d feat: Add log collection for Gitea runners
Security Audit / Infrastructure Scan (IaC) (push) Successful in 1m7s
Deploy Infrastructure / plan (push) Failing after 1m20s
Deploy Infrastructure / apply (push) Has been skipped
Deploy Infrastructure / integration-tests (push) Has been skipped
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 5m14s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 5m21s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 56s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 1m21s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 1m9s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 1m55s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 4m1s
- Create Promtail role to collect and ship logs to Loki
- Add setup-gitea-runner-logging.yml playbook
- Configure collection of act_runner service logs via journald
- Add Docker daemon log collection
- Uses dynamic Proxmox inventory (proxmox_gitea_runner group)

Logs are now visible in Loki/Grafana for monitoring CI/CD pipeline
execution and debugging build failures.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:52:38 +01:00
k.rennerandClaude 3e9f4686fc feat: Add integration tests to CI pipeline (MAINT-3)
Add post-deployment integration tests that run automatically after
successful infrastructure deployments:
- DNS resolution tests via VIP (10.2.40.53)
- RustFS S3 backend health checks
- Authentik availability verification
- Caddy ingress routing tests
- PostgreSQL VIP connectivity tests

Resolves MAINT-3 from infrastructure review.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:34:57 +01:00
k.rennerandClaude 4e66900aa8 refactor: Extract shared DNS module (MAINT-2)
- Create modules/dns_records/ for reusable DNS record management
- Update proxmox_vm module to use shared DNS module
- Update proxmox_lxc module to use shared DNS module
- Add moved blocks for zero-downtime state migration
- Remove duplicated unifi provider requirement from VM/LXC modules

Resolves MAINT-2 from infrastructure review.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:33:55 +01:00
k.rennerandClaude 3556d55b3f docs: Update review to mark DOC-1 as resolved
Created ARCHITECTURE.md and OPERATIONS.md addressing missing
operational documentation (DOC-1).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:29:57 +01:00