A unified download manager for aMule, eMuleBB, rTorrent, qBittorrent, Deluge, and Transmission. Manage ED2K and BitTorrent downloads from a single modern web interface. Features multi-instance support, user management with SSO, Prowlarr integration for torrent search, Torznab indexer and qBittorrent-compatible API for ED2K clients (Sonarr/Radarr integration), push notifications via Apprise, and GeoIP peer location display. Built with Node.js, WebSockets, and React.
- aMule Integration - Control aMule via the EC (External Connection) protocol
- eMuleBB Integration - Control eMuleBB via its native REST API
- rTorrent Integration - Connect to rTorrent via XML-RPC (HTTP proxy, SCGI TCP, or Unix socket)
- qBittorrent Integration - Connect to qBittorrent via WebUI API
- Deluge Integration - Connect to Deluge via WebUI JSON-RPC
- Transmission Integration - Connect to Transmission via HTTP RPC
- Multi-Instance - Run multiple instances of the same client type
- Unified Interface - Manage all clients from a single dashboard
- Real-time Search - Search ED2K/Kad network and Prowlarr indexers
- Download Control - Pause, resume, and delete downloads
- Category Management - Organize downloads with color-coded categories and path mapping
- Batch Operations - Select multiple items for bulk actions
- File Operations - Move downloads to category paths
- User Management - Multi-user authentication, capabilities, and trusted proxy SSO
- Prowlarr Search - Search torrents across multiple indexers (results go to any connected BitTorrent client)
- Sonarr/Radarr - Torznab indexer and qBittorrent-compatible API for ED2K workflows
- Push Notifications - Apprise integration for 80+ notification services
- Custom Event Scripts - Run your own scripts on download events
- Upload Tracking - Monitor active uploads with GeoIP location display
- Shared Files - View and manage shared files
- Historical Statistics - Interactive charts for speed and transfer history (24h/7d/30d)
- Download History - Track completed downloads with filtering
- Dark Mode - Automatic theme switching based on system preference
- Responsive Design - Works on desktop, tablet, and mobile
- Configurable Tables - Show/hide and reorder columns per view
- WebSocket Updates - Real-time updates without polling
Prerequisites: At least one of: aMule with External Connections enabled, eMuleBB with REST enabled, rTorrent with XML-RPC enabled, qBittorrent with WebUI enabled, Deluge with WebUI enabled, or Transmission with RPC enabled.
This repository is the eMuleBB organization fork. The Docker image and clone commands below are the upstream aMuTorrent distribution unless an eMuleBB release explicitly publishes fork-owned assets. Use this fork for eMuleBB integration issues and fork development; use upstream package/image references when you intentionally want the upstream distribution.
Available on Docker Hub. Supports linux/amd64 and linux/arm64.
docker pull g0t3nks/amutorrent:latestmkdir -p data logs
sudo chown -R 1000:1000 data logsservices:
amutorrent:
image: g0t3nks/amutorrent:latest
user: "1000:1000"
container_name: amutorrent
ports:
- "4000:4000"
environment:
- NODE_ENV=production
- PORT=4000
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./logs:/usr/src/app/server/logs
- ./data:/usr/src/app/server/data
restart: unless-stoppeddocker compose up -dOpen http://localhost:4000 and follow the setup wizard to configure your download clients.
All-in-One Setup: For a complete setup with aMule, rTorrent, and qBittorrent in Docker, see docker-compose.all-in-one.yml
# Clone repository
git clone https://github.com/emulebb/amutorrent.git
cd amutorrent
# Install and build
cd server && npm install && cd ..
npm install && npm run build
# Start server
node server/server.jsOpen http://localhost:4000 and complete the setup wizard.
| Document | Description |
|---|---|
| Configuration Guide | Setup wizard, settings, environment variables |
| aMule Integration | Connect to aMule via EC protocol |
| eMuleBB Integration | Connect to eMuleBB via REST API |
| rTorrent Integration | Connect to rTorrent via XML-RPC (HTTP, SCGI, or Unix socket) |
| qBittorrent Integration | Connect to qBittorrent via WebUI API |
| Deluge Integration | Connect to Deluge via WebUI JSON-RPC |
| Transmission Integration | Connect to Transmission via HTTP RPC |
| Prowlarr Integration | Search torrents via Prowlarr indexers |
| Notifications | Push notifications via Apprise (80+ services) |
| Custom Scripting | Run custom scripts on download events |
| GeoIP Setup | Display peer locations with MaxMind databases |
| Sonarr/Radarr Integration | Complete guide for *arr applications setup |
| User Management | Authentication, capabilities, SSO, and API keys |
| API Reference | REST API and WebSocket protocol |
| Development Guide | Building, project structure, contributing |
Can't connect to aMule?
- Verify EC is enabled in aMule: Preferences → Remote Controls → External Connections
- Check the EC password is correct
- Ensure firewall allows port 4712
Can't connect to eMuleBB?
- Verify WebServer/REST is enabled in eMuleBB
- Check the native REST API key, host, port, SSL mode, and optional base path
- Ensure eMuleBB bind address, allowed IPs, and firewall rules allow aMuTorrent
- See eMuleBB Integration for setup details
Can't connect to rTorrent?
- Ensure XML-RPC is accessible via HTTP proxy (nginx/ruTorrent) or direct SCGI (TCP port or Unix socket)
- Test with:
curl http://host:port/RPC2 - See rTorrent Integration for setup details
Can't connect to qBittorrent?
- Verify WebUI is accessible:
curl http://host:8080/api/v2/app/version - New installs generate a random password - check container logs:
docker logs qbittorrent - See qBittorrent Integration for setup details
Can't connect to Deluge?
- Verify WebUI is accessible:
curl -X POST http://host:8112/json - Default password is
deluge— check if it was changed - See Deluge Integration for setup details
Can't connect to Transmission?
- Verify RPC is accessible:
curl http://host:9091/transmission/rpc(a 409 response means RPC is working) - Check username/password if RPC authentication is enabled
- See Transmission Integration for setup details
Docker: Can't reach services on host?
- Ensure
extra_hostsis set in docker-compose.yml - Use
host.docker.internalas the hostname
Notifications not working?
- Verify Apprise is installed:
apprise --version - Test your service configuration via the Notifications page
- See Notifications Guide for setup details
Sonarr/Radarr can't find downloaded files?
- Configure categories with correct download paths
- Set up Remote Path Mappings if using Docker
- See Integration Guide for details
eMuleBB adapter behavior looks different from qBittorrent?
- eMuleBB exposes a qBittorrent-compatible subset for Arr workflows, not a full qBittorrent clone
- Check the eMuleBB adapter contract before treating no-op or unsupported qBit routes as a bug: https://emulebb.github.io/emulebb-tooling/rest/REST-API-ADAPTERS/
More help: Check server logs. For this eMuleBB fork, open issues at
https://github.com/emulebb/amutorrent/issues. For upstream packaging or the
g0t3nks/amutorrent Docker image, use the upstream project issue tracker.
MIT License - see LICENSE for details.






