Run Mister Download Manager on a home server or a NAS (Docker, Unraid, any Linux machine) without a window, and send it downloads from your phone or your browser: the server downloads them into its own folders, such as a network share.
It is the same MDM as on a desktop: its list, categories, queues, Scheduler, speed limits and torrents. You control it with the remote control's page (from any phone or computer on your network), the browser extension pointed at it, or its command line.
New: the server mode is new in this version. Please tell us how it goes.
With Docker
Build the image from MDM's source (a published image comes later):
git clone https://github.com/anefzaoui/misterdownloadmanager
cd misterdownloadmanager
docker build -t misterdownloadmanager .
The first build is long (up to an hour on a small server: the whole program is optimised as one). The image is small, about 175 MB: Debian's slim base, MDM's two programs and the certificates downloads are checked against. It needs no desktop libraries: MDM loads those only to open a window, which a server never does.
Then run it, with a folder for its settings and one for the downloads. Make both folders first,
as the user MDM will run as: a folder Docker makes for you belongs to root, and MDM can't use it.
mkdir -p /srv/mdm-config /srv/downloads
docker run -d --name mdm --restart unless-stopped \
-p 8463:8463 \
-v /srv/mdm-config:/config \
-v /srv/downloads:/downloads \
--user "$(id -u):$(id -g)" \
misterdownloadmanager
/configkeeps the list, the settings, the certificate and the paired devices./downloadsis where files land: each category has its folder inside (Music,Video,Torrents…). Mount a network share there to download straight onto it.--user: the user that owns those folders (MDM runs as no particular user).
docker/compose.yml does the same with Docker Compose.
Pair your phone
docker logs mdm shows the address to open and, while no device is paired, a pairing code with a
QR code:
The remote control listens at: https://172.17.0.2:8463/
Its certificate's SHA-256 fingerprint: DE:26:7F:…
No device is paired yet. Open the address (or scan this) and enter the code 1037 1606 …
Inside a container, the address MDM finds is the container's own: give it the one you open, the
server's address with the port you published, as -e MDM_REMOTE_URL=https://192.168.1.10:8463/,
and the log and the QR code show that one. Then pair as
Control MDM from your phone says. For another code, at any
time:
docker exec mdm misterdownloadmanager-cli pair
To open the page by the server's name (https://nas.local:8463/), give MDM that name:
-e MDM_REMOTE_HOSTS=nas.local (several: separated by commas). Other names are refused, so that
no web page can reach MDM through a name of its own.
On Unraid
docker/unraid.xml is a template: copy it to
/boot/config/plugins/dockerMan/templates-user/ on the flash drive, then Docker → Add
Container and pick misterdownloadmanager. It maps /config to appdata, /downloads to a
share, the port 8463, and runs as nobody:users (99:100), as Unraid's shares expect. The image
must be built first (above), on the server or pushed to a registry you use. If the container's
log says a folder belongs to another user, give it to nobody:users once:
chown -R 99:100 /mnt/user/appdata/misterdownloadmanager.
Without Docker
On any Linux machine with MDM installed (the .deb, .rpm, AppImage or tar.gz):
misterdownloadmanager --headless --data ~/mdm-server --downloads /srv/downloads
| Flag | Or the variable | What it sets |
|---|---|---|
--data <folder> |
MDM_DATA_DIR |
the list, settings, certificate and paired devices |
--downloads <folder> |
MDM_DOWNLOADS |
where downloads go (each category's folder inside) |
--port <number> |
MDM_REMOTE_PORT |
the remote control's port (8463) |
--listen <address> |
MDM_REMOTE_LISTEN |
where it listens: every local network address unless given |
--hosts <names> |
MDM_REMOTE_HOSTS |
names besides its addresses the page may be opened by |
MDM_REMOTE_URL |
the page's address as you open it, shown with the pairing code |
The remote control is on in this mode (MDM_REMOTE=off turns it off). It stops cleanly, saving
its list, when the system stops it (docker stop, systemd, Ctrl+C). It works on Windows and
macOS too, the same way.
The command line talks to it as to a desktop MDM, with the same data folder:
MDM_DATA_DIR=~/mdm-server misterdownloadmanager-cli status (once api on), pair, and adding
an address: misterdownloadmanager /d https://example.com/file.zip.
Send downloads from your browser
In the browser extension's menu, Send downloads to → Another Mister Download Manager (a server): type the server's address,
open it once in that browser to accept its certificate, then enter a pairing code (pair
above). Downloads the extension catches, and Download with Mister Download Manager on a link,
then go to the server instead of this computer. The browser's cookies are not sent to the server:
a download that needs you to be signed in to a site stays with this computer.
What a server doesn't do
- Video pages (yt-dlp) and image galleries need their helpers, which the image doesn't include.
- Nothing opens a window: a download that would ask a question (a duplicate, files already there) takes the choice set in the settings, or isn't added.
- Don't publish the port on the internet; reach your home network through a VPN instead.
Free, open source, no ads, no trial.
Download Mister Download Manager