feat: add host-side auto-updater for zero-touch API container rebuilds

When the in-container self-updater downloads a new version, it writes
trigger.json. The new systemd path unit watches for this file and runs
dashcaddy-update.sh, which backs up current API files, copies the new
ones, rebuilds the container, verifies health, and writes result.json.
Automatic rollback on build or health check failure.

Also fixes undefined `isWindows` variable in self-updater.js and adds
DASHCADDY_HOST_UPDATES_DIR env var to the installer's docker-compose
template for correct container-to-host path translation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-23 14:25:22 -07:00
parent abd54d4b99
commit d332084206
5 changed files with 231 additions and 0 deletions

View File

@@ -17,6 +17,7 @@ const crypto = require('crypto');
const { execSync } = require('child_process');
const zlib = require('zlib');
const platformPaths = require('./platform-paths');
const isWindows = platformPaths.isWindows;
const DEFAULTS = {
CHECK_INTERVAL: 30 * 60 * 1000, // 30 minutes