Commit Graph

  • 37ed671aaa Change AWS keys to use Woodpecker Secrets AVB 2026-08-25 20:16:54 -07:00
  • 1374a1dc1f Update open-webui to 0.11.1 AVB 2026-08-25 16:48:40 -07:00
  • c9b53ec3f0 Update homeassistant/homeassistant.yaml AVB 2026-08-24 21:48:11 -07:00
  • 2b9209d9d1 Deprecate: hwaccel.transcoding.yml - functionality moved to main immich.yml admin 2026-08-19 23:03:53 -07:00
  • 4907039db9 Deprecate: hwaccel.ml.yml - functionality moved to main immich.yml admin 2026-08-19 23:03:52 -07:00
  • bef97dd908 Fix: Add /dev/dri to immich-server for quicksync transcoding support admin 2026-08-19 23:03:37 -07:00
  • 7af75c43ed Revert: Use volumes instead of devices for DDM compatibility with Docker Swarm admin 2026-08-19 23:02:06 -07:00
  • 472dd3a34a Revert: Use volumes instead of devices for DDM compatibility with Docker Swarm admin 2026-08-19 23:02:04 -07:00
  • d145aeeebe feat: add woodpecker-mcp.mjs server script for MCPO admin 2026-08-18 22:54:06 -07:00
  • 284bf98a6d Fix: Correct hwaccel.ml.yml to extend immich-machine-learning with devices, not create separate service admin 2026-08-18 07:51:58 -07:00
  • 623af9577c Fix: Correct hwaccel.transcoding.yml to extend immich-server with devices, not create separate service admin 2026-08-18 07:51:49 -07:00
  • 268f81eb08 Update immich/immich.yml AVB 2026-08-17 23:51:37 -07:00
  • cef680c8df Update immich/immich.yml AVB 2026-08-17 23:49:59 -07:00
  • e641b9f14a Update immich/immich.yml AVB 2026-08-17 23:47:35 -07:00
  • a0a1a87e04 Remove: Delete immich.env (should not be version controlled) admin 2026-08-17 23:38:07 -07:00
  • 0349a948e5 Add: Create immich.env-example with placeholder values admin 2026-08-17 23:37:41 -07:00
  • 38ace2a109 Add: Create immich.env with required environment variables admin 2026-08-17 23:35:18 -07:00
  • 6ccd4cc34a Fix: Add missing image to quicksync service in hwaccel.transcoding.yml admin 2026-08-17 23:35:18 -07:00
  • 47e9f95fcb Fix: Add missing image to openvino service in hwaccel.ml.yml admin 2026-08-17 23:35:17 -07:00
  • aa87f11588 cutover: fix missing PGPASSWORD on all remote psql -h calls (Phases 3/5/8) admin 2026-08-08 14:01:57 -07:00
  • dbabc69c2a cutover: surface stderr in Phase 3's canary-propagation check (diagnostic fix) admin 2026-08-08 13:07:53 -07:00
  • 2ed406db82 rollback: add full-session logging (writes to same dir as backup) admin 2026-08-05 15:08:47 -07:00
  • 653f308623 cutover: add full-session logging (writes to same dir as backup) admin 2026-08-05 15:07:22 -07:00
  • fcbaa2cba3 cutover: add full-session logging to preflight.sh (writes to same dir as backup) admin 2026-08-05 15:03:14 -07:00
  • 82a8414ffa cutover.sh: interactive stale-state cleanup prompt before Phase 0 admin 2026-08-05 13:37:15 -07:00
  • 4bff5d7104 Change backup directory location AVB 2026-08-05 13:07:16 -07:00
  • 96f7638c26 Changed Backup location AVB 2026-08-05 13:00:23 -07:00
  • 7a62b1b585 Reducing MAX_WAIT back down. AVB 2026-08-05 12:43:35 -07:00
  • 57354b6613 Increased MAX_WAIT periods for PHASE 1 and PHASE 2 AVB 2026-08-05 11:48:23 -07:00
  • b2b86a668d cutover.sh: fix Phase 2's lag check — was a silent no-op admin 2026-08-05 08:11:15 -07:00
  • 8f860ab14d postgresql-ha-final.yaml: add matching primary_slot_name (keep byte-identical with staging) admin 2026-08-04 20:04:50 -07:00
  • 7a06b040ad postgresql-ha-staging.yaml: add primary_slot_name to fix real bootstrap failure admin 2026-08-04 20:04:01 -07:00
  • e57f4b3592 cutover.sh: extend Phase 2 cascade-replica wait window to 35 min admin 2026-08-04 00:48:32 -07:00
  • 29cd73eabc cutover.sh: dynamic standby_leader detection + extended bootstrap wait windows admin 2026-08-04 00:40:20 -07:00
  • 9c1f31a70e ADR-0001 rollback.sh: accept any 2xx in consumer health checks (204 from Woodpecker was a false-positive failure) admin 2026-08-02 22:15:15 -07:00
  • 325daca86b ADR-0001 cutover.sh: fix Phase 1 node-label check (broken Go template on hyphenated label) and accept any 2xx in consumer health checks admin 2026-08-02 22:14:17 -07:00
  • 066cbaf97f ADR-0001 Phase 3: add rollback.sh (standalone, idempotent, grace-window guard against post-cutover data loss) admin 2026-08-02 17:38:50 -07:00
  • 1203630bb5 ADR-0001 Phase 3: add cutover.sh (11-phase scripted cutover with auto-rollback) admin 2026-08-02 17:32:42 -07:00
  • a4f5d54b82 ADR-0001 Phase 3: add postgresql-ha-final.yaml (Stage 3 - HAProxy alias handoff, no external port/Traefik yet) admin 2026-08-02 17:28:26 -07:00
  • 01768d14f5 ADR-0001 Phase 3: add preflight.sh (disk/backup hard gates, catalog+consumer enumeration) admin 2026-08-02 16:45:44 -07:00
  • f49b576806 ADR-0001 Phase 3: add cutover RUNBOOK (dependency map, phased procedure, rollback) admin 2026-08-02 16:35:52 -07:00
  • 8d30f19c8c postgresql.yaml: update stale comment referencing old CLONE_* rationale to reference standby_cluster design (no functional change - this file never used CLONE_* itself) admin 2026-07-30 22:03:44 -07:00
  • 4dcb3561ed postgresql-ha-staging.yaml: switch from CLONE_WITH_BASEBACKUP to Patroni standby_cluster (continuous streaming, validated in pgha-test dry run) - closes pre-cutover write gap admin 2026-07-30 21:59:44 -07:00
  • dc6120ffd4 pgha-dryrun.yaml: trigger secret re-provisioning after regenerating postgresql_replication_password (excludes &<>\" per pystache HTML-escaping bug found this session) admin 2026-07-30 21:44:49 -07:00
  • 8afe0049c4 pgha-dryrun.yaml: switch from CLONE_WITH_BASEBACKUP to Patroni standby_cluster (continuous streaming) to close the pre-cutover write gap admin 2026-07-30 21:24:28 -07:00
  • 499402cd0d postgresql-ha-staging.yaml: port dry-run fixes (bugs 1,2,4,5) - $$(...) escaping (incl. CLONE_PASSWORD), ETCD3_HOSTS, post_init_wrapper.sh SUPERUSER role fix admin 2026-07-30 15:56:43 -07:00
  • 7e8e3388f4 postgresql.yaml: port dry-run fixes (bugs 1,2,4,5) - $$(...) escaping, ETCD3_HOSTS, post_init_wrapper.sh SUPERUSER role fix admin 2026-07-30 15:55:26 -07:00
  • b7f0d9dbfb pgha dry-run: fix bug 5 - grant SUPERUSER to placeholder postgres role admin 2026-07-29 09:32:09 -07:00
  • e8e506dc4d add: post_init_wrapper.sh to work around Spilo's hardcoded 'postgres' role name assumption in post_init.sh. Does not fork/modify Spilo's script — creates missing role then execs the original unchanged. admin 2026-07-29 07:21:34 -07:00
  • 7529e6cb36 fix: override bootstrap.post_init via SPILO_CONFIGURATION to create missing 'postgres' role before Spilo's real post_init.sh runs. Spilo hardcodes ALTER VIEW...OWNER TO postgres with no way to parameterize, which fails since our superuser is PGadmin not postgres. admin 2026-07-29 06:35:24 -07:00
  • b86784fe3a fix: legacy container needs pg_hba.conf replication rule for pg_basebackup — added initdb.d hook script. Disposable test only, uses 'trust' since this container is not auth-representative. admin 2026-07-28 21:27:13 -07:00
  • 1dcb5ec467 fix: use ETCD3_HOSTS not ETCD_HOSTS — confirmed against spilo source that etcd/etcd3 are distinct DCS backends (v2 vs v3 API). Our etcd 3.5.9 containers have v2 API disabled, causing 404s with the old var name. admin 2026-07-28 21:10:13 -07:00
  • 83480aa23b fix: escape \$(...) as \$\$(...) in patroni command blocks — Compose interpolation was choking on \$( before the shell ever saw it (invalid interpolation format error) admin 2026-07-28 21:03:56 -07:00
  • 20e1210441 postgresql: add disposable dry-run test stack for cutover validation (pgha-test, own network + data dirs, zero prod impact) admin 2026-07-28 11:12:19 -07:00
  • f4f0749969 postgresql: add cutover staging compose (ADR-0001 Phase 3). Lives in cutover/ subdir — deliberately excluded from stack-deploy.sh folder merge. Deployed only by cutover script as separate postgresqlha stack. admin 2026-07-28 11:07:03 -07:00
  • 87ae54fb3f postgresql: add HAProxy config for Patroni-aware TCP routing (ADR-0001 Phase 2) admin 2026-07-28 08:53:55 -07:00
  • c8d45e9e61 postgresql: add folder-based Patroni+etcd+HAProxy HA stack draft (ADR-0001 Phase 2). NOT deployed — bootstrap tier, manual deploy only. Coexists with flat postgresql.yaml until cutover. admin 2026-07-28 08:53:44 -07:00
  • 129badada4 Add secrets (and add postgresql) back so they are seen as utility folders and do deploy AVB 2026-07-28 08:36:56 -07:00
  • e1f569b3ec Add secrets folder to utility folders list so it isn't auto-deployed as a stack AVB 2026-07-28 08:25:35 -07:00
  • b5767ec7d9 revert 8719c398fd AVB 2026-07-28 08:24:29 -07:00
  • 8719c398fd Update .woodpecker/deploy.yml AVB 2026-07-28 08:22:57 -07:00
  • 9a5b028e07 postgresql: document replication + patroni secrets (ADR-0001 Phase 1) admin 2026-07-28 07:20:52 -07:00
  • 0f26d31a02 postgresql: add replication + patroni Woodpecker secrets to provision-secrets step (ADR-0001 Phase 1) admin 2026-07-28 07:20:35 -07:00
  • efd90dac3e Update ai/ai.yaml AVB 2026-07-27 16:14:54 -07:00
  • 6789d2530a vaultwarden: retry #8 -- trigger after fixing pipeline compile error (dollar-brace literal in comments) admin 2026-07-27 13:36:17 -07:00
  • e0a6b7d233 deploy.yml: fix pipeline compile error 'missing closing brace' -- the documentation comment itself contained a literal dollar-brace sequence with invalid contents (dollar-brace CI_...), which Woodpecker's substitution engine parses even inside comments. Rewrote header to describe the rules in words without any literal dollar-brace sequences. Also removed backtick-quoted dollar-brace remnants from the vaultwarden case comment. admin 2026-07-27 13:35:13 -07:00
  • 9b3bba636c vaultwarden: retry #7 -- trigger after fixing Woodpecker compile-time ${VAR} substitution root cause admin 2026-07-27 12:52:59 -07:00
  • 6757b0dfe1 deploy.yml: THE ACTUAL ROOT CAUSE FIX. Woodpecker substitutes ${VAR} at pipeline-compile time from its CI metadata map, where secrets do not exist -- so every braced reference to a secret-backed env var (SWARM_MANAGER_IP, all provisioning values) was silently blanked before the shell ever ran. Proven by debug output showing eval "val=\$$v" arriving as val=\$v ($$ unescaped to $) and lengths matching var NAMES. Fix: escape all runtime secret refs as $${VAR}; keep ${CI_PIPELINE_FILES} braced (compile-time is correct for CI metadata). Removes flawed debug step; adds header documenting the substitution rules. admin 2026-07-27 12:50:21 -07:00
  • 7a81bc73bd deploy.yml: add temporary debug-secrets-all step declaring the identical 31-secret environment block as provision-secrets, printing byte length of every var (never values). Runs as its own step so it completes even when provision-secrets fails, telling us in one run whether all secrets are empty, only some, or only swarm_manager_ip. admin 2026-07-27 12:39:53 -07:00
  • 1a1068a154 vaultwarden: retry #6 -- re-trigger after fixing invalid 3DPRINT_DB_PASSWORD env var name admin 2026-07-27 12:13:05 -07:00
  • 332708ad41 deploy.yml: rename env var alias 3DPRINT_DB_PASSWORD -> PRINT3D_DB_PASSWORD in provision-secrets. Shell/env var identifiers cannot start with a digit (POSIX); this invalid key was likely poisoning the entire environment block for this step, explaining why SWARM_MANAGER_IP read empty specifically in provision-secrets/deploy/verify (which all declare 20-30 secrets) while working fine in the isolated 2-secret debug step. The underlying Woodpecker secret name (3dprint_db_password) is unchanged -- only the YAML alias and its $-reference were renamed. admin 2026-07-27 12:12:39 -07:00
  • cfd735f14d vaultwarden: retry #5 -- real end-to-end test now that repo is public and pipeline bugs are fixed admin 2026-07-27 11:57:30 -07:00
  • 01333893f1 deploy.yml: remove temporary debug-secrets step. Secret injection confirmed working (SSH_KEY=516 bytes, SWARM_MANAGER_IP=12 bytes) after repo was switched back to public. Root cause of the entire multi-day secret-provisioning saga: (1) CI_COMMIT_CHANGED_FILES renamed to CI_PIPELINE_FILES in Woodpecker 3.16, (2) --no-interpolate flag was misplaced, (3) dotfolders matched as bogus stack names, (4) private-repo flip broke Woodpecker's secret injection entirely. All four now fixed. admin 2026-07-27 11:57:02 -07:00
  • d89cfbf055 deploy.yml: add temporary debug-secrets step (prints byte length of SSH_KEY and SWARM_MANAGER_IP only, never values) to determine whether secret injection is failing repo-wide or just for swarm_manager_ip. Repo has been switched back to public. admin 2026-07-27 11:54:54 -07:00
  • 6fd3018a8c vaultwarden: retry #4 -- re-trigger after fixing --no-interpolate flag position and dotfolder false-match bugs admin 2026-07-27 11:03:58 -07:00
  • c511b2b607 deploy.yml: fix two bugs surfaced now that CI_PIPELINE_FILES parsing actually works: (1) --no-interpolate was placed before the config subcommand instead of after, causing 'unknown flag' on any real folder-stack validate; (2) folder-detection regex matched dotfolders like .woodpecker as bogus stack names, causing SSH/SCP attempts with empty SWARM_MANAGER_IP. Also added explicit empty-var guards for SWARM_MANAGER_IP in provision-secrets/deploy/verify so future secret misconfig fails fast with a clear message instead of a cryptic ssh error. admin 2026-07-27 11:03:35 -07:00
  • a9297397c7 vaultwarden: retry #3 -- re-trigger secret provisioning now that CI_PIPELINE_FILES parsing is fixed admin 2026-07-27 10:52:01 -07:00
  • 206f6ff103 deploy.yml: fix root cause - CI_COMMIT_CHANGED_FILES does not exist in Woodpecker 3.16; the correct variable is CI_PIPELINE_FILES (JSON array format, e.g. [\"a/b.yaml\",\"c.yaml\"]). Updated all 5 usages (validate, provision-secrets x2, deploy, verify, notify-success) to read CI_PIPELINE_FILES and strip [ ] \" before splitting on comma. Removes temporary debug-env step. admin 2026-07-27 10:51:37 -07:00
  • 2b6286a1c9 deploy.yml: add temporary debug-env step to diagnose CI_COMMIT_CHANGED_FILES not populating despite Woodpecker UI showing correct changed files. No logic changes to existing steps -- remove once root cause is found. admin 2026-07-27 10:31:10 -07:00
  • 9447b277a1 vaultwarden: remap DATABASE_URL secret to versioned name (vaultwarden_database_url_v2), same in-container target path. Fixes rotation being silently blocked by Swarm (cannot rm a secret referenced by a running service). admin 2026-07-27 08:50:43 -07:00
  • 6ff6260b2f deploy.yml: fix vaultwarden secret provisioning (was bypassing shared helper, silently failing on rm-while-in-use). Provision under versioned name vaultwarden_database_url_v2; compose-side remap happens in a follow-up commit. admin 2026-07-27 08:50:16 -07:00
  • 71cb6a7e81 vaultwarden: retry secret re-provision trigger (previous run had empty changed-files) admin 2026-07-26 22:27:58 -07:00
  • 4a3eb44a62 vaultwarden: trigger secret re-provision (db -> postgresql alias) admin 2026-07-26 22:10:46 -07:00
  • 61b1a645bb uptime-kuma: set restart_policy.delay to 30s admin 2026-07-26 17:34:35 -07:00
  • 2b0ef411d1 chore(ai): sync ai.yaml with host (manual litellm v1.93.0 upgrade comment) admin 2026-07-25 22:20:28 -07:00
  • cc9880e09c chore(traefik): remove flat traefik.env, superseded by traefik/traefik.env admin 2026-07-25 22:20:27 -07:00
  • 1494224194 chore(traefik): remove flat traefik.yaml, superseded by traefik/traefik.yaml admin 2026-07-25 22:20:27 -07:00
  • d16203b873 chore(auth): remove flat auth.yaml, superseded by auth/auth.yaml admin 2026-07-25 22:20:26 -07:00
  • c2069e3e0d feat(traefik): migrate to folder-based stack layout admin 2026-07-25 22:19:26 -07:00
  • 6caa7f0a33 feat(traefik): migrate to folder-based stack layout admin 2026-07-25 22:19:25 -07:00
  • 7ccff906fd feat(auth): migrate to folder-based stack layout admin 2026-07-25 22:19:24 -07:00
  • 68f89ef139 chore(ci): remove root .woodpecker.yml, superseded by .woodpecker/deploy.yml admin 2026-07-25 22:00:57 -07:00
  • 270489b207 fix(ci): move .woodpecker.yml -> .woodpecker/deploy.yml admin 2026-07-25 22:00:49 -07:00
  • cc5adc3312 feat(mcpo): sync config.json to Gitea as source of truth admin 2026-07-25 15:10:07 -07:00
  • 963a52d665 litellm: upgrade v1.92.1 -> v1.93.0 to fix Bedrock parallel tool call truncation bug admin 2026-07-24 22:16:39 -07:00
  • 2a1feee03e feat(mcpo): sync config.json from host (real PA_MCP_CLIENT_ID + TENANT_ID) admin 2026-07-24 22:06:24 -07:00
  • 8fde5266ea chore(ai): remove flat ai.yaml, superseded by ai/ai.yaml admin 2026-07-24 22:02:22 -07:00
  • 92abfe295f feat(ai): migrate to folder-based stack layout admin 2026-07-24 22:01:45 -07:00
  • 8ddc35aef4 Update ai.yaml AVB 2026-07-23 17:18:08 -07:00
  • 29fb096ce8 Update ai.yaml AVB 2026-07-23 17:02:42 -07:00