apps.header.allAppsCount
mularr
apps.detail.types.app from JoeCarl's Repository
apps.detail.sections.overview
Mularr is a powerful integration for aMule that provides a functional web interface with a nostalgia-infused retro touch. It bridges the gap between classic P2P and modern automation tools by offering qBittorrent-compatible APIs and Torznab indexers, making it seamless to use aMule with apps like Sonarr and Radarr.
Key features:
- *Arr integration: native support for Sonarr/Radarr via qBittorrent and Torznab API compatibility (API Path: /api/as-torznab-indexer, URL Base: /api/as-qbittorrent).
- Bundled aMule daemon: no separate aMule container needed.
- Telegram integration: download-complete notifications via bot, and optional use of the Telegram network as a download provider.
- VPN ready: built-in Gluetun health checks and automatic forwarded-port updates (set GLUETUN_ENABLED=true and route this container through your Gluetun container).
- Retro-style responsive web UI with multiple themes (Windows XP Classic, Windows 11 Experimental).
Notes:
- The container runs as UID 1000 by default. On most Unraid systems this works out of the box; if you hit permission errors on your shares, add '--user 99:100' in Extra Parameters to run as nobody:users.
- If no AUTH_USERNAME/AUTH_PASSWORD is set, the web UI and API are open without authentication. Set them if the port is reachable from untrusted networks.
- For a HighID on the eD2k network, keep the eD2k TCP/UDP port mappings and forward them in your router (not needed when routing through Gluetun with port forwarding).
Readme
View on GitHub
Mularr
Mularr is a powerful integration for aMule that provides a functional web interface with a nostalgia-infused retro touch. It bridges the gap between classic P2P and modern automation tools by offering qBittorrent-compatible APIs and Torznab indexers, making it seamless to use aMule with apps like Sonarr and Radarr.
It also includes an extension to use the Telegram Network as a download provider. This requires a real account (not a bot) to access groups/channels with media files.
Key Features
- *Arr Integration: Native support for Sonarr/Radarr via qBittorrent & Torznab API compatibility.
- Docker Ready: Easy deployment using Docker and Docker Compose.
- Telegram Integration:
- Notifications: Get notified of your downloads via a Telegram bot.
- Provider: Use the Telegram network for searching and downloading files.
- 🛡️ VPN Ready: Built-in support for Gluetun health checks and automatic port updates.
- Retro-Style Web Interface: A fully responsive UI with a nostalgic Windows XP feel. Includes multiple themes like Classic and Windows 11 (Experimental). Built with Chispa.
Quick Start with Docker 🐳
The easiest way to get Mularr running is using Docker Compose:
services:
mularr:
image: ghcr.io/joecarl/mularr
container_name: mularr
restart: unless-stopped
ports:
- '8940:8940'
volumes:
- ./data:/app/data
# Check docker-compose.example.yml for a full configuration guide
Run it with:
docker-compose up -d
Access the web UI at http://localhost:8940.
Screenshots
Integrate with Sonarr / Radarr
You can configure Mularr as both an indexer and a download client.
[!TIP] In Sonarr/Radarr's configuration forms, click Show Advanced to reveal all required fields.
To configure as indexer use the following settings:
- Type: Torznab
- API Path:
/api/as-torznab-indexer
To configure as download client use the following settings:
- Type: qBittorrent
- URL Base:
/api/as-qbittorrent
Tech Stack
Mularr is built primarily with TypeScript.
| Component | Technology |
|---|---|
| Frontend | Chispa + Vite |
| Backend | Node.js + Express |
| Database | SQLite (better-sqlite3) |
💻 Development Setup
If you want to contribute or run Mularr you need docker & VS Code devcontainers. Open the project in the devcontainer and it automatically installs the needed dependencies.
Then you can start the application in dev mode:
1. Backend Setup
cd backend
npm run dev
2. Frontend Setup
cd frontend
npm run dev
[!WARNING] Do not run
npm installin the root folder. Install dependencies separately inbackend/andfrontend/.
Production Build
The included Dockerfile handles everything for you. It builds the frontend and bundles it with the backend for a single-image deployment.
docker build -t mularr .
Contributing
To contribute, follow the standard process:
- Fork the Project
- Create your feature branch & Commit your changes
- Open a Pull Request
Any contributions you make are greatly appreciated.
License
MIT
Made with ❤️ for the P2P Community
apps.detail.sections.mediaGallery
1 / 2apps.marketingCta.appInstallTitle
apps.marketingCta.appInstallDescription
apps.detail.sections.requirements
apps.detail.sections.categories
apps.detail.sections.related
apps.detail.related.exploreCategories
apps.detail.related.exploreAllapps.detail.sections.links
apps.detail.sections.details
ghcr.io/joecarl/mularr:latestapps.detail.sections.runtime
- apps.detail.details.webui
http://[IP]:[PORT:8940]- apps.detail.details.network
bridge- apps.detail.details.shell
bash- apps.detail.details.privileged
- false
apps.detail.sections.configuration
Port for the Mularr web interface and API.
- apps.detail.config.target
- 8940
- apps.detail.config.default
- 8940
- apps.detail.config.value
- 8940
aMule eD2k TCP port. Forward it in your router to get a HighID. Remove if routing through Gluetun.
- apps.detail.config.target
- 4662
- apps.detail.config.default
- 4662
- apps.detail.config.value
- 4662
aMule eD2k UDP port (Kad and extended protocol). Forward it in your router. Remove if routing through Gluetun.
- apps.detail.config.target
- 4672
- apps.detail.config.default
- 4672
- apps.detail.config.value
- 4672
Persistent data: SQLite database and aMule configuration.
- apps.detail.config.target
- /app/data
- apps.detail.config.default
- /mnt/user/appdata/mularr
- apps.detail.config.value
- /mnt/user/appdata/mularr
Download storage. Completed files go to /downloads, in-progress files to /downloads/.incomplete (see AMULE_INCOMING_DIR / AMULE_TEMP_DIR).
- apps.detail.config.target
- /downloads
- apps.detail.config.default
- /mnt/user/downloads/mularr
- apps.detail.config.value
- /mnt/user/downloads/mularr
Username for the web UI and the qBittorrent-compatible API. Leave both auth fields empty to disable authentication (not recommended).
Password for the web UI and the qBittorrent-compatible API.
API key to authenticate requests from other apps without login (needed for the Torznab integration with Sonarr/Radarr). Can also be used as password with username 'apikey' for the qBittorrent API.
Secret used to sign JSON Web Tokens. If not set, a random secret is generated on startup and existing sessions are invalidated after each restart.
Directory (inside the container) where completed downloads are stored.
- apps.detail.config.default
- /downloads
- apps.detail.config.value
- /downloads
Directory (inside the container) for in-progress downloads.
- apps.detail.config.default
- /downloads/.incomplete
- apps.detail.config.value
- /downloads/.incomplete
Semicolon-separated absolute container paths to share recursively. When set, shared directories are managed at startup and become read-only in Settings.
Semicolon-separated absolute container paths to share (non-recursive).
How often (in hours) the monitoring service automatically restarts the aMule daemon. Set to 0 to disable.
- apps.detail.config.default
- 12
- apps.detail.config.value
- 12
Telegram bot token for notifications about system events and transfer completions.
Telegram chat ID for notifications.
Telegram topic ID for notifications (optional, for forum-style groups).
Set to true when routing this container through a Gluetun container so the VPN forwarded port is automatically applied to aMule.
- apps.detail.config.default
- false
- apps.detail.config.value
- false
Gluetun control server API URL.
- apps.detail.config.default
- http://localhost:8000/v1
- apps.detail.config.value
- http://localhost:8000/v1
When Gluetun forwards multiple ports, index of the 'ports' array to use instead of the default 'port' value. Leave empty for default behavior.