Überarbeitet am 8. September 2026.

aria2 ist auch 2026 noch ein praktischer Download-Client für HTTP/HTTPS, FTP/SFTP, BitTorrent und Metalink. Meine alte Docker-Anleitung hatte allerdings einen ziemlich unschönen Haken: Die RPC-Schnittstelle und die WebUI wurden direkt auf öffentliche Serverports gelegt. Das würde ich heute nicht mehr so machen.

In dieser aktualisierten Variante laufen WebUI und RPC deshalb ausschließlich auf 127.0.0.1. Für die RPC-Schnittstelle wird zusätzlich ein Secret verwendet.

Voraussetzungen

Docker und Docker Compose sollten bereits installiert sein. Falls nicht: Docker und Docker Compose unter Debian/Ubuntu installieren.

Eine Erklärung zum Aufbau von Compose-Dateien findest du hier: Docker Compose erklärt.

Projektordner anlegen

sudo mkdir -p /opt/aria2/{downloads,config}
cd /opt/aria2

Für den RPC-Schlüssel verwenden wir eine .env-Datei:

nano .env
ARIA2_SECRET=hier-ein-langes-zufaelliges-secret-eintragen

Die Datei sollte nicht unnötig für andere Benutzer lesbar sein:

chmod 600 .env

compose.yaml erstellen

services:
  aria2:
    image: abcminiuser/docker-aria2-with-webui:latest-ng
    container_name: aria2
    restart: unless-stopped
    ports:
      - "127.0.0.1:6800:6800"
      - "127.0.0.1:6880:80"
    volumes:
      - ./downloads:/data
      - ./config:/conf
    environment:
      SECRET: ${ARIA2_SECRET}
      PUID: 1000
      PGID: 1000

PUID und PGID müssen zu dem Benutzer passen, der auf die Download-Verzeichnisse zugreifen soll. Die Werte kannst du beispielsweise mit id BENUTZERNAME prüfen.

Container starten

docker compose up -d
docker compose ps
docker compose logs --tail=100 aria2

Warum die Ports nur auf localhost liegen

Die aria2-RPC-Schnittstelle ist eine administrative Schnittstelle. Wer Zugriff darauf bekommt, kann Downloadaufträge steuern. Deshalb öffne ich Port 6800 nicht mehr mit ufw allow 6800 ins Internet.

Auch die WebUI braucht bei mir keinen öffentlichen Port. Für einen gelegentlichen administrativen Zugriff reicht ein SSH-Tunnel:

ssh -L 6880:127.0.0.1:6880 -L 6800:127.0.0.1:6800 user@server

Danach kann die WebUI lokal im Browser über http://127.0.0.1:6880 geöffnet werden. In der WebUI muss für die RPC-Verbindung das gleiche Secret eingetragen werden.

Updates

cd /opt/aria2
docker compose pull
docker compose up -d

Vor einem Update sollte man bei produktiv genutzten Downloads natürlich prüfen, ob die verwendete Container-Version oder Konfiguration Änderungen mitbringt.

Nextcloud: heute nicht mehr über ocDownloader

Der ursprüngliche Artikel war eng mit ocDownloader für Nextcloud verbunden. Diese Kombination empfehle ich heute nicht mehr. Für Nextcloud habe ich inzwischen modernere Lösungen im Blog, unter anderem meine eigene App MediaFetch.

Fazit

aria2 selbst ist weiterhin ein nützliches Werkzeug. Der entscheidende Unterschied zu meiner alten Installation ist die Absicherung: kein offener RPC-Port, kein öffentliches Webinterface und ein RPC-Secret. Genau solche Kleinigkeiten machen bei einem Server im Internet einen großen Unterschied.

Quellen: aria2-Projekt und Docker-Image mit WebUI.