Commit Graph
4354 Commits
Author SHA1 Message Date
k.rennerandClaude 132be92281 docs: Add ARCHITECTURE.md and OPERATIONS.md
- ARCHITECTURE.md: System architecture documentation with ASCII diagrams
  covering network topology, service architecture, HA clusters, and data flow
- OPERATIONS.md: Comprehensive operations manual with daily/weekly/monthly
  tasks, troubleshooting guides, and maintenance procedures

Resolves DOC-1 from infrastructure review.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:29:19 +01:00
k.rennerandClaude 294e30088a docs: Update review with SEC-1, SEC-3, OPS-3 resolutions
Marked the following items as resolved:
- SEC-1: SSH key rotation procedures (documented in SECURITY.md)
- SEC-3: RBAC documentation (created SECURITY.md)
- OPS-3: Chaos testing framework (created chaos-testing.yml)
- Quick Win #4: Grafana alerts (already deployed)

All short-term items now resolved. Only medium-term technical
debt items remain (file reorganization, integration testing).

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:24:01 +01:00
k.rennerandClaude 18ce0cfd61 feat(testing): Add chaos testing playbook for HA validation
Created comprehensive chaos testing playbook that validates:
- DNS cluster failover (stops master, verifies VIP migration)
- PostgreSQL HA failover (stops keepalived, verifies VIP migration)
- RustFS S3 health check (non-destructive endpoint test)

Features:
- Records before/after state for each test
- Automatic service restoration after tests
- Test results summary with pass/fail status
- Results saved to file for historical tracking
- Tag-based execution for individual component testing

Usage:
  ansible-playbook -i inventory/ plays/chaos-testing.yml
  ansible-playbook -i inventory/ plays/chaos-testing.yml --tags dns

WARNING: Run during maintenance windows as it disrupts services.

Resolves OPS-3 from infrastructure review.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:22:42 +01:00
k.rennerandClaude 255c4e707e docs: Add SECURITY.md with RBAC and key rotation procedures
Created comprehensive security documentation including:
- Access control matrix for infrastructure and applications
- Authentication methods (Authentik SSO, SSH keys, API tokens)
- Secret management procedures (Ansible Vault, .envrc)
- SSH key rotation procedure with step-by-step guide
- API token management and rotation schedules
- Network security overview (VLANs, firewall, TLS)
- Incident response procedures
- Quarterly and annual security checklists

Resolves SEC-1 (SSH key rotation docs) and SEC-3 (RBAC documentation)
from infrastructure review.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:21:14 +01:00
k.rennerandClaude 0adc71609d chore(vault): Add Grafana Authentik OAuth credentials
Added vault_grafana_authentik_client_id and
vault_grafana_authentik_client_secret for Grafana SSO.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:17:34 +01:00
k.rennerandClaude cb14c3eb5e feat(grafana): Add Authentik OAuth authentication role
Created grafana-authentik role to configure Grafana with Authentik SSO:
- OAuth2/OpenID Connect authentication via generic_oauth provider
- Role mapping from Authentik groups (Grafana Admins/Editors)
- PKCE support for enhanced security
- Auto sign-up for new users

Prerequisites:
1. Create OAuth2 provider in Authentik with slug "grafana"
2. Set redirect URI: https://dash.renner.uno/login/generic_oauth
3. Add credentials to vault:
   - vault_grafana_authentik_client_id
   - vault_grafana_authentik_client_secret

Usage: ansible-playbook -i inventory/ plays/configure-grafana-authentik.yml

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:11:56 +01:00
k.rennerandClaude 67fa9d2b1e fix(monitoring): Escape Grafana templating syntax in alert rules
Wrapped alert-rules.yaml.j2 in {% raw %}{% endraw %} to prevent Jinja2
from interpreting Grafana's $labels templating syntax.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:06:08 +01:00
k.rennerandClaude 1b1bc45d7d docs: Mark all critical review items as resolved
Updated infrastructure review to reflect OPS-1 (monitoring alerts) completion.

All 7 critical/high-priority items are now resolved:
- CRITICAL-1: Vault password security
- CRITICAL-2: TLS verification
- CRITICAL-3: Automated backups
- CRITICAL-4: Authentik DB failover
- ARCH-1: RustFS tagging
- OPS-1: Monitoring alerts
- OPS-2: Disaster recovery runbooks

Overall health status upgraded to EXCELLENT.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:01:47 +01:00
k.rennerandClaude 272b56b151 feat(monitoring): Add infrastructure alert rules to Grafana
Added comprehensive alert rules for critical infrastructure monitoring:

Critical alerts (2min trigger):
- DNS VIP (10.2.40.53) health check
- RustFS S3 backend availability
- Proxmox node availability
- Authentik authentication service
- Caddy ingress reverse proxy

Warning alerts:
- Disk space (80% warning, 90% critical)
- PostgreSQL replication lag (>60s)
- High memory usage (>90%)
- High CPU usage (>90% for 15min)
- Generic service target down

Alerts are provisioned via Grafana provisioning system.
Run: ansible-playbook plays/configure-grafana-observability.yml

Resolves OPS-1 from infrastructure review.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 18:01:39 +01:00
k.rennerandClaude 6dd4796359 docs: Update infrastructure review with resolved items
Marked the following issues as resolved:
- CRITICAL-1: Vault password (env variable via vault-password.sh)
- CRITICAL-2: TLS verification (defaults to secure)
- CRITICAL-3: Automated backups (3-tier PBS strategy)
- CRITICAL-4: Authentik DB failover (keepalived VIP)
- ARCH-1: RustFS tags (marked as critical)
- OPS-2: DR runbooks (DISASTER_RECOVERY.md created)

Updated overall health status to EXCELLENT.
Only OPS-1 (monitoring alerts) remains as high priority.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 17:58:59 +01:00
k.rennerandClaude 9b38d9e8e7 docs: Add disaster recovery runbook
Created comprehensive DISASTER_RECOVERY.md with:
- Recovery procedures for DNS cluster, RustFS S3, PostgreSQL HA, and Proxmox
- RTO/RPO targets for each component
- Diagnosis commands and step-by-step recovery instructions
- Testing schedule for quarterly DR drills
- Post-incident review template

Resolves OPS-2 from infrastructure review.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 17:58:40 +01:00
k.rennerandClaude 9cb009a8f8 fix(authentik): Point DB DNS to keepalived VIP for automatic failover
Changed authentik-db.renner.uno DNS record from CNAME pointing to
primary database node to A record pointing to keepalived VIP (10.2.40.135).

This enables automatic database failover without manual DNS changes.
When the primary PostgreSQL node fails, keepalived moves the VIP to
the standby node automatically.

Resolves CRITICAL-4 from infrastructure review.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 17:58:31 +01:00
k.rennerandClaude d5a9b4bb66 fix: Update inventory to use FQDNs and fix LXC monitoring
Security Audit / Infrastructure Scan (IaC) (push) Successful in 1m6s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 5m23s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 5m8s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 1m15s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 1m0s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 55s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 2m7s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 4m1s
Inventory and infrastructure fixes:
- Use FQDNs for authentik hosts in inventory (authentik-db-1.srv.renner.uno)
- Fix postgres_primary_host reference in install-authentik-ha playbook
- Disable systemd security hardening for Alloy in LXC containers
  (namespace restrictions prevent these features)
- Update vault with new monitoring credentials
- Document configuration-via-ansible requirement in CLAUDE.md

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 17:40:36 +01:00
k.rennerandClaude 7be4e26b4e feat: Add Syncthing integration for Paperless document sync
Enable mobile document scanning workflow by adding Syncthing
container to Paperless stack. Documents synced from phones
automatically appear in the consume directory.

Configuration includes:
- Optional syncthing container in docker-compose
- Automated device pairing via entrypoint script
- Pre-configured device IDs for trusted devices
- Sync folder mapped to Paperless consume directory

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 17:40:18 +01:00
k.rennerandClaude 7976a6543a feat: Enable Prometheus metrics endpoints on services
Enable metrics collection for monitoring:
- Authentik: Expose metrics on port 9300
- Caddy: Enable admin API on :2019 with metrics endpoint
- Gitea: Enable built-in metrics endpoint
- Immich: Enable telemetry metrics on port 8081

These endpoints allow Prometheus to scrape application-level
metrics for the comprehensive monitoring dashboards.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 17:40:02 +01:00
k.rennerandClaude 1a7e742ed4 feat: Expand Grafana dashboards and add InfluxDB datasource
Add comprehensive monitoring dashboards:
- Infrastructure: proxmox-cluster, node-overview, blackbox-overview
- Services: authentik, caddy, gitea, immich, postgresql, unifi
- Home Automation: home-overview, home-climate, home-energy,
  home-security, homeassistant, heatpump-roi

Other improvements:
- Add InfluxDB datasource for Home Assistant data
- Fix infrastructure-overview to use correct job name
- Improve contact-points to handle missing alerting config gracefully
- Fix notification-policies to use correct receiver names
- Add stable UIDs to Prometheus and Loki datasources

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 17:39:46 +01:00
k.rennerandClaude c42300b2eb feat: Add comprehensive Prometheus exporters for infrastructure monitoring
Add roles for collecting metrics across the infrastructure:
- pve-exporter: Proxmox VE cluster metrics
- unifi-poller: UniFi network controller metrics
- postgres-exporter: PostgreSQL database metrics
- blackbox-exporter: HTTP/TCP/DNS endpoint probing
- node-exporter: System-level metrics for all hosts

Also includes:
- Updated prometheus.yml with scrape configs for all new targets
- File-based service discovery for node exporters
- New playbooks for deploying blackbox and node exporters
- PostgreSQL monitoring user setup playbook

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 17:39:31 +01:00
k.rennerandClaude 43e587e13d fix: Correct Alloy binary extraction in monitoring-agent role
Security Audit / Infrastructure Scan (IaC) (push) Waiting to run
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Waiting to run
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Waiting to run
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
Deploy Infrastructure / plan (push) Failing after 1m28s
Deploy Infrastructure / apply (push) Has been skipped
The Grafana Alloy zip extracts to alloy-linux-amd64 file directly,
not a directory structure. Updated find task to locate the binary
file correctly.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 17:31:50 +01:00
k.rennerandClaude 833e9f9e40 feat: Add centralized logging and metrics infrastructure
Deploy observability stack with:
- Loki (LXC 226) for log aggregation with 90-day retention
- Prometheus (LXC 227) for metrics collection with 90-day retention
- Grafana Alloy monitoring agent auto-deployed to all hosts
- Grafana dashboards and alerting configuration

Ansible roles created:
- loki-server: Installs and configures Loki
- prometheus-server: Installs and configures Prometheus
- monitoring-agent: Deploys Alloy agent to all hosts
- grafana-observability: Configures Grafana data sources and dashboards

The monitoring-agent role is added to common.yml for automatic
deployment to all new and existing services.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 17:22:39 +01:00
k.rennerandClaude 92f19e95b4 docs: Update project structure for bootstrap separation
Deploy Infrastructure / plan (push) Waiting to run
Deploy Infrastructure / apply (push) Blocked by required conditions
Security Audit / Infrastructure Scan (IaC) (push) Waiting to run
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Waiting to run
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Waiting to run
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
Document opentofu-bootstrap directory structure and explain the local
backend requirement for avoiding circular dependency with RustFS.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 16:50:55 +01:00
k.rennerandClaude dbb52249b9 fix: Improve LXC container stability
- Add /etc/hosts fix to common role for all LXC containers
  (Proxmox sets 127.0.1.1 which breaks services resolving own hostname)
- Add network_interface to ignore_changes in LXC module
  (Prevents network disruption during tofu apply)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 16:50:51 +01:00
k.rennerandClaude 24ce4115fb fix: Add S3 backend health check to CI/CD pipeline
Pre-flight validation of RustFS availability before tofu init to fail
fast with clear error messages when S3 backend is unreachable or
degraded.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 16:50:46 +01:00
k.rennerandClaude aafe17ff8a feat: Add 2-node quorum support for RustFS cluster
Deploy Infrastructure / plan (push) Waiting to run
Deploy Infrastructure / apply (push) Blocked by required conditions
Security Audit / Infrastructure Scan (IaC) (push) Waiting to run
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Waiting to run
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Waiting to run
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
Configure RustFS erasure coding to allow cluster operation with 2 out
of 3 nodes (EC:1 = 1 parity drive).

Changes:
- Add rustfs_storage_class_standard variable (default: EC:1)
- Add RUSTFS_STORAGE_CLASS_STANDARD to cluster config template
- Add config tag to config task for targeted updates

Apply config changes with:
  ansible-playbook -i inventory/ plays/install-rustfs.yml --tags config

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 00:09:51 +01:00
k.rennerandClaude f2dc2ad86e feat: Separate RustFS to bootstrap project
Move RustFS cluster management to a separate OpenTofu project to break
the circular dependency (OpenTofu state stored in RustFS, which was
managed by OpenTofu).

Changes:
- Create opentofu-bootstrap/ with dedicated RustFS management
- Use local state for bootstrap project (cannot use S3 - that's circular)
- Remove RustFS from main opentofu/ project
- Re-enable S3 backend in main project
- Add comprehensive README for bootstrap project

The bootstrap project manages Layer 0 infrastructure that must exist
before the main OpenTofu project can initialize.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 00:09:32 +01:00
k.rennerandClaude 9f58523265 fix: BPG provider compatibility improvements
- Add features to ignore_changes in LXC module (API token limitations)
- Add device_passthrough support for GPU/device passthrough in LXC
- Normalize MAC addresses to uppercase for Proxmox compatibility
- Add architecture field to CPU block
- Add keyctl to features block
- Fix tag parsing to handle both comma and semicolon separators
- Add agent_trim and USB mapping support to VM module

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 00:08:20 +01:00
k.rennerandClaude da1808066c feat: Migrate from Telmate to BPG Proxmox provider
- Replace Telmate/proxmox v3.0.2 with bpg/proxmox v0.95.0
- Convert modules/proxmox_vm to BPG resource syntax
- Convert modules/proxmox_lxc to BPG resource syntax
- Update vm_605_template.tf to use proxmox_virtual_environment_vm
- Fix API token format in providers.tf (remove duplicate @pam)
- Add comprehensive lifecycle ignore_changes to prevent unnecessary replacements
- Handle disk size parsing for both G and M suffixes
- Fix empty tags handling with compact()
- Temporarily switch to local backend (S3 backend has quorum issues)

Breaking changes:
- Resource types changed from proxmox_lxc/proxmox_vm_qemu to
  proxmox_virtual_environment_container/proxmox_virtual_environment_vm
- State was recreated by importing all resources from Proxmox cluster

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-16 21:40:46 +01:00
k.renner 2f22d2ff51 fix: Update host for Cloudflared LXC setup to proxmox_cloudflared 2026-02-16 21:11:18 +01:00
k.renner 426db7aced feat: Enhance backup infrastructure documentation and address RustFS incident recovery measures
Deploy Infrastructure / plan (push) Has been cancelled
Security Audit / Infrastructure Scan (IaC) (push) Has been cancelled
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
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Has been cancelled
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Has been cancelled
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Has been cancelled
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Has been cancelled
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Has been cancelled
Deploy Infrastructure / apply (push) Has been cancelled
2026-02-15 21:07:41 +01:00
k.renner ed19536d51 feat: Enable TLS verification for Proxmox API and update CI/CD workflow 2026-02-15 18:23:57 +01:00
k.renner 01e7c6164e feat: Implement secure Ansible vault password management
- Added REVIEW_SUMMARY.md to provide an executive summary of the infrastructure review, highlighting critical issues and next steps.
- Created VAULT_PASSWORD_USAGE.md as a guide for securely managing the Ansible vault password using environment variables and password managers.
- Introduced vault-password.sh script to read the vault password from the ANSIBLE_VAULT_PASSWORD environment variable, ensuring secure access during Ansible operations.
- Removed the plaintext vault password file (.vault_pass) to enhance security.
2026-02-15 16:21:49 +01:00
k.renner f453a5a90c Refactor code structure for improved readability and maintainability
Security Audit / Infrastructure Scan (IaC) (push) Successful in 40s
Deploy Infrastructure / plan (push) Failing after 2m8s
Deploy Infrastructure / apply (push) Has been skipped
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 2m50s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 55s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 31s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 1m7s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 4m47s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 42s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 3m53s
2026-02-15 15:55:18 +01:00
k.renner 57f6782fcc feat: Implement High Availability for Proxmox DNS Server using Keepalived
- Added Ansible playbook for installing Proxmox DNS server in HA configuration.
- Created role for Keepalived with VIP management and health checks.
- Implemented notification script for state changes in Keepalived.
- Developed health check script to monitor DNS service status.
- Configured Keepalived with VRRP settings and health check scripts.
- Documented HA architecture and deployment process for Proxmox DNS server.
- Migrated DHCP management from UniFi to Proxmox DNS server for dynamic IP resolution.
- Removed UniFi client resources from OpenTofu modules to streamline management.
- Added scripts for managing UniFi client resources during migration.
2026-02-13 21:56:26 +01:00
k.renner 67638dafcf feat: add Proxmox DNS server implementation with dynamic hostname resolution 2026-02-13 17:05:31 +01:00
k.renner cf5a6b2ed0 feat: remove unifi_client resource and update variable descriptions for clarity 2026-02-13 16:53:13 +01:00
k.renner 77025ee8ad feat: add Certbot and Cloudflare integration for SSL certificate management
Security Audit / Infrastructure Scan (IaC) (push) Successful in 22s
Deploy Infrastructure / plan (push) Failing after 1m47s
Deploy Infrastructure / apply (push) Has been skipped
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 3m30s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 1m8s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 42s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 37s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 5m7s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 1m3s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 3m34s
2026-02-12 19:02:00 +01:00
k.renner 67539280a8 feat: add authentik configuration and PostgreSQL setup improvements 2026-02-11 22:10:53 +01:00
k.renner 98f818fd56 feat: implement Authentik HA setup with PostgreSQL and Docker integration 2026-02-11 21:50:57 +01:00
k.renner 483e9e7d78 feat: add 'auth.renner.uno' to ingress CNAMEs for improved routing
Security Audit / Infrastructure Scan (IaC) (push) Successful in 41s
Deploy Infrastructure / plan (push) Failing after 2m1s
Deploy Infrastructure / apply (push) Has been skipped
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 5m32s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 5m24s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 41s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 32s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 2m40s
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 3m24s
2026-02-11 21:02:29 +01:00
k.renner 6fa8862571 chore: remove obsolete unifi DNS records and import scripts 2026-02-11 21:01:57 +01:00
k.renner 53806f0300 feat: add ssh_host, ssh_port, and default_ipv4_address to proxmox_vm_qemu resource 2026-02-11 20:58:44 +01:00
k.renner 91fe0d2a56 feat: add sync_state_from_pve script and update various configurations with backup options 2026-02-11 20:38:36 +01:00
k.renner e7286d64a0 fix: update IP address for caddy service and adjust disk size for homeassistant module 2026-02-11 19:06:24 +01:00
k.renner 82cf07abf4 Add unifi DNS records and modules for various services
- Created unifi_targets.txt and unifi_targets_strict.txt files to define DNS records for services including authentik, caddy, and others.
- Included ingress CNAMEs for modules such as audiobookshelf, gitea, grafana, and more.
- Ensured both files contain comprehensive lists of DNS records to support service discovery and routing.
2026-02-11 18:48:55 +01:00
k.renner 9b5897553a fix: remove obsolete external provider configuration from Terraform lock file 2026-02-10 19:14:01 +01:00
k.renner 5badfbb503 fix: update storage type from local to local-zfs across multiple configurations and add migration playbook 2026-02-10 17:49:57 +01:00
k.renner ba7ceac337 fix: increase disk size for audiobookshelf mountpoints and add migration playbook
Security Audit / Infrastructure Scan (IaC) (push) Successful in 40s
Deploy Infrastructure / plan (push) Failing after 2m3s
Deploy Infrastructure / apply (push) Has been skipped
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 4m32s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 1m10s
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 41s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 5m54s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 1m4s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 3m51s
2026-02-10 16:53:35 +01:00
k.renner 4b4727dff3 fix: remove obsolete Audiobookshelf migration script 2026-02-09 21:03:52 +01:00
k.renner 0699c87838 fix: add mountpoints configuration for audiobookshelf LXC and create migration script 2026-02-09 21:03:38 +01:00
k.renner 01e753301a fix: update storage type from cpool to local-zfs for consistency across configurations 2026-02-09 20:49:54 +01:00
k.renner 855cc83d21 fix: update hostnames for LXC modules and add external provider version 2026-02-09 19:30:54 +01:00