This guide covers all configuration options for aMuTorrent.
- Setup Wizard
- Settings Page
- Configuration Precedence
- Environment Variables
- Docker Network Configuration
Download Clients: See aMule, eMuleBB, rTorrent, qBittorrent, Deluge, and Transmission for client-specific setup.
Prowlarr: Search torrents directly from the web UI. See Prowlarr Setup.
*arr Apps: Use aMuTorrent as a Torznab indexer and qBittorrent-compatible download client for Sonarr, Radarr, and other *arr applications. See *arr Integration.
Notifications: Get notified when downloads complete or other events occur. See Notifications.
Scripting: Run custom scripts on download events for advanced automation. See Scripting.
GeoIP: Display peer locations on a map. See GeoIP Setup.
User Management: Multi-user authentication, capabilities, and SSO. See User Management.
When you first access the web interface (or if no configuration exists), an interactive setup wizard guides you through the initial configuration:
- Welcome - Introduction to the setup process
- Security - Configure web interface authentication (password protection)
- Download Clients - Configure aMule, eMuleBB, rTorrent, qBittorrent, Deluge, and/or Transmission connections (with testing)
- Directories - Set data, logs, and GeoIP directories
- Integrations - Optionally enable Prowlarr, Sonarr, and Radarr
- Review & Save - Test all settings and save configuration
The wizard will:
- Auto-populate fields with environment variable values or sensible defaults
- Allow you to test each configuration section before proceeding
- Show Docker-specific warnings when running in a container
- Save configuration to
server/data/config.jsonfor persistence - Enable authentication by default (recommended for security)
Password Requirements: When authentication is enabled, the password must meet these requirements:
- At least 8 characters
- Contains at least one digit
- Contains at least one letter
- Contains at least one special character (any non-alphanumeric character)
Note: If you're running in Docker, the setup wizard will warn you that changing directory paths requires updating your
docker-compose.ymlvolume mounts.
After initial setup, access the Settings page anytime via the sidebar (desktop) or bottom navigation bar (mobile). The Settings page allows you to:
- View and edit all configuration options
- Test individual configuration sections (aMule, eMuleBB, rTorrent, qBittorrent, Deluge, Transmission, Directories, Prowlarr, Sonarr, Radarr)
- Test all configuration at once before saving
- Enable/disable integrations with toggle switches
Environment Variable Indicators:
- Non-sensitive fields (host, port, URLs): Show a "From Env" badge but remain editable. Your saved value will override the environment variable.
- Sensitive fields (passwords, API keys): When set via environment variable, the input field is hidden and replaced with a warning message. To change these values, update the environment variable and restart the server.
Important:
- Some changes (like PORT and BIND_ADDRESS) require a server restart to take effect
- Passwords are masked in the UI for security
- Changes take effect immediately after saving (except server port)
The application uses different precedence rules for sensitive and non-sensitive fields:
Precedence: Environment Variables > Config File > Defaults
Sensitive fields include:
WEB_AUTH_PASSWORD- Web UI authentication passwordAMULE_PASSWORD- aMule EC connection passwordEMULEBB_API_KEY- eMuleBB REST API keyRTORRENT_PASSWORD- rTorrent HTTP auth passwordQBITTORRENT_PASSWORD- qBittorrent WebUI passwordDELUGE_PASSWORD- Deluge WebUI passwordTRANSMISSION_PASSWORD- Transmission RPC passwordPROWLARR_API_KEY- Prowlarr API keySONARR_API_KEY- Sonarr API keyRADARR_API_KEY- Radarr API key
When these are set via environment variables:
- The environment variable always takes precedence
- The value is never saved to the config file
- The input field is hidden and replaced with a warning message
- Users cannot modify these values through the wizard or settings page
Precedence: Config File > Environment Variables > Defaults
For all other fields:
- User-saved configuration takes priority - When you save settings via the UI, they override environment variables
- Environment variables serve as initial defaults - When you first run the wizard, it pre-populates fields with env var values
- Easy configuration updates - Change settings through the UI without touching environment variables
Recommended: Use the Setup Wizard
- Start the container with minimal config (just PORT)
- Access the web interface
- Complete the interactive setup wizard
- All settings saved to
config.json
Alternative: Pre-populate with Environment Variables
- Add environment variables to your
docker-compose.yml - First run: Wizard auto-populates from these env vars
- Review and save in the wizard
- Later: Use Settings page to modify configuration
Advanced: Skip Wizard Entirely
- Set all required environment variables
- Set
SKIP_SETUP_WIZARD=true - Application uses env vars directly (no wizard shown)
Environment variables are completely optional. The setup wizard is the recommended configuration method.
Add these to your docker-compose.yml if needed:
services:
amutorrent:
environment:
# Server Configuration
- PORT=4000
- BIND_ADDRESS=0.0.0.0 # Network interface (0.0.0.0 = all, 127.0.0.1 = localhost)
# Web UI Authentication (optional)
- WEB_AUTH_ENABLED=true
- WEB_AUTH_PASSWORD=your_secure_password # Locks UI editing
# Trusted Proxy SSO (optional - requires WEB_AUTH_ENABLED=true)
- TRUSTED_PROXY_ENABLED=true
- TRUSTED_PROXY_USERNAME_HEADER=X-Remote-User
- TRUSTED_PROXY_AUTO_PROVISION=true
# aMule Connection (optional)
- AMULE_ENABLED=true
- AMULE_HOST=host.docker.internal
- AMULE_PORT=4712
- AMULE_PASSWORD=your_ec_password # Locks UI editing
# - AMULE_SHARED_DIR_DAT=/home/amule/.aMule/shareddir.dat # Optional: shared directory management
# eMuleBB Connection (optional)
- EMULEBB_ENABLED=true
- EMULEBB_HOST=host.docker.internal
- EMULEBB_PORT=4711
- EMULEBB_API_KEY=your_rest_api_key # Locks UI editing
- EMULEBB_USE_SSL=false
- EMULEBB_PATH=
# rTorrent Connection (optional)
- RTORRENT_ENABLED=true
- RTORRENT_MODE=http # http, scgi, or scgi-socket
- RTORRENT_HOST=rtorrent # For http/scgi modes
- RTORRENT_PORT=8000 # For http/scgi modes
- RTORRENT_PATH=/RPC2 # For http mode only
- RTORRENT_SOCKET_PATH= # For scgi-socket mode only
- RTORRENT_USERNAME=user # For http mode only
- RTORRENT_PASSWORD=pass # For http mode only (locks UI editing)
- RTORRENT_USE_SSL=false # For http mode only
# qBittorrent Connection (optional)
- QBITTORRENT_ENABLED=true
- QBITTORRENT_HOST=qbittorrent
- QBITTORRENT_PORT=8080
- QBITTORRENT_USERNAME=admin
- QBITTORRENT_PASSWORD=pass # Locks UI editing
- QBITTORRENT_USE_SSL=false
# Deluge Connection (optional)
- DELUGE_ENABLED=true
- DELUGE_HOST=deluge
- DELUGE_PORT=8112
- DELUGE_PASSWORD=deluge # Locks UI editing
- DELUGE_USE_SSL=false
# Transmission Connection (optional)
- TRANSMISSION_ENABLED=true
- TRANSMISSION_HOST=transmission
- TRANSMISSION_PORT=9091
- TRANSMISSION_PATH=/transmission/rpc
- TRANSMISSION_USERNAME=user
- TRANSMISSION_PASSWORD=pass # Locks UI editing
- TRANSMISSION_USE_SSL=false
# Prowlarr Integration (optional - requires a BitTorrent client)
- PROWLARR_ENABLED=true
- PROWLARR_URL=http://prowlarr:9696
- PROWLARR_API_KEY=your_api_key # Locks UI editing
# Sonarr Integration (optional)
- SONARR_URL=http://sonarr:8989
- SONARR_API_KEY=your_api_key # Locks UI editing
- SONARR_SEARCH_INTERVAL_HOURS=6
# Radarr Integration (optional)
- RADARR_URL=http://radarr:7878
- RADARR_API_KEY=your_api_key # Locks UI editing
- RADARR_SEARCH_INTERVAL_HOURS=6
# Skip wizard (optional - only if all settings provided)
- SKIP_SETUP_WIZARD=false| Variable | Default | Description |
|---|---|---|
PORT |
4000 |
Web server listening port |
BIND_ADDRESS |
0.0.0.0 |
Network interface to listen on (0.0.0.0 = all, 127.0.0.1 = localhost only) |
| Variable | Default | Description |
|---|---|---|
WEB_AUTH_ENABLED |
false |
Enable password protection for the web UI |
WEB_AUTH_PASSWORD |
- | Password for web UI access (locks UI editing) |
| Variable | Default | Description |
|---|---|---|
TRUSTED_PROXY_ENABLED |
false |
Enable trusted proxy SSO (requires WEB_AUTH_ENABLED) |
TRUSTED_PROXY_USERNAME_HEADER |
- | HTTP header containing the authenticated username |
TRUSTED_PROXY_AUTO_PROVISION |
false |
Automatically create users from proxy header |
TRUSTED_PROXY_IPS |
- | Comma-separated CIDR ranges (empty = default private ranges) |
Note: See User Management for full details on authentication modes, capabilities, and SSO configuration.
| Variable | Default | Description |
|---|---|---|
AMULE_ENABLED |
true |
Enable aMule integration |
AMULE_HOST |
127.0.0.1 |
aMule daemon hostname or IP |
AMULE_PORT |
4712 |
aMule EC protocol port |
AMULE_PASSWORD |
- | aMule EC connection password (locks UI editing) |
AMULE_SHARED_FILES_RELOAD_INTERVAL_HOURS |
3 |
Interval to rescan shared folders |
AMULE_SHARED_DIR_DAT |
- | Path to aMule's shareddir.dat file (enables shared directory management) |
| Variable | Default | Description |
|---|---|---|
EMULEBB_ENABLED |
false |
Enable eMuleBB REST integration |
EMULEBB_HOST |
127.0.0.1 |
eMuleBB WebServer/REST hostname or IP |
EMULEBB_PORT |
4711 |
eMuleBB WebServer/REST port |
EMULEBB_API_KEY |
- | eMuleBB native REST API key (locks UI editing) |
EMULEBB_USE_SSL |
false |
Use HTTPS for eMuleBB REST |
EMULEBB_PATH |
- | Optional reverse-proxy base path, such as /emulebb |
EMULEBB_ID |
generated | Optional first-instance ID |
EMULEBB_NAME |
eMuleBB |
Optional display name |
eMuleBB support uses REST. Do not point these settings at an aMule EC port.
| Variable | Default | Description |
|---|---|---|
RTORRENT_ENABLED |
false |
Enable rTorrent integration |
RTORRENT_MODE |
http |
Connection mode: http (XML-RPC proxy), scgi (direct TCP), scgi-socket (Unix socket) |
RTORRENT_HOST |
localhost |
rTorrent hostname (http/scgi modes) |
RTORRENT_PORT |
8000 |
rTorrent port (http/scgi modes) |
RTORRENT_PATH |
/RPC2 |
XML-RPC endpoint path (http mode only) |
RTORRENT_SOCKET_PATH |
- | Unix socket path (scgi-socket mode only) |
RTORRENT_USERNAME |
- | HTTP auth username (http mode only) |
RTORRENT_PASSWORD |
- | HTTP auth password (http mode only, locks UI editing) |
RTORRENT_USE_SSL |
false |
Use HTTPS (http mode only) |
| Variable | Default | Description |
|---|---|---|
QBITTORRENT_ENABLED |
false |
Enable qBittorrent integration |
QBITTORRENT_HOST |
localhost |
qBittorrent WebUI hostname |
QBITTORRENT_PORT |
8080 |
qBittorrent WebUI port |
QBITTORRENT_PATH |
- | URL base path for reverse proxy (e.g., /qbittorrent) |
QBITTORRENT_USERNAME |
admin |
WebUI username |
QBITTORRENT_PASSWORD |
- | WebUI password (locks UI editing) |
QBITTORRENT_USE_SSL |
false |
Use HTTPS for WebUI connection |
| Variable | Default | Description |
|---|---|---|
DELUGE_ENABLED |
false |
Enable Deluge integration |
DELUGE_HOST |
localhost |
Deluge WebUI hostname |
DELUGE_PORT |
8112 |
Deluge WebUI port |
DELUGE_PATH |
- | URL base path for reverse proxy (e.g., /deluge) |
DELUGE_PASSWORD |
- | WebUI password (locks UI editing) |
DELUGE_USE_SSL |
false |
Use HTTPS for WebUI connection |
| Variable | Default | Description |
|---|---|---|
TRANSMISSION_ENABLED |
false |
Enable Transmission integration |
TRANSMISSION_HOST |
localhost |
Transmission RPC hostname |
TRANSMISSION_PORT |
9091 |
Transmission RPC port |
TRANSMISSION_PATH |
/transmission/rpc |
RPC endpoint path |
TRANSMISSION_USERNAME |
- | RPC auth username (if required) |
TRANSMISSION_PASSWORD |
- | RPC auth password (locks UI editing) |
TRANSMISSION_USE_SSL |
false |
Use HTTPS for RPC connection |
| Variable | Default | Description |
|---|---|---|
PROWLARR_ENABLED |
false |
Enable Prowlarr integration |
PROWLARR_URL |
- | Prowlarr base URL |
PROWLARR_API_KEY |
- | Prowlarr API key (locks UI editing) |
| Variable | Default | Description |
|---|---|---|
SONARR_URL |
- | Sonarr base URL (auto-enables integration) |
SONARR_API_KEY |
- | Sonarr API key (locks UI editing) |
SONARR_SEARCH_INTERVAL_HOURS |
6 |
Hours between automatic searches |
| Variable | Default | Description |
|---|---|---|
RADARR_URL |
- | Radarr base URL (auto-enables integration) |
RADARR_API_KEY |
- | Radarr API key (locks UI editing) |
RADARR_SEARCH_INTERVAL_HOURS |
6 |
Hours between automatic searches |
| Variable | Default | Description |
|---|---|---|
HISTORY_ENABLED |
false |
Enable download history tracking |
HISTORY_USERNAME_HEADER |
- | Deprecated — use Trusted Proxy SSO instead. See User Management |
| Variable | Default | Description |
|---|---|---|
SCRIPTING_ENABLED |
false |
Enable custom event scripts |
SCRIPTING_SCRIPT_PATH |
scripts/custom.sh |
Path to custom script |
SCRIPTING_TIMEOUT_MS |
30000 |
Script execution timeout |
| Variable | Default | Description |
|---|---|---|
ED2K_SEARCH_DELAY_MS |
5000 |
Delay between searches (avoid flood protection) |
ED2K_CACHE_TTL_MS |
600000 |
Search result cache duration |
| Variable | Default | Description |
|---|---|---|
SKIP_SETUP_WIZARD |
false |
Skip the setup wizard entirely |
Note: Fields marked with "locks UI editing" cannot be modified through the web interface when set via environment variables. This is a security feature to prevent accidental exposure of sensitive credentials.
This is the most common scenario when your download clients run on your host:
extra_hosts:
- "host.docker.internal:host-gateway" # Required!- Use
host.docker.internalas the hostname in settings - The
extra_hostsline creates a special hostname that points to your host machine - Works on Docker Desktop (Mac/Windows) and Linux with recent Docker versions
If using the all-in-one setup or services are in separate containers:
- Use the service name as hostname (e.g.,
amule,rtorrent,qbittorrent,deluge,transmission,prowlarr) - Ensure all containers are on the same Docker network
- The
extra_hostsline is not needed
If services are running on different machines:
- Use the IP address or hostname of the remote machine
- Ensure required ports are accessible from your network
- The
extra_hostsline is not needed