Skip to content

qBit Mobile v1.5.0

Choose a tag to compare

@roethlar roethlar released this 15 Jun 17:48
· 101 commits to main since this release

qBit Mobile is a mobile-first web UI for qBittorrent — an installable PWA backed by a hardened Express proxy you self-host alongside qBittorrent.

This is the first tagged GitHub release.

Highlights

  • Mobile-first UI — responsive design with dark mode, swipe actions, and inline row expansion.
  • Virtualized torrent list — stays smooth with thousands of torrents.
  • Per-torrent detail — files, trackers, transfer stats, recheck and reannounce.
  • Batch operations — multi-select pause / resume / delete, plus bulk move-to-location.
  • Move-to presets — operator-defined save-path presets, editable from Settings and seedable via DOWNLOAD_LOCATIONS.
  • Search, sort, tag filtering, and live global stats.
  • Installable PWA with an offline shell (UI loads from cache; live data needs a connection).

Security

  • App auth is on by default (AUTH_MODE=basic); the server refuses to boot without credentials.
  • The proxy forwards only a curated allowlist of qBittorrent endpoints, with field allowlists on set-preferences and add-torrent. Dangerous endpoints (e.g. /app/shutdown) and RCE-enabling preference keys (e.g. autorun_program) are unreachable even when authenticated.
  • Optional TRUST_PROXY and ALLOWED_ORIGIN for reverse-proxy / CORS deployments.

Install

One-command deploy scripts auto-build the frontend, prompt for config, and register an auto-starting service:

  • Linux (systemd): sudo ./deploy.sh
  • macOS (launchd): ./deploy-macos.sh
  • Windows (Scheduled Task, PowerShell 7+): pwsh .\deploy.ps1

Requires Node.js 22.12+ and qBittorrent with the Web UI enabled. See the README for manual setup and configuration.

Tech

React 19 + TypeScript + Vite 8 + Tailwind on the frontend; Express proxy on the backend. CI runs lint, typecheck, tests (117 passing), and build.