-
v1.20.0
StableAll checks were successfulCI / Rust clippy (push) Successful in 3m28sCI / Rust fmt (push) Successful in 1m6sCI / Rust test (push) Successful in 5m9sCI / UI (SvelteKit) (push) Successful in 1m2sCI / Security Audit (push) Successful in 1m18sdocs / build (push) Successful in 28sRelease / Docker Multi-Arch (push) Successful in 19m46sRelease / Binary aarch64-unknown-linux-gnu (push) Successful in 10m52sRelease / Binary x86_64-unknown-linux-gnu (push) Successful in 9m44sRelease / Linux .deb + .rpm (amd64) (push) Successful in 10m42sRelease / Linux .deb + .rpm (arm64) (push) Successful in 11m33sRelease / Linux AppImage (aarch64) (push) Successful in 10m27sRelease / Linux AppImage (x86_64) (push) Successful in 9m39sRelease / Cosign sign artifacts (push) Successful in 17sRelease / Forgejo Release (push) Successful in 26sreleased this
2026-07-16 15:02:37 +00:00 | 60 commits to main since this releaseRecovery codes for two-factor auth, plus fixes surfaced by the first public
mainnet run.Added
- 2FA recovery codes. Enabling two-factor auth now issues 10 one-time
recovery codes (shown once) so a lost authenticator no longer locks you out
of the admin area. Enter a code in place of the TOTP at login; each works
once. The admin 2FA page shows how many remain, warns when few are left, and
can regenerate a fresh set (requires the current app code). Only Argon2
hashes are stored — the plaintext is shown once and never persisted, and the
codes are excluded from backups. Login accepts a recovery code only after the
correct password, so it adds no brute-force surface.
Fixed
- Address ownership verification could get stuck. A failed signature check
(wrong wallet or a malformed paste) used to consume the challenge, so every
retry against the message still shown in the UI failed forever. A failed
attempt now keeps the challenge; only a successful verify (or expiry)
consumes it, and the one-shot guarantee holds under concurrency. - Admin visibility toggle mislabelled. The switch labelled "Miners tab"
actually controls the Devices tab (the/minersroute is the Devices
nav entry); the label and its hint now match the navigation. - Owner area up front names the wallets that can sign a proof-of-ownership
message (Electrum/Sparrow, incl. hardware wallets via those), so operators
pick a working wallet before trying.
Security
- Recovery codes are drawn with rejection sampling (no modulo bias) and each
login attempt that reaches the recovery path consumes at most one code
atomically. 2FA enable is rejected on an already-active account so codes are
never rotated silently — rotation goes through the confirmed regenerate flow.
dvb-WarpPool v1.20.0 — Downloads
Docker
git.warppool.org/dvb-projekt/dvb-warppool:v1.20.0(multi-arch amd64+arm64, ohne v-Präfix)Native packages
- Linux .deb: amd64 + arm64 →
apt install ./dvb-warppool_*.deb - Linux .rpm: amd64 + arm64 →
dnf install ./dvb-warppool-*.rpm - Linux AppImage: x86_64 + aarch64 portable
- Linux tarballs: x86_64 + aarch64 for manual installs
- macOS .dmg: added shortly after publish (built separately) — or build from source
- Windows .msi: paused since the forge migration (no Windows runner yet)
Signatures
SHA256SUMS+ cosign bundle (SHA256SUMS.bundle, project key)- SBOM (SPDX) for all dependencies
Verify (project public key
cosign.pubin the repo root):cosign verify-blob \ --key cosign.pub \ --bundle SHA256SUMS.bundle \ SHA256SUMS sha256sum --check SHA256SUMSFirst-time setup: run
dvb-warppool-setupfor the first-run wizard.Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- 2FA recovery codes. Enabling two-factor auth now issues 10 one-time