Repository navigation
Releases: VectoDE/Self-Updater
Releases · VectoDE/Self-Updater
Release list
v4.2.1
Repository maintenance only; the package code is unchanged.
Changed
- Dependabot no longer proposes Node.js majors for the container image; it moves to a new Node.js line on purpose,
together with the CI matrix, once that line is LTS.
Fixed
- CI:
reuse lintpasses on.bestpractices.json, and the webhook test for oversized bodies no longer fails with an
unhandledEPIPEon macOS.
v4.2.0
Added
- Several workspaces in one configuration file: a
workspaceslist with shareddefaults, one webhook receiver for
all of them that routes each delivery by repository and ref, a state file per workspace and--workspace(-w)
forupdate,status,rollbackandstart. - Blue-green deployments (
workspace.strategy: "blue-green"): the next version is prepared in a second checkout
while the old one runs, a symlink (a junction on Windows) switches between them, and a rollback only moves the link
back. - Status endpoint next to the webhook receiver (
webhook.statusPath,webhook.statusToken) that reports what each
workspace runs, for monitoring systems. - The configuration builder offers the strategy and the status endpoint.
v4.1.2
Added
- Every source file carries an SPDX license and copyright header; the rest is covered by
REUSE.toml, and CI checks
REUSE compliance. - CI builds the npm package twice from separate clones and fails when the tarballs differ.
- Written code review standards in
CONTRIBUTING.md.
v4.1.1
Changed
- fix: keep "$${" in substituted environment values (#23)
v4.1.0
Changed
- The configuration builder moved to self-updater.pages.dev, which sends a strict
Content Security Policy, HSTS and the other security headers fromsite/_headers. The old GitHub Pages address
forwards there.
v4.0.1
Changed
- The container image builds Docker Compose with Go 1.27.2.
Fixed
- Configuration builder: status messages are
<output>elements, and the generated file wraps instead of scrolling,
so it is readable without a keyboard-focusable scroll area.
v4.0.0
The package is now @vectode/self-updater. It was rewritten in TypeScript and has no runtime dependencies. Run
self-updater migrate to convert an existing configuration; the README lists everything that changed.
Added
- Health check after the restart, by URL, by command or both, with retries.
- Automatic rollback to the previous commit when install, restart, health check or post-update hook fail. A failed
commit is skipped until a newer one arrives;update --forcedeploys it anyway. - Tag mode: deploy the newest SemVer tag matching a pattern, with or without prereleases.
- Signature check: deploy only commits or tags with a valid SSH or GPG signature (
track.requireSignature). - Webhook receiver for GitHub (HMAC-SHA256) and GitLab (secret token); deliveries during a running deployment lead to
one more cycle. - Notifications to Slack, Discord and generic JSON webhooks on success, failure and rollback.
- Service types
systemdandcompose(Docker Composeup --build), optionalsudo -nfor built-in restarts. - Commands
rollbackandmigrate;update --dry-run;--jsonoutput; exit code 3 after a rollback. - Lock file, so two updaters never deploy into the same workspace at once.
- JSON log format; secrets are hidden in every log line. Hooks, the install command and custom restarts appear in
logs and errors by their role only, because their text may contain credentials. @vectode/self-updater/config: the configuration format without Node.js APIs, used by the new
configuration builder.- Container image
ghcr.io/vectode/self-updaterfor amd64 and arm64, running as a non-root user. - Examples for PM2, Docker Compose and a systemd setup with signed tags.
Changed
- Configuration format version 3. Versions 1 and 2 still load and are converted by
self-updater migrate. - Requires Node.js 22 or newer.
- PM2 restarts use
pm2 reload --update-env. - The access token is sent as an HTTP header through the environment of each Git call instead of being written into
the remote URL. - Dependencies are installed only when a lockfile or
package.jsonchanged, by default withnpm ci.
Removed
- The runtime dependencies
axios,simple-git,commanderandpm2.
Security
- Git and built-in restarts run without a shell; branch, remote and service names are validated.
- Releases are built by GitHub Actions and published with signed provenance to npm, as a GitHub release with build
attestation and CycloneDX SBOM, to GitHub Packages and to the GitHub Container Registry. - Security policy, assurance case, OpenSSF Scorecard, CodeQL, dependency review, OSV-Scanner and secret scanning.
- The container image ships the Docker CLI from the official image and Docker Compose built from source with current
Go and dependency fixes. One finding without a fix, GO-2026-5932, does not apply; see the
OpenVEX statement. - Webhook secrets need at least 32 characters, and GitLab tokens are compared without revealing their length.
Self Updater v1.0.2
Self Updater v1.0.1
Full Changelog: v1.0.0...v1.0.1