qBittorrent Configuration¶
qBitrr connects to qBittorrent's Web UI to monitor and manage torrents. This page covers all qBittorrent-related settings and how to configure the connection.
Basic Connection Settings¶
All qBittorrent settings are configured in the [qBit] section of your config.toml file.
Required Settings¶
[qBit]
# qBittorrent WebUI URL/IP - Can be found in Options > Web UI > "IP Address"
Host = "192.168.1.100"
# qBittorrent WebUI Port - Can be found in Options > Web UI > "Port"
Port = 8080
# qBittorrent WebUI Authentication
UserName = "admin"
Password = "your-password"
Finding qBittorrent Settings
Open qBittorrent → Tools → Options → Web UI tab to find your connection details.
Web UI Location¶
Finding Your qBittorrent Web UI Settings¶
- Open qBittorrent
- Go to Tools → Options (or press
Alt+O) - Navigate to the Web UI tab
- Check the following:
- IP Address – Use this for
Host(uselocalhostor127.0.0.1if qBitrr is on the same machine) - Port – Use this for
Port(default: 8080) - Authentication section – Use these credentials for
UserNameandPassword
Example Values¶
| Setting | Example | Notes |
|---|---|---|
Host | localhost | Same machine as qBitrr |
Host | 192.168.1.100 | Different machine on local network |
Host | qbittorrent | Docker container name in same network |
Port | 8080 | Default qBittorrent WebUI port |
UserName | admin | Default username |
Password | adminadmin | Default password (change this!) |
Authentication¶
Standard Authentication¶
qBittorrent's Web UI requires username/password authentication by default:
Security Best Practice
Never use the default password in production! Change it in qBittorrent's Web UI settings.
Bypassed Authentication¶
If you've enabled "Bypass authentication for clients on localhost" in qBittorrent's Web UI settings:
Security Warning
Bypassing authentication is only safe if qBittorrent's Web UI is not exposed to the internet or your local network. Only use this for single-machine setups.
Headless Mode¶
qBitrr can run in "headless mode" where it only processes searches without managing qBittorrent torrents. This is useful if you use a different download client (like Sabnzbd/NZBGet) but still want qBitrr's automated search features.
Enabling Headless Mode¶
When Disabled = true:
- ✅ Enabled: Automated searches for missing media
- ✅ Enabled: Overseerr/Ombi request processing
- ✅ Enabled: Quality upgrade searches
- ❌ Disabled: Torrent health monitoring
- ❌ Disabled: Instant imports
- ❌ Disabled: Stalled torrent detection
- ❌ Disabled: Seeding management
- ❌ Disabled: Disk space monitoring
When to Use Headless Mode
- You use Usenet (Sabnzbd/NZBGet) for downloads
- You still want qBitrr's faster automated search features
- You have a separate qBittorrent setup you don't want qBitrr to touch
Docker Configuration¶
Same Docker Network¶
If qBittorrent and qBitrr are in the same Docker network, use the container name as the host:
[qBit]
Host = "qbittorrent" # Docker container name
Port = 8080
UserName = "admin"
Password = "password"
Docker Compose example:
services:
qbittorrent:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent
ports:
- "8080:8080"
networks:
- media
qbitrr:
image: feramance/qbitrr:latest
container_name: qbitrr
networks:
- media
volumes:
- /path/to/config:/config
networks:
media:
Different Networks or Host Network¶
If qBittorrent is on the host network or a different Docker network, use the host IP or domain name:
[qBit]
Host = "192.168.1.100" # Host machine IP
Port = 8080
UserName = "admin"
Password = "password"
Troubleshooting Connection Issues¶
Test Connection Manually¶
You can test if qBitrr can reach qBittorrent's API:
# Replace with your actual values
HOST="localhost"
PORT="8080"
USER="admin"
PASS="password"
# Test login (should return "Ok.")
curl -i --header "Referer: http://$HOST:$PORT" \
--data "username=$USER&password=$PASS" \
http://$HOST:$PORT/api/v2/auth/login
Expected response:
Common Issues¶
"Connection refused" or "Connection timeout"¶
Causes:
- qBittorrent is not running
- Wrong
HostorPortin config - Firewall blocking connection
- qBittorrent Web UI is disabled
Solutions:
- ✅ Verify qBittorrent is running
- ✅ Check Tools → Options → Web UI is enabled
- ✅ Verify
HostandPortmatch qBittorrent's settings - ✅ Check firewall rules allow connections to port 8080
- ✅ Try
Host = "localhost"if on the same machine
"Invalid username or password"¶
Causes:
- Wrong
UserNameorPassword - Authentication bypass is enabled but credentials still provided
Solutions:
- ✅ Check credentials in qBittorrent Web UI settings
- ✅ If using authentication bypass, set
UserName = ""andPassword = "" - ✅ Try logging into qBittorrent's Web UI manually with the same credentials
Docker: "Name or service not known"¶
Causes:
- Containers are not in the same Docker network
- Wrong container name used
Solutions:
- ✅ Verify both containers are in the same network:
- ✅ Use the exact container name (check
docker ps) - ✅ Try using host IP instead of container name
- ✅ Ensure qBittorrent's port is exposed if accessing from different networks
"Unauthorized" errors¶
Causes:
- Session cookie expired
- qBittorrent restarted
- Ban due to too many failed login attempts
Solutions:
- ✅ Restart qBitrr to establish a new session
- ✅ Check qBittorrent logs for ban messages
- ✅ Wait 30 minutes if IP is temporarily banned
- ✅ Verify credentials are correct
Multi-qBittorrent Support (v3.0+)¶
New in v3.0
qBitrr now supports managing torrents across multiple qBittorrent instances simultaneously! This enables load balancing, redundancy, VPN isolation, and more.
Overview¶
With multi-instance support, you can configure multiple qBittorrent instances and qBitrr will:
- ✅ Monitor torrents across all instances for each Arr category
- ✅ Track instance health and automatically skip offline instances
- ✅ Allow torrents to be managed regardless of which instance they're on
- ✅ Maintain 100% backward compatibility with single-instance setups
How It Works¶
Key Concept: Each Arr instance (Radarr/Sonarr/Lidarr) monitors ALL qBittorrent instances. Torrents are identified by category, not by which instance they're on.
Example: - Radarr can send downloads to ANY available qBit instance - qBitrr monitors ALL instances for torrents in the radarr-movies category - If a Radarr torrent appears on default or seedbox, qBitrr manages it the same way
Configuration Syntax¶
The default instance is always [qBit] (required). Additional instances use the [qBit-NAME] syntax where NAME is your custom identifier:
[qBit] # Default instance (REQUIRED)
Host = "localhost"
Port = 8080
UserName = "admin"
Password = "adminpass"
[qBit-seedbox] # Additional instance (OPTIONAL)
Host = "192.168.1.100"
Port = 8080
UserName = "admin"
Password = "seedboxpass"
[qBit-vpn] # Another instance (OPTIONAL)
Host = "10.8.0.2"
Port = 8080
UserName = "admin"
Password = "vpnpass"
Important: Use Dash Notation
Additional instances MUST use dash (-) notation, NOT dot (.) notation:
- ✅ Correct:
[qBit-seedbox],[qBit-vpn],[qBit-remote] - ❌ Wrong:
[qBit.seedbox],[Seedbox],[qbit-seedbox](case-sensitive!)
WebUI Configuration Management¶
Easy Instance Management
You can manage qBittorrent instances directly from the WebUI without manually editing the config file!
qBitrr's WebUI provides a graphical interface for managing multiple qBittorrent instances:
Features: - ✅ View all configured instances with status indicators - ✅ Add new instances with form validation - ✅ Edit existing instance settings (host, port, credentials) - ✅ Delete secondary instances (default instance cannot be deleted) - ✅ Rename instances while preserving configuration - ✅ Enable/disable instances without removing them
Accessing the Config Editor: 1. Navigate to http://your-qbitrr-host:6969/ui 2. Click "Config" in the navigation menu 3. Scroll to "qBittorrent Instances" section 4. Use "Add Instance", "Configure", or "Delete" buttons
Adding a New Instance: 1. Click "Add Instance" button 2. Fill in the form: - Display Name: Custom identifier (e.g., "qBit-seedbox") - Host: qBittorrent WebUI hostname or IP address - Port: qBittorrent WebUI port (usually 8080) - Username: qBittorrent authentication username (optional) - Password: qBittorrent authentication password (optional) - Disabled: Toggle to temporarily disable instance 3. Click "Save" to apply changes 4. Restart qBitrr to activate the new instance
For more details, see the WebUI Configuration Editor documentation.
Use Cases¶
1. Home + Seedbox Setup¶
Combine local qBittorrent for fast downloads with remote seedbox for long-term seeding:
[qBit]
Host = "localhost"
Port = 8080
UserName = "admin"
Password = "localpass"
[qBit-seedbox]
Host = "seedbox.example.com"
Port = 8080
UserName = "admin"
Password = "seedboxpass"
2. Multiple VPN Endpoints¶
Run different qBittorrent instances behind different VPN connections:
[qBit]
Host = "10.8.0.2" # US VPN
Port = 8080
UserName = "admin"
Password = "password"
[qBit-eu]
Host = "10.8.0.3" # EU VPN
Port = 8080
UserName = "admin"
Password = "password"
[qBit-asia]
Host = "10.8.0.4" # Asia VPN
Port = 8080
UserName = "admin"
Password = "password"
3. Docker Multi-Container¶
Isolate different trackers or content types in separate containers:
[qBit]
Host = "qbittorrent-public" # Docker container for public torrents
Port = 8080
UserName = "admin"
Password = "password"
[qBit-private]
Host = "qbittorrent-private" # Docker container for private trackers
Port = 8080
UserName = "admin"
Password = "password"
Docker Compose:
services:
qbittorrent-public:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent-public
ports:
- "8080:8080"
networks:
- media
qbittorrent-private:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent-private
ports:
- "8081:8080"
networks:
- media
qbitrr:
image: feramance/qbitrr:latest
networks:
- media
volumes:
- ./config:/config
Instance Health Monitoring¶
qBitrr automatically monitors the health of each instance and handles failures gracefully:
- Healthy instances: Torrents are processed normally
- Offline instances: Skipped during each scan loop
- Failed instances: Logged but don't block processing of other instances
Check instance health via the WebUI or API:
Response:
{
"default": {
"alive": true,
"host": "localhost",
"port": 8080,
"version": "4.6.0"
},
"seedbox": {
"alive": true,
"host": "192.168.1.100",
"port": 8080,
"version": "4.5.5"
},
"vpn": {
"alive": false,
"host": "10.8.0.2",
"port": 8080,
"version": null,
"error": "Connection timeout"
}
}
Performance Considerations¶
Each instance adds ~50-200ms overhead per scan loop. Recommended settings:
| Instances | Recommended LoopSleepTimer |
|---|---|
| 1-3 | 5 (default) |
| 4-5 | 10 |
| 6+ | 15 |
Update in [Settings]:
Troubleshooting Multi-Instance¶
Instance Not Detected¶
Symptoms: Only default instance appears in /api/status
Solutions:
- ✅ Check section name uses dash:
[qBit-NAME]not[qBit.NAME] - ✅ Verify connectivity:
curl http://HOST:PORT/api/v2/app/version - ✅ Check credentials match qBittorrent settings
- ✅ Review logs for "Failed to initialize instance" messages
Torrents Not Processing on Secondary Instance¶
Symptoms: Torrents on seedbox ignored, only default processed
Solutions:
- ✅ Verify category exists on all instances (qBitrr creates them automatically)
- ✅ Check category spelling is exact (case-sensitive)
- ✅ Confirm torrents have correct Arr tags
- ✅ Check instance is healthy in
/api/status
Category Creation Fails¶
Symptoms: "Failed to create category on instance X" in logs
Solutions:
- ✅ Verify qBittorrent user has category creation permissions
- ✅ Check qBittorrent version compatibility
- ✅ Create category manually in qBittorrent Web UI as workaround
- ✅ Verify qBittorrent has write access to category save paths
Migration from Single to Multi-Instance¶
Migrating from a single qBittorrent instance to multiple is seamless:
Step 1: Backup config
Step 2: Add new instance sections to config.toml
Step 3: Restart qBitrr
Step 4: Verify detection
No Database Migration Required
The database automatically recreates on restart with the new schema. All torrents will be re-scanned and tracked across all instances.
Additional Resources¶
For complete documentation on multi-instance support, see:
Advanced Configuration¶
Custom TLS/SSL¶
If qBittorrent's Web UI uses HTTPS:
[qBit]
Host = "https://qbittorrent.example.com" # Include https://
Port = 443
UserName = "admin"
Password = "password"
Certificate Validation
qBitrr validates SSL certificates by default. Self-signed certificates may cause connection errors. Consider using a proper certificate or a reverse proxy with valid TLS.
Reverse Proxy¶
If qBittorrent is behind a reverse proxy (like Nginx or Traefik):
[qBit]
Host = "qbit.mydomain.com" # Full domain
Port = 443 # Reverse proxy port
UserName = "admin"
Password = "password"
Nginx example:
location /qbittorrent/ {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Referer "";
}
Then configure qBitrr:
Complete Example¶
Minimal Local Setup¶
Docker Setup (Same Network)¶
Headless Mode (Search Only)¶
Next Steps¶
Now that qBittorrent is configured, set up your Arr instances:
Or explore other settings: