Fix Admin Console installations failing to mount /workspace/deploy/Caddyfile.
Fixes
- Stop replacing the Docker host checkout path with the updater's container path.
- Explicitly export the production host path before Compose interpolation, including when an older running updater injects
/workspace. - Recover missing or invalid host paths from the updater bind mount when possible, with an actionable failure otherwise.
- Prevent a missing Caddy configuration file from being auto-created as a directory.
- Retry deployment when Git HEAD already equals origin/main instead of reporting a false successful installation after a failed build.
- Preserve existing database and certificate volume names.
Recovery
Run once in the VPS provider's web terminal from the existing checkout:
cd /opt/openbcon
cp -p deploy/.env.production "deploy/.env.production.backup-$(date +%Y%m%d-%H%M%S)"
git fetch origin --tags
git switch main
git pull --ff-only origin main
env -u OPENBCON_ROOT -u OPENBCON_SKIP_UPDATE_AGENT bash ./deploy/deploy.shThis also recreates the updater. Keep the existing environment file and database volumes. Substitute the actual checkout directory if different; resolve local Git conflicts before deploying.
Validation
98 tests in 17 files passed, including six regression tests for host path resolution, legacy environment overrides, rendered Compose mounts, volume preservation, and same-commit retries. Production build and TypeScript/shell/Node checks passed. The local Docker daemon was unavailable, so a full container deployment was not performed. Existing React lint and bundle-size warnings remain.