Skip to content

Maciejonos/qbitwebui

Repository files navigation

logo

A modern web interface for managing multiple qBittorrent instances

Built with React, Hono, and Bun

GitHub stars GitHub License GitHub release Docker Build

main torrents-view

Themes

theme-catppuccin theme-gruvbox theme-dracula theme-nord

Mobile UI (PWA)

mobile mobile-detailed

Features

  • Multi-instance - Manage multiple qBittorrent instances from one dashboard
  • Instance speed management - Easily control global/alternative speed limits per instance
  • Instance statistics - Overview of all instances with status, speeds, torrent counts
  • User accounts - Register/login with secure session management
  • Prowlarr integration - Search indexers and send torrents directly to qBittorrent
  • Real-time monitoring - Auto-refresh torrent status, speeds, progress
  • Customizable columns - Show/hide columns, drag and drop reorder
  • Torrent management - Add via magnet/file, set priorities, manage trackers/peers
  • Organization - Filter by status, category, tag, or tracker
  • Bulk actions - Multi-select with context menu, keyboard navigation
  • Themes - Multiple color themes included
  • Encrypted storage - qBittorrent credentials stored with AES-256-GCM
  • File browser - Browse and download files from your downloads directory
  • RSS management - Define rules, add RSS feeds, manage folders

Docker

services:
  qbitwebui:
    image: ghcr.io/maciejonos/qbitwebui:latest
    ports:
      - "3000:3000"
    environment:
      # Generate your own: openssl rand -hex 32
      - ENCRYPTION_KEY=your-secret-key-here
      # Uncomment to disable login (single-user mode)
      # - DISABLE_AUTH=true
      # Uncomment to allow HTTPS with self-signed certificates
      # - ALLOW_SELF_SIGNED_CERTS=true
      # Uncomment to enable file browser
      # - DOWNLOADS_PATH=/downloads
    volumes:
      - ./data:/data
      # Uncomment to enable file browser (read-only: browse & download only)
      # - /path/to/your/downloads:/downloads:ro
      # Or mount read-write to enable delete/move/copy/rename
      # - /path/to/your/downloads:/downloads
    restart: unless-stopped

Or build locally:

docker compose up -d

Development

export ENCRYPTION_KEY=$(openssl rand -hex 32)

bun install
bun run dev

Environment Variables

Variable Required Default Description
ENCRYPTION_KEY Yes - Min 32 chars, used to encrypt stored credentials
PORT No 3000 Server port
DATABASE_PATH No ./data/qbitwebui.db SQLite database location
SALT_PATH No ./data/.salt Encryption salt file location
ALLOW_SELF_SIGNED_CERTS No false Set to true to allow HTTPS connections to qBittorrent instances with self-signed certificates
DISABLE_AUTH No false Set to true to disable login/registration
DOWNLOADS_PATH No - Path to downloads directory to enable file browser

Tech Stack

React 19, TypeScript, Tailwind CSS v4, Vite, TanStack Query, Hono, SQLite, Bun

Star History

Star History Chart

License

MIT

About

A modern web interface for managing qBittorrent instances. Supports native mobile view and PWA.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •  

Languages