- Add workflow contract that rejects removed Docker Hub login route, repository-description payload, or description step if they return to the security-critical release path
- Ground-up desktop rebuild with Electron 43, React 19, and TypeScript 7, including customizable Dashboard, dark mode, cross-platform application menu, and clearer task-inspector feedback
- Host-neutral download core for desktop app and Node/Web Server with SQLite session recovery, tracker management, UPnP/NAT-PMP, and HTTP, FTP, BitTorrent, and magnet support
- MDXP-based integration for official CLI and browser handoff including local discovery and device-code pairing for remote Server instances
- QuickJS plugin sandbox with capability consent, bundled builtin plugins, and in-app plugin marketplace
- Persistent multi-platform Server containers for NAS and home-server deployments published after complete native architecture set and every public verification gate
- Make anonymous signature verification the final step of the container finalize job
- Build linux/amd64 on ubuntu-22.04 and linux/arm64 on ubuntu-22.04-arm with native architecture verification before Buildx starts
- Push each successful platform only by its untagged, content-addressed OCI digest to Docker Hub and GHCR
- Anonymously pull the exact staged digest from both registries and run complete Server runtime smoke on native runner
- Bind each platform record to exact version, source commit, workflow run and attempt, native runner identity, raw OCI index hash, image manifest, attestation manifest, max-level provenance, and non-empty SPDX SBOM
- Allow finalize job to proceed only after complete amd64/arm64 set succeeds with comprehensive validation
- Recheck both immutable version tags immediately before finalization to resume identical results or repair missing registry
- Require Docker Hub and GHCR to expose the same final index digest, platform manifests, attestation manifests, provenance, and SBOM set before signing
- Run complete final public Server runtime smoke on native amd64 and arm64 runners against exact signed digest in both registries
- Advance stable floating aliases only in the last recovery-safe job after every build, index, signature, provenance, SBOM, anonymous pull, and runtime gate passes
- Fix non-artifact failure after beta.16 publication by removing Docker Hub repository-description mutation from the release workflow
Motrix 2.0.0-beta.17
English | 简体中文
Motrix 2.0.0-beta.17 is the next Motrix Turbo beta intended for public
distribution only after every protected release gate passes. It fixes the
non-artifact failure observed after beta.16 had already published and signed
its two-registry container index, without moving or reusing the immutable
v2.0.0-beta.16 tag.
The beta.16 historical record documents the successful desktop, GitHub prerelease, R2, native platform, cross-registry index, provenance, SBOM, and signature stages, followed by the HTTP 403 that prevented the final public runtime matrix from starting.
Release-gate recovery
- Removes Docker Hub repository-description mutation from the release workflow. Repository description and overview are publisher metadata, not versioned OCI artifacts, and their administrative access boundary is separate from image publication.
- Makes anonymous signature verification the final step of the single container finalize job. A successful finalize result and its verified digest can therefore hand off directly to the native public runtime matrix.
- Adds a workflow contract that rejects the removed Docker Hub login route, repository-description payload, or description step if they return to the security-critical release path.
- Keeps failures visible and fail-closed. The change does not use
continue-on-error, does not weaken an artifact, signature, provenance, SBOM, platform, anonymous-pull, or runtime check, and does not broaden release access.
Native container publication
- Builds
linux/amd64onubuntu-22.04andlinux/arm64onubuntu-22.04-arm. Each job proves its GitHub-hosted Linux runner and native architecture before Buildx starts. The container release path does not install or invoke QEMU. - Pushes each successful platform only by its untagged, content-addressed OCI digest to Docker Hub and GHCR. A single architecture never receives the public version tag and cannot become the official release by itself.
- Anonymously pulls the exact staged digest from both registries and runs the complete Server runtime smoke on its native runner. Platform metadata is emitted only after both registry smokes succeed.
- Binds each platform record to the exact version, source commit, workflow run and attempt, native runner identity, raw OCI index hash, image manifest, attestation manifest, max-level provenance, and non-empty SPDX SBOM.
- Allows the single finalize job to proceed only after the complete amd64/arm64 set succeeds. Missing, duplicate, unexpected, cross-wired, shared, ambiguous, conflicting, or future-attempt data fails closed before either version tag can be created.
- Rechecks both immutable version tags immediately before finalization. A clean run creates both indexes; a rerun resumes an identical complete result or repairs one missing registry from the verified existing index. A conflicting immutable tag fails closed.
- Requires Docker Hub and GHCR to expose the same final index digest, platform manifests, attestation manifests, provenance, and SBOM set before signing. Both signatures are then verified anonymously.
- Runs the complete final public Server runtime smoke on native amd64 and arm64 runners against the exact signed digest in both registries.
- Advances stable floating aliases only in the last recovery-safe job after
every build, index, signature, provenance, SBOM, anonymous pull, and runtime
gate passes. Beta releases publish only their immutable version tag, so
beta.17 does not update
latest,stable, or another stable alias.
The GitHub prerelease, R2 update feed, container registries, and Snap Store remain independently gated publication channels. Their individual safety and recovery rules are strict, but this release does not claim cross-channel atomicity.
Snap beta policy
Snap is not part of the beta.17 distribution. Protected prerelease Snap runs
stop after source validation, so they do not build Snap artifacts, upload
Store revisions, or change latest/edge.
Highlights
- A ground-up desktop rebuild with Electron 43, React 19, and TypeScript 7, including a customizable Dashboard, dark mode, a cross-platform application menu, and clearer task-inspector feedback.
- One host-neutral download core for both the desktop app and the Node/Web Server, with SQLite session recovery, tracker management, UPnP/NAT-PMP, and HTTP, FTP, BitTorrent, and magnet support.
- MDXP-based integration for the official CLI and browser handoff, including local discovery and device-code pairing for remote Server instances.
- A QuickJS plugin sandbox with capability consent, bundled builtin plugins, and an in-app plugin marketplace.
- Persistent multi-platform Server containers for NAS and home-server deployments, published only after the complete native architecture set and every public verification gate pass.
Before testing
This is prerelease software. Back up existing Motrix application data and downloads before installing it. Migration from Motrix v1 data has not yet been validated, so do not use your only copy of v1 data with this beta.
When practical, test v2 in parallel using a separate OS account, machine, or Docker data directory. Do not rely on this beta for your only copy of important downloads.
Planned downloads after release gates pass
| Distribution | Architectures | Planned output |
|---|---|---|
| macOS 12 or later | arm64 (Apple Silicon), x64 (Intel) | DMG and ZIP |
| Windows | x64 | Unsigned NSIS installer (.exe) and ZIP |
| Linux | x64, arm64 | DEB and RPM |
| Flatpak Native Host companion | linux/x64, linux/arm64 | Motrix-Native-Host-2.0.0-beta.17-linux-<arch>.tar.gz |
| Docker Hub / GHCR | linux/amd64, linux/arm64 | Immutable 2.0.0-beta.17 tag in both registries |
| Snap Store | — | Not published for this beta |
After every container gate passes, the versioned image references will be
docker.io/motrixapp/motrix-server:2.0.0-beta.17 and
ghcr.io/agalwood/motrix-server:2.0.0-beta.17. See the
Docker Server deployment guide
for storage, networking, and upgrade guidance.
Known distribution limits
- AppImage is not published for this beta.
- Flatpak is validated separately and is not published by the release tag; the GitHub prerelease includes its Native Host companion archives.
- Windows
arm64and all 32-bit packages are not available. - Windows packages are unsigned and may trigger a Windows SmartScreen warning. Download them only from the official GitHub prerelease after it is published.
- Beta container tags are immutable and do not update
latest,stable, or other stable floating tags. - Snap is not published for this beta. Prerelease Snap runs stop after source validation without building or publishing Snap artifacts.
Feedback
Please report reproducible problems through GitHub Issues. Include your operating system, architecture, package type, and the steps needed to reproduce the issue.
What's Changed
- fix(release): unblock container runtime verification by @agalwood in https://github.com/agalwood/Motrix/pull/1868
Full Changelog: https://github.com/agalwood/Motrix/compare/v2.0.0-beta.16...v2.0.0-beta.17