k.renner
01142fec4f
fix: Use printf instead of echo for base64 decoding SSH key
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
2026-03-24 13:49:16 +01:00
k.renner
d80c724503
fix: Pass SSH key through as-is, no re-encoding
Sync SSH Key to Woodpecker / sync (push) Successful in 0s
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
2026-03-24 13:21:14 +01:00
k.renner
11b8f1d86d
chore: Add key diagnostic step to sync pipeline
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 13:12:05 +01:00
k.renner
2c024248b3
fix: Ensure SSH key is base64-encoded for Woodpecker
Sync SSH Key to Woodpecker / sync (push) Successful in 0s
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
2026-03-24 12:02:32 +01:00
k.renner
d19194fd4f
fix: Use python3 for JSON-safe SSH key sync, install in runner
Sync SSH Key to Woodpecker / sync (push) Successful in 0s
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 07:55:42 +01:00
k.renner
96148fc1a5
fix: Use jq to properly escape SSH key in sync workflow
ci/woodpecker/manual/build-caddy Pipeline was successful
Sync SSH Key to Woodpecker / sync (push) Failing after 0s
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
2026-03-24 07:44:13 +01:00
k.renner and Claude Opus 4.6
423a44953c
fix(ansible): Deploy SSH keys to both root and ladmin users
...
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
Keys must be in root's authorized_keys for LXC containers (CI connects
as root) and ladmin's for VMs. Previous version only deployed to the
connecting user.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 07:27:40 +01:00
k.renner and Claude Opus 4.6
846ccd2903
feat(ansible): Add SSH key deployment playbook
...
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
Deploys all authorized SSH keys to reachable hosts.
Run manually from fortress to bootstrap CI SSH access on LXC containers.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 06:57:30 +01:00
k.renner and Claude Opus 4.6
b317b66771
fix(ansible): Set ansible_user per VM type in dynamic inventory
...
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
LXC containers use root, VMs use ladmin. Previously all hosts
defaulted to ladmin from group_vars, but LXC containers only have
root's SSH keys configured.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 22:15:49 +01:00
k.renner
9d6656177a
fix: Install curl in act_runner container and re-trigger sync
Sync SSH Key to Woodpecker / sync (push) Successful in 0s
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
2026-03-23 21:43:35 +01:00
k.renner
3fcc12ea6d
fix: Use host execution mode for temporary Gitea runner
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
2026-03-23 21:33:12 +01:00
k.renner
58714db612
chore: Run temporary Gitea runner to process sync workflow
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-23 21:27:07 +01:00
k.renner
cd20c98013
chore: Extract public key from Woodpecker SSH secret
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
2026-03-23 21:02:08 +01:00
k.renner
0039a68743
chore: Improve sync pipeline to scrape runner registration token
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/sync-ssh-key Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
2026-03-23 20:55:16 +01:00
k.renner
79bca7010e
chore: Add debug pipeline to test gitea token and SSH key
ci/woodpecker/manual/sync-ssh-key Pipeline failed
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 failed
2026-03-23 20:53:06 +01:00
k.renner
6bb7697add
chore: Trigger sync workflow on push
Sync SSH Key to Woodpecker / sync (push) Failing after 0s
2026-03-23 20:42:12 +01:00
k.renner and Claude Opus 4.6
f026fa9701
chore: Add one-time workflow to sync SSH key from Gitea to Woodpecker
...
Temporary Gitea Actions workflow to copy the SSH_PRIVATE_KEY secret
from Gitea Actions to Woodpecker CI. Will be removed after sync.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 20:39:51 +01:00
k.renner and Claude Opus 4.6
8bb6395b40
fix(woodpecker): Set ANSIBLE_ROLES_PATH env var for update-all pipeline
...
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
ansible.cfg is ignored in world-writable CI directories. Setting
ANSIBLE_ROLES_PATH as environment variable bypasses the issue.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 18:02:06 +01:00
k.renner and Claude Opus 4.6
7a55a43315
fix(woodpecker): Fix update-all pipeline ansible.cfg and collection issues
...
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/update-all Pipeline failed
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
- Install community.proxmox collection for dynamic inventory plugin
- chmod workspace to fix world-writable directory warning that causes
ansible.cfg to be ignored (breaks roles_path resolution)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 17:53:49 +01:00
k.renner and Claude
1f7e3bd1d6
feat(woodpecker): Add update-all workflow
...
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
Runs full infrastructure update via Ansible:
- VMs (apt upgrade)
- LXC containers (apt upgrade)
- Authentik HA
- Docker containers
- Proxmox nodes (rolling)
Triggered manually or via cron.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-03-23 15:26:49 +01:00
k.renner and Claude
69fe3764cc
chore(opentofu): Remove legacy Gitea runners
...
ci/woodpecker/push/build-caddy Pipeline was successful
ci/woodpecker/push/security-scan Pipeline was successful
ci/woodpecker/push/deploy-infrastructure Pipeline was successful
Removed after migration to Woodpecker CI:
- Deleted runners.tf module
- Removed gitea_runners local definition
- Removed gitea_runner_count variable
- Cleaned up test trigger comments
The Gitea runner LXC containers (905, 906) will be destroyed
when apply is triggered manually in Woodpecker CI.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-03-23 14:57:36 +01:00
k.renner and Claude
544e595315
chore: Remove Gitea Actions workflows
...
Migrated to Woodpecker CI. All pipelines verified working:
- deploy-infrastructure (plan on push, apply on manual)
- build-caddy (xcaddy build with plugins)
- security-scan (Trivy IaC and image scanning)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-03-22 22:21:33 +01:00
k.renner and Claude
c2dfddbaa1
chore(woodpecker): Test build-caddy and security-scan pipelines
...
ci/woodpecker/push/build-caddy Pipeline was successful
ci/woodpecker/push/security-scan Pipeline was successful
Triggering both pipelines to verify Woodpecker CI is working.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-03-22 22:12:48 +01:00
k.renner and Claude
aaf571b4c9
fix(woodpecker): Separate plan and apply with manual approval
...
ci/woodpecker/push/deploy-infrastructure Pipeline was successful
- Plan runs on push (automatic)
- Apply only runs on manual trigger (requires approval)
This prevents automatic infrastructure changes and allows reviewing
the plan before applying.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-03-22 21:54:10 +01:00
k.renner
dbee853cd2
chore: test Woodpecker webhook after Gitea fix
Security Audit / Infrastructure Scan (IaC) (push) Successful in 19s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 2m6s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 2m45s
ci/woodpecker/push/security-scan Pipeline failed
ci/woodpecker/push/deploy-infrastructure Pipeline failed
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 30s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 27s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 22s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 1m57s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 19s
Deploy Infrastructure / plan (push) Successful in 16m23s
Deploy Infrastructure / apply (push) Successful in 41s
Deploy Infrastructure / integration-tests (push) Successful in 15s
2026-03-22 21:48:48 +01:00
k.renner and Claude
be6de139ce
fix(gitea-workflow): Add Proxmox credentials for dynamic inventory
...
Update Gitea Config / update (push) Successful in 1m36s
The update-gitea-config workflow failed because the Proxmox dynamic
inventory requires PROXMOX_TOKEN_ID and PROXMOX_TOKEN_SECRET env vars.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-03-22 21:42:12 +01:00
k.renner
67317eabc1
chore: trigger Woodpecker webhook test
Deploy Infrastructure / apply (push) Blocked by required conditions
Deploy Infrastructure / integration-tests (push) Blocked by required conditions
Security Audit / Infrastructure Scan (IaC) (push) Successful in 29s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 1m23s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 1m42s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 24s
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 2m1s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 1m47s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 24s
Deploy Infrastructure / plan (push) Has been cancelled
2026-03-22 21:35:52 +01:00
k.renner and Claude
4abd30bc98
fix(gitea): allow webhooks to private/loopback hosts
...
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 23s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 2m10s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Has been cancelled
Update Gitea Config / update (push) Successful in 22s
Gitea was blocking webhooks to Woodpecker CI despite having 'private'
in ALLOWED_HOST_LIST. Changed to '*' to allow all webhook destinations.
Also updated update-gitea-config workflow to trigger on gitea role changes.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-03-22 21:32:59 +01:00
k.renner and Claude
49032bd909
fix(woodpecker): Combine plan and apply to prevent stale plan errors
...
The separate plan and apply steps caused "Saved plan is stale" errors
when multiple pipelines ran concurrently or state changed between steps.
Combined into single plan-and-apply step that runs tofu plan followed
immediately by tofu apply -auto-approve in the same container.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-03-22 21:30:56 +01:00
k.renner and Claude
03f47ee86d
chore(opentofu): Test Woodpecker CI pipeline trigger
...
Deploy Infrastructure / integration-tests (push) Blocked by required conditions
Security Audit / Infrastructure Scan (IaC) (push) Successful in 34s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 1m30s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 1m51s
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 24s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 20s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 1m55s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 16s
Deploy Infrastructure / plan (push) Successful in 16m9s
Deploy Infrastructure / apply (push) Has been cancelled
No-op change to verify Woodpecker CI is working before removing
old Gitea runners.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-03-22 21:17:27 +01:00
k.renner and Claude
4d873a178f
docs: Enforce CI-only workflow for all cluster changes
...
Direct execution of ansible, ssh, and tofu commands is no longer
allowed. All infrastructure and configuration changes must go through
CI/CD by pushing to Gitea and waiting for pipelines to execute.
Updated CLAUDE.md to:
- Add prominent CI-only workflow warning at top
- Replace "Common Commands" with "Making Changes (CI/CD Workflow)"
- Update all sections to remove direct execution examples
- Add critical rule about never running ansible/ssh/tofu directly
- Clarify which commands are allowed locally (validation only)
- Update troubleshooting to reference CI and Grafana/Loki
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-03-22 21:10:37 +01:00
k.renner
4d9244d0a0
fix(gitea): allow webhooks to private/loopback hosts
...
Security Audit / Infrastructure Scan (IaC) (push) Successful in 19s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 3m1s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 53s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 3m47s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 23s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 21s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 31s
Update Gitea Config / update (push) Successful in 28s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 2m45s
Add [webhook] ALLOWED_HOST_LIST = private,loopback to Gitea app.ini.
Default is 'external' which blocks webhooks to internal IPs like
woodpecker.srv.renner.uno.
2026-03-19 06:12:21 +01:00
k.renner
67878aa625
chore: remove debug-wp-logs workflow, test webhook via HTTP
2026-03-19 06:09:42 +01:00
k.renner
9c6448e3d2
debug: check woodpecker server logs for webhook issues
Debug WP Logs / debug (push) Successful in 4s
2026-03-19 06:05:01 +01:00
k.renner
b0d44fd118
fix: revert webhook host override, Gitea can reach Caddy proxy
Security Audit / Infrastructure Scan (IaC) (push) Successful in 39s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 2m6s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 1m24s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 29s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 3m36s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 18s
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 2m38s
2026-03-19 06:03:34 +01:00
k.renner
0e93eb8e54
fix(woodpecker): set webhook host to internal address
...
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 33s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Has been cancelled
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Has been cancelled
Gitea can't reach ci.renner.uno (goes through Caddy ingress which
doesn't resolve from the services VLAN). Set WOODPECKER_EXPERT_WEBHOOK_HOST
to the direct internal address.
2026-03-19 06:01:26 +01:00
k.renner
67e3bafccc
test: verify Woodpecker webhook triggers on push
2026-03-18 23:52:20 +01:00
k.renner
f41b0c5da9
fix(woodpecker): replace gitea-release plugin with curl-based upload
...
ci/woodpecker/manual/build-caddy Pipeline was successful
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
All gitea-release plugins require tag events. Use direct Gitea API
calls to delete old asset and upload new binary to the existing
'latest' release.
2026-03-18 23:47:04 +01:00
k.renner
3c36d524ed
fix(woodpecker): use plugins/gitea-release for caddy release step
...
ci/woodpecker/manual/build-caddy Pipeline failed
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
The old woodpeckerci/plugin-gitea-release is deprecated and only works
with tag events. Switch to plugins/gitea-release which works with
manual triggers.
2026-03-18 23:41:08 +01:00
k.renner
b05ad48950
fix(woodpecker): upgrade Go image to 1.26 for Caddy v2.11.2 build
...
ci/woodpecker/manual/build-caddy Pipeline failed
ci/woodpecker/manual/security-scan Pipeline was successful
ci/woodpecker/manual/deploy-infrastructure Pipeline was successful
Caddy v2.11.2 requires Go >= 1.25.0, golang:1.24 is too old.
2026-03-17 21:34:41 +01:00
k.renner
c243b99273
feat: add Woodpecker CI deploy key to common_ssh_keys and vault
...
Security Audit / Infrastructure Scan (IaC) (push) Successful in 33s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 1m58s
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
ci/woodpecker/manual/build-caddy Pipeline failed
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 3m53s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 54s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 1m11s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 33s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 3m58s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 1m10s
ci/woodpecker/manual/security-scan Pipeline was successful
Deploy Infrastructure / plan (push) Successful in 16m8s
Deploy Infrastructure / apply (push) Successful in 45s
Deploy Infrastructure / integration-tests (push) Successful in 9s
New ed25519 key for Woodpecker CI pipelines to SSH into managed hosts.
Added to locals.tf (provisioned to all LXCs) and stored in vault.
2026-03-17 17:33:37 +01:00
k.renner
40fe2df410
chore: remove debug-woodpecker workflow
2026-03-17 06:10:20 +01:00
k.renner
4b859b98fb
fix(woodpecker): set data dir ownership to UID 1000 for container user
...
Security Audit / Infrastructure Scan (IaC) (push) Successful in 23s
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Failing after 2m15s
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Failing after 1m13s
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Failing after 27s
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Failing after 3m39s
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Failing after 21s
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Successful in 21s
Setup Woodpecker CI / Provision Woodpecker CI (push) Successful in 1m48s
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Failing after 2m28s
Container runs as non-root (UID 1000) but /var/lib/woodpecker/ was
owned by root, causing 'unable to open database file' errors.
2026-03-17 06:02:45 +01:00
k.renner
820886c0b5
ci: add debug-woodpecker workflow to check container status
Debug Woodpecker / debug (push) Successful in 7s
2026-03-17 06:00:25 +01:00
k.renner
f31996eb4d
fix(ci): add community.proxmox collection and Proxmox credentials for Caddy deploy
...
Setup Woodpecker CI / Provision Woodpecker CI (push) Successful in 1m48s
The Caddy HA playbook targets proxmox_caddy_ha group which is resolved
by the dynamic Proxmox inventory plugin. Added:
- ansible-galaxy collection install community.proxmox
- PROXMOX_TOKEN_ID and PROXMOX_TOKEN_SECRET env vars
2026-03-17 05:56:12 +01:00
k.renner
a5f2a7c638
fix(ci): re-set VAULT_PASS secret with correct encoding
Setup Woodpecker CI / Provision Woodpecker CI (push) Successful in 4m23s
2026-03-16 22:27:30 +01:00
k.renner
b5cee9a767
fix(ci): install bash for vault-password.sh shebang
Setup Woodpecker CI / Provision Woodpecker CI (push) Failing after 20s
2026-03-16 22:25:26 +01:00
k.renner
c13ccd981b
fix(ci): set ANSIBLE_VAULT_PASSWORD_FILE for CI container path
...
Setup Woodpecker CI / Provision Woodpecker CI (push) Failing after 22s
ansible.cfg points to ~/source/homelab which doesn't exist in the CI
container. Override with ANSIBLE_VAULT_PASSWORD_FILE env var.
2026-03-16 22:23:18 +01:00
k.renner
b9d213a446
fix(ci): use git clone instead of actions/checkout in setup-woodpecker
...
Setup Woodpecker CI / Provision Woodpecker CI (push) Failing after 20s
Alpine container has no Node.js, which actions/checkout@v3 requires.
Replaced with plain git clone and collapsed into single job.
2026-03-16 22:21:34 +01:00
k.renner
fd7d983ebf
ci: trigger setup-woodpecker on push to its own file
...
Setup Woodpecker CI / Provision Woodpecker Server (push) Failing after 3s
Setup Woodpecker CI / Provision Woodpecker Agents (push) Has been skipped
Setup Woodpecker CI / Update Caddy Configuration (push) Has been skipped
Gitea 1.21 does not support workflow_dispatch via API or UI.
Changed to push trigger on the workflow file path.
2026-03-16 22:20:15 +01:00