webui-aria2

Il y a 3 outils pour télécharger des fichiers en ligne de commande qu’il faut connaitre sur GNU/Linux : wget, curl, aria2. Un excellent article en Anglais sur les différences entre wget et curl en passant.

Aria2 est un gestionnaire de téléchargement en ligne de commande supportant HTTP/HTTPS, FTP, SFTP, BitTorrent, Metalink.

Aria2 s’installe sur n’importe quelle distro GNU/Linux aisément via le paquet aria2. Sous Debian on fera donc apt-get install aria2 pour l’installer. Il se pilote via la commande aria2c, la documentation est ici.

webui-aria2

Je ne vais pas vous mentir, j’ai horreur de gérer des téléchargements en ligne de commande. C’est là où intervient une application web minimaliste dans son fonctionnement mais absolument redoutable : webui-aria2.

En vérité c'est pas que pour télécharger des iso que je m'en sers

J’avais un besoin, je désirais lancer des téléchargements sur mon server@home alors que j’étais à l’extérieur de chez moi. Au début je me connectais en SSH et puis je lançais une commande wget. C’était pénible, je n’avais pas la visibilité sur l’avancement du téléchargement, les ports peuvent être bloqués sur des Wi-Fi publics etc.

Et là webui-aria2 est apparu sur son cheval blanc dans le soleil couchant. Redoutable.

L’idée est très simple, vous lancez aria2 en tant que démon sur votre server@home. Vous vous connectez ensuite dessus et vous lui envoyez des instructions/téléchargements grâce à webui-aria2. La particularité de webui-aria2 c’est qu’il se lance sur votre poste actuel (ce n’est pas un site à installer sur apache/nginx) donc de n’importe où.

Concrètement je suis sur mon poste Windows au boulot, je dézippe le dossier webui-aria2, je met les paramètres pour me connecter à mon serveur aria2 dans le fichier configuration.js puis je clique sur index.html et je commence à ajouter les téléchargements que je veux. Ce qui est très cool c’est donc que ça s’utilise sur Windows, GNU/Linux, Android (testé, très mal foutu mais fonctionnel) et que le seul besoin que vous avez c’est un navigateur (et une connexion internet).

Passons à la mise en place et commençons par notre server@home évidemment sous Debian.

apt-get install aria2 # On installe aria2
openssl rand -base64 32 # On génère un mot de passe aléatoire de 32 caractères avec openssl qui nous servira de jeton (token) de sécurité pour nous authentifier (avec l'option --rpc-secret) sur aria2
aria2c --enable-rpc --rpc-listen-all --rpc-secret=7iQzqgg6Soe5MqpWGaLODhAbNcFwkFEaQYCQhCAtDrIZ --daemon # La ligne de commande avec toutes les options pour lancer aria2 en démon et à l'écoute

--enable-rpc : On active l’écoute du serveur JSON-RPC/XML-RPC
--rpc-listen-all : On active les requêtes entrantes JSON-RPC/XML-RPC sur toutes les interfaces réseaux
--rpc-secret=7iQzqgg6Soe5MqpWGaLODhAbNcFwkFEaQYCQhCAtDrIZ : Notre jeton d’authentification secret afin de nous connecter au serveur aria2 (7iQzq…tDrIZ ayant été généré avec la commande openssl)
--daemon : On lance aria2 en démon
pkill aria2c : Tuer simplement aria2c si besoin

Par défaut le serveur JSON-RPC/XML-RPC écoute sur le port 6800, vous pouvez évidemment le modifier (--rpc-listen-port=PORT avec un port compris entre 1024-65535). Il faut impérativement faire une redirection/ouverture de ports sur votre box internet. Pour ma part je fais une redirection de port, j’utilise le port 443 (HTTPS) que je redirige vers mon server@home sur le port 6800. Pour rappel les ports 80 et 443 sont souvent les seuls ouverts dans les Wi-Fi publics.

On peut également utiliser un fichier de configuration avec les options dedans ce qui donnera aria2c --conf-path=aria2.conf --daemon. Je vous invite à sécuriser ce fichier avec chmod 600 aria2.conf.

dir=/home/babar/Téléchargements
max-concurrent-downloads=5
max-connection-per-server=3
enable-rpc=true
rpc-listen-all=true
rpc-secret=7iQzqgg6Soe5MqpWGaLODhAbNcFwkFEaQYCQhCAtDrIZ

Certaines personnes souhaiteront peut-être en faire un service qui se lance au démarrage, ce n’est pas mon cas mais ça se trouve aisément sur le net. Le fonctionnement est très simple comme ça, j’apprécie. On en a terminé pour le server@home, simple et rapide non ?

Maintenant sur notre poste local évidemment sous Xubuntu.

1/ On télécharge et on dézippe webui-aria2 wget https://github.com/ziahamza/webui-aria2/archive/master.zip && unzip master.zip
2/ On édite le fichier configuration.js, on modifie le host (host: 'laurent-napias.com'), le port (port: 443) et on renseigne le token (token: '7iQzqgg6Soe5MqpWGaLODhAbNcFwkFEaQYCQhCAtDrIZ'). Ci-dessous je n’ai pas mis la totalité du fichier mais seulement le bout qui nous intéresse

  host: 'bloglibre.net',
  path: '/jsonrpc',
  port: 443,
  encrypt: false,
  auth: {                          // either add the token field or the user and pass field, not both.
  token: '7iQzqgg6Soe5MqpWGaLODhAbNcFwkFEaQYCQhCAtDrIZ'
  },
  directURL: ''                   // If supplied, links will be created to enable direct download from the aria2 server, requires appropriate webserver to be configured
})

3/ On clique sur index.html (qui va donc s’ouvrir avec notre navigateur par défaut) puis Add, By URIs pour ajouter les adresses des téléchargements

Voilà. C’est simple, c’est beau, c’est efficace, c’est encore et toujours du libre. Et je fais le SAV si vous avez besoin.

Bisous.

Déjà 12 avis pertinents dans webui-aria2

  • jgalode
    bonjour, j’ai un soucis j’ai apparemment bien mis en place aria2 avec le token , mais j’ai ceci à l’affichage :

    http://img11.hostingpics.net/pics/297739Capturedu20160601211717.png

    j’utilise nginx + php 7 :

    ## début config aria2 ##

    location ^~ /webui-aria2-master {
    root /var/www;
    include /etc/nginx/conf.d/php.conf;
    include /etc/nginx/conf.d/cache.conf;
    auth_basic « aria2 »;
    auth_basic_user_file « /etc/nginx/passwd/rutorrent_passwd_user »;
    }

    ## fin config aria2 ##

    Quel autre modification doit-je faire ?

  • jgalode
    j’ai bien lu pour  » (ce n’est pas un site à installer sur apache/nginx) donc de n’importe où. » mais serait t’il possible de le rendre compatible sous nginx.
  • Dyske
    c’est une page web comme tu dis, donc il est tout a fait possible d’avoir ça en accessible avec un nom de domaine depuis l’extérieur avec un serveur web
  • Dyske
    Bah, je l’ai fais, donc c’est bien accessible depuis l’extérieur, donc depuis n’importe quel pc, du moment que je me connecte sur la bonne adresse, et à mon avis c’est ça, sa question, donc tu peux très bien rendre cette page web accessible sur le web, et pas que en local, et en faite ça parait juste logique, tu peux rendre n’importe quelle page web accessible à internet, et pas seulement laisser ça en local.
    Après je comprend très bien ta façon de faire, t’inquiète pas.
  • azno
    Salut, vraiment instructif comme tuto, par contre j’avais aussi installé aria2 via apt-get et ça m’avait installé la version 1.15 (au lieu de la 1.18 ou +), donc j’ai dû repasser par les sources et les compiler pour avoir la dernière version.

    Hormis ça, j’ai un autre soucis, peut-être pourriez-vous m’aider ? :)

    Quand je tape :
    aria2c –enable-rpc –rpc-listen-all –rpc-secret=maclefsecrete –daemon

    J’obtiens l’erreur suivante :
    aria2c : option non reconnue « –rpc-secret=maclefsecrete »
    Usage: aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]…
    See ‘aria2c -h

    J’ai bien sûr essayé sans la clef secrète et ça marche sans soucis, mais bon niveau sécurité c’est pas fou.

    Est-ce que vous auriez une idée du problème ?

    Merci.

  • azno
    Salut,

    Tu fais bien, je m’intéresse que depuis récemment au monde de Linux donc je pourrais rapidement être perdu.

    Et oui ce sont bien les bons tirets à chaque fois, en image : https://dl.dropboxusercontent.com/u/61641764/pb_aria2.png

    Une piste d’un ami mais je suis pas sûr que ça résolve le soucis. En fait j’ai la version 1.18 (avant 1.15) mais les dernières sources montrent la version 1.27. Je vais essayer de l’installer pour voir et je reviens vers toi.

    Merci pour ton aide :)

  • azno
    Re-salut,

    Oui c’est bien OpenMediaVault et j’ai « résolu » le soucis en installant la version 1.26 d’aria2. Pour info si d’autres ont ce problème, j’avais tenté la version 1.20 aussi et même erreur. Puis tenté la 1.27 mais je n’arrivais pas à compiler (problème de dépendances probablement) donc j’ai essayé la version 1.26 et plouf ça a fonctionné…

    Il semblerait donc que l’option –rpc-secret ne soit pas disponible dans les vieilles versions ?

    En tout cas merci pour ton tuto et pour tes réponses rapides, ça fait plaisir :)

Les commentaires sont fermés.