Commit Graph
4354 Commits
Author SHA1 Message Date
k.rennerandClaude Opus 4.6 40558d5dc5 chore: Add ownCloud debug playbook
ci/woodpecker/manual/run-ansible Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 21:14:27 +02:00
k.rennerandClaude Opus 4.6 31a1c9bf66 fix: Revert inventory changes, use dynamic inventory for owncloud
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
ci/woodpecker/manual/run-ansible Pipeline failed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:29:43 +02:00
k.rennerandClaude Opus 4.6 6532ccb5dc fix: Add owncloud to static inventory and revert dynamic inventory
ci/woodpecker/manual/run-ansible Pipeline failed
Dynamic Proxmox inventory doesn't work in CI (token not configured).
Use static inventory like all other services.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:24:25 +02:00
k.rennerandClaude Opus 4.6 a881934908 fix: Enable Proxmox API token auth in dynamic inventory
ci/woodpecker/manual/run-ansible Pipeline was successful
Uncomment token_id/token_secret so CI runners can discover hosts
via the Proxmox dynamic inventory plugin.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:20:59 +02:00
k.rennerandClaude Opus 4.6 f7d0763853 feat: Add TOFU_TAINT variable support to deploy pipeline
ci/woodpecker/push/deploy-infrastructure Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
ci/woodpecker/manual/run-ansible Pipeline was successful
Pass TOFU_TAINT=resource.address to taint before apply.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:13:00 +02:00
k.rennerandClaude Opus 4.6 0f58ff5224 fix: Set OCIS_INSECURE=true for reverse proxy deployment
ci/woodpecker/manual/run-ansible Pipeline was successful
ci/woodpecker/push/security-scan Pipeline failed
oCIS runs behind Caddy which handles TLS. Without OCIS_INSECURE=true
the internal services fail TLS verification on startup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:07:50 +02:00
k.rennerandClaude Opus 4.6 6190262e4d fix: Auto-init oCIS on first start instead of separate init step
ci/woodpecker/manual/run-ansible Pipeline was successful
ci/woodpecker/push/security-scan Pipeline was successful
Run 'ocis init || true' before 'ocis server' in the entrypoint.
Removes the separate init task that was hanging.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:00:19 +02:00
k.rennerandClaude Opus 4.6 8b9a07dc23 fix: Use docker run for oCIS init instead of docker_container module
ci/woodpecker/manual/run-ansible Pipeline failed
ci/woodpecker/push/security-scan Pipeline failed
The docker_container module with detach:false hangs indefinitely.
Use shell docker run --rm which handles exit codes properly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:54:59 +02:00
k.rennerandClaude Opus 4.6 c5a7c3933c fix: Fix ownCloud init task - use stat check and remove auto_remove
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/manual/run-ansible Pipeline failed
The auto_remove flag prevents reading container exit status.
Use stat check to skip init if already configured.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:43:19 +02:00
k.rennerandClaude Opus 4.6 4e5dcb06a3 fix: Switch UniFi provider to API key auth and upgrade to ~>0.41
ci/woodpecker/push/deploy-infrastructure Pipeline was successful
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/cron/security-scan Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
ci/woodpecker/manual/run-ansible Pipeline failed
Newer UniFi OS requires API key authentication instead of
username/password login. Removes deprecated credential variables.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 09:48:06 +02:00
k.rennerandClaude Opus 4.6 efebabdc9d fix: Revert UniFi provider to v0.41.12
ci/woodpecker/push/deploy-infrastructure Pipeline failed
ci/woodpecker/push/security-scan Pipeline failed
Newer versions use /api/auth/login (SSO endpoint) which returns 403
with local accounts. v0.41.12 uses /api/login which works correctly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 09:44:14 +02:00
k.rennerandClaude Opus 4.6 831cdea435 fix: Upgrade UniFi provider to ~>0.41 for current firmware compatibility
ci/woodpecker/push/deploy-infrastructure Pipeline failed
ci/woodpecker/push/security-scan Pipeline was successful
UniFi provider v0.41.12 can't authenticate with current UDM firmware.
Use flexible version constraint and tofu init -upgrade in CI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 09:37:55 +02:00
k.rennerandClaude Opus 4.6 f2ae00cf43 fix: Fix YAML quoting in run-ansible pipeline
ci/woodpecker/manual/run-ansible Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
Woodpecker requires $$ for variable references and proper quoting
to avoid YAML parsing issues.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 09:18:58 +02:00
k.rennerandClaude Opus 4.6 dd383bde9e feat: Add generic run-ansible pipeline for ad-hoc playbook runs
Requires PIPELINE=run-ansible and PLAYBOOK=plays/<name>.yml variables.
Independent of S3/tofu state, useful for fixing infrastructure issues.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 09:17:20 +02:00
k.rennerandClaude Opus 4.6 4b33eebd2c fix: Require explicit PIPELINE variable for manual triggers
ci/woodpecker/push/deploy-infrastructure Pipeline was successful
ci/woodpecker/push/build-caddy Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
ci/woodpecker/push/security-scan Pipeline was successful
Remove PIPELINE=="" catch-all from all pipelines so manual triggers
only run the specifically requested pipeline.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 09:08:15 +02:00
k.rennerandClaude Opus 4.6 386f819aa0 fix: Guard tofu apply behind TOFU_APPLY variable
ci/woodpecker/push/deploy-infrastructure Pipeline was successful
ci/woodpecker/manual/build-caddy Pipeline failed
ci/woodpecker/manual/security-scan Pipeline failed
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
Apply step now requires both manual trigger and TOFU_APPLY="true"
to prevent accidental applies of destructive plans.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 08:46:20 +02:00
k.rennerandClaude Opus 4.6 3a43f5a293 feat: Add ownCloud Infinite Scale (oCIS) deployment
ci/woodpecker/push/deploy-infrastructure Pipeline was successful
ci/woodpecker/push/security-scan Pipeline was successful
LXC 236 on saturn with 4GB RAM, 4 cores, 50GB disk.
Includes Ansible role with Docker Compose, Authentik OIDC integration,
and vault secrets for admin password and OAuth credentials.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 08:28:17 +02:00
k.rennerandClaude Opus 4.6 0abab025dd feat: Remove unused VMs (uptime-kuma, mosquitto, cdns)
ci/woodpecker/push/deploy-infrastructure Pipeline failed
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/cron/security-scan Pipeline was successful
ci/woodpecker/cron/update-all Pipeline failed
Remove VM 107 (uptime-kuma), VM 110 (mosquitto), and VM 119 (cdns)
to reduce cluster resource usage. Frees 12 CPU cores.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 11:26:53 +01:00
k.renner f97cba516f fix: Only backup VMs when updates are available
ci/woodpecker/push/security-scan Pipeline was successful
2026-03-26 10:07:26 +01:00
k.renner cb95694c76 fix: Restore install-immich in update pipeline
ci/woodpecker/manual/update-all Pipeline failed
2026-03-26 10:05:07 +01:00
k.renner 0fead4c4cd fix: Set Immich postgres to pg16-v0.3.0 to match data on disk
ci/woodpecker/push/security-scan Pipeline failed
2026-03-26 10:03:55 +01:00
k.renner 804a264c1b fix: Remove install-immich from weekly updates - needs dedicated migration 2026-03-26 10:03:12 +01:00
k.renner 244888067d feat: Add log aggregation deployment to weekly update pipeline
ci/woodpecker/manual/update-all Pipeline failed
2026-03-26 09:00:00 +01:00
k.renner be9a9c1146 fix: Revert Immich postgres to pg16-v0.2.1 to restore vector search
ci/woodpecker/push/security-scan Pipeline was successful
2026-03-26 08:53:53 +01:00
k.renner 98fa4d0de6 fix: Revert Immich redis->valkey migration to restore service
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/manual/update-all Pipeline was successful
Keep redis:7.4-alpine (security update) but revert the service
rename that broke the running deployment. Valkey migration
needs to be done with proper container cleanup.
2026-03-26 08:40:59 +01:00
k.renner b9af15b22d fix: Disable HA and stop USB-passthrough VMs before PVE node reboot
ci/woodpecker/push/security-scan Pipeline failed
2026-03-26 08:31:48 +01:00
k.renner fe08e26abf chore: Remove ntp and wazuh VMs from infrastructure
ci/woodpecker/push/deploy-infrastructure Pipeline was successful
ci/woodpecker/push/security-scan Pipeline failed
2026-03-26 08:29:51 +01:00
k.renner fbb7729c4f fix: Exclude eol-tagged VMs from updates
ci/woodpecker/manual/update-all Pipeline failed
2026-03-26 07:38:55 +01:00
k.renner bf7a844af8 fix: Add eol tag to VMs running EOL Ubuntu 24.10
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/push/deploy-infrastructure Pipeline was successful
2026-03-26 07:36:56 +01:00
k.renner 216481e829 fix: Tag dev, kasm, grafana with noansible - EOL Ubuntu 24.10 repos
ci/woodpecker/push/deploy-infrastructure Pipeline failed
ci/woodpecker/push/security-scan Pipeline failed
2026-03-26 07:35:46 +01:00
k.renner a63d0baa81 fix: Increase backup wait to 5 minutes for larger VMs
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
2026-03-26 07:05:19 +01:00
k.renner c18456d33d fix: Force apt cache refresh and clean before VM updates
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/push/security-scan Pipeline was successful
2026-03-26 06:57:19 +01:00
k.renner 7769bd6fe0 fix: Run VM updates serial: 1 since only one backup can run at a time
ci/woodpecker/manual/update-all Pipeline failed
2026-03-25 22:53:03 +01:00
k.renner d34ab8977a fix: Wait for pre-update backup completion (2min max, was 50min)
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/push/security-scan Pipeline was successful
2026-03-25 22:47:36 +01:00
k.renner 6b02dadffa fix: Remove max_fail_percentage - every failure should stop the pipeline
ci/woodpecker/manual/update-all Pipeline failed
2026-03-25 22:27:45 +01:00
k.renner 22489c3b60 fix: Remove pre-update backup step and add max_fail_percentage to VM updates
ci/woodpecker/push/security-scan Pipeline was successful
2026-03-25 22:26:56 +01:00
k.renner eb9461a849 fix: Install community.docker collection and increase timeout to 120min
ci/woodpecker/manual/update-all Pipeline failed
2026-03-25 22:09:37 +01:00
k.renner a00a2767a6 fix: Update Docker images and re-render templates during updates
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/manual/update-all Pipeline is running
Image updates:
- Immich: redis:6.2-alpine → valkey:9-alpine (upstream migration)
- Immich: pgvecto-rs pg16-v0.2.1 → pg16-v0.3.0 (latest patch, same PG major)
- Paperless: redis:7 → redis:7.4, postgres:15 → postgres:15.17

Update pipeline:
- Run install playbooks before docker update to re-render templates
- All install playbooks are idempotent (safe to re-run)
2026-03-25 18:17:05 +01:00
k.renner 4242e4a4dd fix: Update Docker images to address security vulnerabilities
ci/woodpecker/push/security-scan Pipeline failed
Immich:
- Migrate from redis:6.2-alpine to valkey:9-alpine (upstream change)
- Migrate from tensorchord/pgvecto-rs:pg16-v0.2.1 to
  ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
- Update REDIS_HOSTNAME to point to valkey service

Paperless:
- Update redis:7 to redis:7.4
- Pin postgres:15 to postgres:15.17
2026-03-25 18:10:21 +01:00
k.renner f84ae78ade fix: Filter bare 'latest' and fix vlatest tag in image discovery
ci/woodpecker/push/security-scan Pipeline failed
2026-03-25 18:04:30 +01:00
k.renner 9b6988015d fix: Use find+xargs instead of grep --include for BusyBox compatibility
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
2026-03-25 17:30:51 +01:00
k.renner b8505224dc fix: Escape dollar signs for Woodpecker variable parser
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
2026-03-25 17:14:19 +01:00
k.renner d70cfc07bb feat: Dynamically discover Docker images from repo for security scanning 2026-03-25 16:59:08 +01:00
k.renner da51bbe2d7 feat: Scan all Docker images used in the repo for vulnerabilities
ci/woodpecker/push/security-scan Pipeline was successful
2026-03-25 16:57:50 +01:00
k.renner 50770e9373 perf: Combine image scans into single step to avoid repeated DB downloads
ci/woodpecker/push/security-scan Pipeline was successful
2026-03-25 16:54:29 +01:00
k.renner e167118432 fix: Guard update-all cron event with PIPELINE variable 2026-03-25 16:51:28 +01:00
k.renner 036be85748 feat: Add PIPELINE variable filter to all workflows for scoped cron/manual triggers
ci/woodpecker/push/build-caddy Pipeline was successful
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/push/deploy-infrastructure Pipeline failed
2026-03-25 16:44:14 +01:00
k.rennerandClaude Opus 4.6 14c7b4583a chore: Remove temporary SSH key sync pipelines
The SSH key has been successfully rotated. Remove the one-time
Gitea Actions workflow and Woodpecker sync pipeline.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 20:30:59 +01:00
k.rennerandClaude Opus 4.6 37e589ea6e feat: Rotate CI SSH key to new woodpecker-ci@homelab keypair
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/update-all Pipeline is running
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/push/deploy-infrastructure Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
Generated fresh ed25519 key. Private key set directly in Woodpecker
secrets. Public key updated in locals.tf, vars.yml, and the SSH key
deployment playbook.

Run configure-ssh-keys.yml from fortress to deploy to all hosts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:35:19 +01:00
k.renner 16e7eedeaa fix: Use python3 for reliable base64 SSH key decoding
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
2026-03-24 18:04:20 +01:00