The Docker deployment uses two mounted directories:
volumes:
- ./config:/app/config
- ./runtime:/app/runtime/app/config stores user configuration and keys.
/app/runtime stores the binary installed by the in-app updater. This keeps update artifacts out of the config directory.
Container startup order:
- If
/app/runtime/cloud-vm-managerexists and is executable, run it. - Otherwise run the image bundled
/app/cloud-vm-manager.
When the web UI applies an update, the server downloads the matching GitHub Release archive, verifies checksums.txt, extracts the binary to /app/runtime/cloud-vm-manager, and exits. Docker restarts the container because restart: unless-stopped is set.
The release workflow creates these archives:
cloud-vm-manager_windows_amd64.zip
cloud-vm-manager_linux_amd64.tar.gz
cloud-vm-manager_linux_arm64.tar.gz
cloud-vm-manager_linux_armv7.tar.gz
checksums.txt
Each archive contains:
cloud-vm-manager / cloud-vm-manager.exe
README-update.txt
GitHub also provides source code archives automatically on every Release.
Push a tag:
git tag v1.2.3
git push origin v1.2.3Or run the Release workflow manually and provide a version such as v1.2.3.
The workflow also pushes Docker images:
ghcr.io/<owner>/cloud-vm-manager:latest
ghcr.io/<owner>/cloud-vm-manager:v1.2.3
By default, the updater checks:
crossgg/cloud-vm-manager
Override this with:
UPDATE_GITHUB_REPO=owner/repo
For private repositories, use a public Release download path or extend the updater with a GitHub token.
The update page supports a download proxy for GitHub Release assets.
Built-in options:
Direct GitHub
https://gh-proxy.com/
Custom
Release API requests, Release asset downloads, and checksums.txt downloads are proxied when a proxy is selected.
Set a default proxy with:
UPDATE_DOWNLOAD_PROXY=https://gh-proxy.com/
The web UI can override the default for a single update operation.