aMule: Docker

2 minuto(s) de lectura

Docker

aMule es un programa de intercambio de redes P2P, libre y multiplataforma.

La versión más conocidad en la comunidad es eMule, pero su desarrollo esta limitado a Microsoft Windows.

Al igual que él, funciona tanto en la red eDonkey ed2k como en la red Kademlia.

Instalación

Vamos a realizar unos pasos previos para preparar el entorno. En primer lugar creamos las carpetas donde alojar el proyecto:

mkdir -p $HOME/docker/amule/{config,descargas,temporal} && \
cd $HOME/docker/amule

Ahora vamos a crear el fichero de configuración docker-compose.yml lanzando el siguiente comando:

cat << EOF > $HOME/docker/amule/docker-compose.yml
version: "2.1"
services:
  amule:
    image: ngosang/amule
    container_name: aMule
    environment:
      - TZ=Europe/Madrid
      - PUID=1000
      - PGID=1000
      - GUI_PWD=lordpedal
      - WEBUI_PWD=lordpedal
      - MOD_AUTO_RESTART_ENABLED=true
      - MOD_AUTO_RESTART_CRON=0 6 * * *
      - MOD_FIX_KAD_GRAPH_ENABLED=true
    ports:
      - "4711:4711"
      - "4712:4712"
      - "41662:41662"
      - "41665:41665/udp"
      - "41672:41672/udp"
    volumes:
      - './config:/home/amule/.aMule'
      - './descargas:/incoming'
      - './temporal:/temp'
    restart: always
EOF

Vamos a repasar los principales parámetros que hemos añadido sobre la anterior base, para poder adaptarlos a nuestro sistema y configuración especifica:

Parámetro Función
TZ=Europe/Madrid Zona horaria Europa/Madrid
PUID=1000 UID de nuestro usuario. Para saber nuestro ID ejecutar en terminal: id
PGID=1000 GID de nuestro usuario. Para saber nuestro ID ejecutar en terminal: id
GUI_PWD=lordpedal Contraseña de acceso a la interfaz Web :4711
WEBUI_PWD=lordpedal Contraseña de gestión terminal :4712
MOD_AUTO_RESTART_ENABLED=true Habilita el reinicio de la aplicación
MOD_AUTO_RESTART_CRON=0 6 * * * Activa el reinicio todos los días a las 6am
MOD_FIX_KAD_GRAPH_ENABLED=true Corrige un bug en gráficos de red KAD
4711:4711 Puerto de acceso interfaz Web :4711
4712:4712 Puerto de acceso gestión terminal :4712
41662:41662 Puerto de acceso red Edonkey ed2k, para mejorar ratios de descarga se tiene que abrir acceso en el router (TCP), por defecto es 4662
41665:41665/udp Puerto de busqueda contenido red Edonkey ed2k, para mejorar ratios de consulta se tiene que abrir acceso en el router (UDP), por defecto es TCP 4662 + 3
41672:41672/udp Puerto de acceso red Kademlia KAD, para mejorar ratios de descarga se tiene que abrir acceso en el router (UDP), por defecto es 4672
~/docker/amule/config:/home/amule/.aMule Ruta donde almacena la configuración
~/docker/amule/descargas:/incoming Ruta donde almacena descargas completadas
~/docker/amule/temporal:/temp Ruta donde almacena descargas parciales/incompletas
restart: always Habilitamos que tras reiniciar la maquina anfitrion vuelva a cargar el servicio

NOTA: Se han a realizado cambios sobre los puertos TCP/UDP a nivel de configuración del docker-compose.yml que seran activados en el apartado FIX.

Una vez configurado, levantamos el servicio y lo detenemos para reconfigurarlo con unas mejoras:

docker compose up -d && docker compose down

⛑️ Bonus TIP: Fix

Entramos en la carpeta de configuración, borraremos los ficheros de filtrado IP que se hayan podido generar y editaremos la config:

cd $HOME/docker/amule/config && \
rm ipfilter* && \
nano amule.conf

Ahora debemos de buscar las siguientes variables (listadas las que recomiendo modificar):

Port=4662
UDPPort=4672
IPFilterURL=http://upd.emule-security.org/ipfilter.zip
Ed2kServersUrl=http://upd.emule-security.org/server.met

Y sustituirlas por las nuevas variables:

Port=41662
UDPPort=41672
IPFilterURL=http://emuling.gitlab.io/ipfilter.zip
Ed2kServersUrl=http://emuling.gitlab.io/server.met

Una vez configurado, guardamos el fichero de config, levantamos nuevamente el servicio para ser reconfigurado y sea ejecutado:

docker compose up -d

En mi caso, el servicio estaría disponible en la dirección web http://192.168.1.90:4711

NOTA: Importante abrir en router los puertos TCP 41662, UDP 41665 y 41672 para obtener ID ALTA.

Y listo!