Amule-Adunanza su Docker

Ciao a tutti,
vorrei segnalare un piccolo progetto che abbiamo messo su insieme ad un amico.

Abbiamo caricato i pacchetti di Amule-Adunanza su un Docker con base Debian Jessie per facilitare il deploy dell’applicazione su varie macchine.
Il pacchetto presenta già le patch che consigliate nelle pagine del forum, dentro il readme trovate tutto.

https://hub.docker.com/r/m4dfry/amule-adunanza/

5 Mi Piace

Se prevedete di mantenere il progetto lo aggiungo tra le guide di amule adunanza sul menù in alto :arrow_up:

Si, certo.
Noi lo utilizziamo giornalmente sulle nostre macchine, al momento non prevediamo altri sviluppi in quando l’immagine sembra stabile (siamo sulle 150ore di uptime senza problemi).

Se qualcuno dovesse avere problemi posso fornire assistenza e nel caso arrotondare un pò la configurazione se qualcuno ha necessità particolari o proposte.

3 Mi Piace

Interessante. Quando ho un po’ di tempo lo testo, avendo masticato un pochino di docker insieme a @CoGe.

Immagino abbiate usato una debian minimal, per evitare spreco di risorse?

Posso solo aggiungere che i 2 fix delle guide per linux e mac non dovrebbero essere più necessari (il condizionale è d’obbligo, in quanto la quantità di versioni e tipologie di installazione sono molte…)

1 Mi Piace

Si, ho deciso di utilizzare la debian slim perchè non volevo troppi grattacapi con i pacchetti già compilati e nel frattempo volevo mantenere la dimensione più contenuta possibile (44mb sono un buon risultato).

Al momento la decisione di incastrare i .deb direttamente su github non è felice; per fare un buon lavoro bisognerebbe ricompilare dai sorgenti, per questo abbiamo inserito nel readme gli MD5 così chiunque ne abbia voglia può clonarsi il repo e controllare la bontà di cosa va a installare.

2 Mi Piace

Potete compilare voi stessi e poi inserire nel docker ci sono un sacco di guide a riguardo nel menù in alto, o comunque se serve una mano siamo qui

Un piccolo richieste d’aiuto. Io ho caricato amule su docker ieri, e non ho tenuto fortuna. Dopo i passi normali “docker pull m4dfry/amule-adunanza”. Al tempi di “docker run --net=host --volume “:/config” --volume “:/finished” --volume “:/incomplete” m4dfry/amule-adunanza” ho recevuto un messagio di “buffer overflow detected” con un enorme backtrace… Cosa fare? suggestioni?

Mio server:
Linux denken 4.9.30-opteron4274hev001a #2 SMP Sun Aug 6 21:50:35 -03 2017 x86_64 GNU/Linux

Distributor ID: Debian
Description: Debian GNU/Linux 9.7 (stretch)
Release: 9.7
Codename: stretch

Docker version
Client:
Version: 18.09.1
API version: 1.39
Go version: go1.10.6
Git commit: 4c52b90
Built: Wed Jan 9 19:35:59 2019
OS/Arch: linux/amd64
Experimental: false

Server: Docker Engine - Community
Engine:
Version: 18.09.1
API version: 1.39 (minimum version 1.12)
Go version: go1.10.6
Git commit: 4c52b90
Built: Wed Jan 9 19:02:44 2019
OS/Arch: linux/amd64
Experimental: false

Ciao,
ho installato il container per docker ma vorrei capire ora come utilizzarlo.
Mi potreste spiegare come faccio per scaricare?
Grazie mille
Cristian

Ciao, una volta avviato il docker il procedimento da seguire è quello classico come se stessi utilizzando il demone amuled.

Devi inserire nel file di config porta, user e password per collegarti con il tuo client al demone remoto.
Per tutti i parametri necessari ti consiglio di seguire questa guida:
http://guide.debianizzati.org/index.php/AMule#Utilizzo_e_configurazione:_versione_demone

Scusami, mi sono perso la notifica, hai risolto ?

@m4dfry volevo farti i complimenti, ho guardato il sorgente del docker e dal punto di vista di un niubbo come me :innocent:, hai fatto un bel lavoro!

Mi servirebbe proprio un ABC…

Ho fatto una rapida ricerca su google per capire cos’è il docker…
Ho Ubuntu 20.04, ripercorro i passi fatti:

ho installato “Docker container runtime” (da GUI, è già presente in Ubuntu software)

A questo punto provando a lanciare docker vengono richiesti i privilegi da amministratore.
Per usare docker senza dare sudo, ho fatto così
Ossia: ho aperto il terminale e inserito:

sudo groupadd docker
sudo usermod -aG docker ${USER}

A questo punto, al contrario di quanto dice il sito linkato, per me non è stato sufficiente fare log out e login, ho dovuto fare un reboot per andare avanti

ancora da terminale:

docker pull m4dfry/amule-adunanza

Una serie di righe di risposta:

Using default tag: latest
latest: Pulling from m4dfry/amule-adunanza
b5161f7f1772: Pull complete 
75b8ccb4341e: Pull complete 
[...]
5805d2de4289: Pull complete 
Digest: sha256:6971f2589532f05b1f73b7fb592fe36603db98225b1aa7ea0449a35ee627bfc7
Status: Downloaded newer image for m4dfry/amule-adunanza:latest

A questo punto ho inserito la sequenza di comandi

docker run \
--net=host \
--volume "<your config folder>:/config" \
--volume "<where to put your finished files>:/finished" \
--volume "<where to keep your incomplete files>:/incomplete" \
m4dfry/amule-adunanza

in cui tipicamente è la cartella di amule nella mia home, sono richiesti percorsi assoluti, quindi qualcosa come /home/USERNAME/.aMule
analogo il discorso per indicare le due cartelle successive, rispettivamente tipicamente incoming e Temp.

(@m4dfry è la copia delle tue istruzioni, tranne che ho dovuto rimuovere uno spazio alla fine della riga --net=host \ )

Ho installato su un altro computer ho installato amuleGui.exe dai link trovati qui (non ho trovato differenze tra 2.3.1 e 2.4.0 per Windows)

image

l’IP è quello del computer con installato amuled, la porta è quella standard
la password:
nel file amule.conf c’è una riga tipo:
ECPassword=ef95892a12b8d0ic…
la password va sostitituita con l’hash della password scelta, che si calcola dal terminale, esempio:
password: scatola
calcolo hash:
$ echo -n scatola | md5sum | cut -d ' ' -f 1
risposta:
44f6daaa298c9e00b1688b2705ca4e71

quindi, nel file amule.conf, alla riga con ECPassword va sostituito l’hash:

ECPassword=44f6daaa298c9e00b1688b2705ca4e71

In teoria funziona tutto, in pratica qualcosa poterebbe essere andato storto:
per far funzionare tutto ho inserito una decina di volte il comando iniziale (docker run … -adunanza),
inserendo

docker ps -a

mi sono trovato tutte le istanze una sopra l’altra con nomi random, per eliminarle:

docker rm nome1 nome2 nome3

se volete che il docker abbia sempre lo stesso nome (ad esempio muletto), nel comando iniziale va aggiunta la riga --name muletto\
in tal caso per avviare e arrestare il docker:
docker start muletto
docker stop muletto
altrimenti dovrete usare il nome random che docker gli ha dato

firewalled
per qualche motivo il mio router fastweb non mi permette di aprire le stesse porte per due IP diversi
ho risolto cambiando le porte standard nel file amule.conf per poterle aprire

@nikio
non ho capito: cosa tenti di ottenere?
Docker serve a pacchettizzare il software isolandolo dal sistema operativo. Si usa sui server di solito.

La tua risposta mi fa pensare che forse ho preso un granchio…
M’è parso di capire che il docker è un po’ meno di una VM, tipo un pacchetto snap o flatpack…
un modo contenere il sw in un ambiente in cui ha tutto quello che gli serve per girare isolato dal sistema e quindi bypassa il problema di avere un sw compilato appositamente per il mio sistema
(il tutto perché ho installato un Ubuntu 20.04 su cui non riesco a mettere in piedi il mulo)

definizione più o meno giusta fin qua, il fatto è che fa girare applicazioni senza la GUI quindi potresti per esempio mettere sotto DOC e il demone di aMule e poi usare la GUI via Web per controllarlo, che è proprio quello per cui abbiamo il pacchetto docker.

Ma la cosa veramente importante è che installare aMule deve essere facile quindi sarebbe meglio agire sulle guide o le istruzioni per renderla più facile :old_rosso:, invece di cercare altri sistemi più complessi di installazione.

1 Mi Piace

Ciao, scusate il ritardo nella risposta, la tecnologia mi sta remando contro ultimamente :slight_smile:

Per rispondere a @nikio: quando nella guida dice di eseguire il comando

amuled

è perchè localmente ti serve un’installazione dell’interfaccia grafica mentre il docker contiene solamente il demone che gestisce download/upload.

Quando dici che ci sono problemi per l’installazione su Ubuntu 20.04 immagino tu ti stia riferendo alla monolitica come avete discusso nel thread Installazione Amule Adunanza - da Ubuntu 16.10 a 17.10 & derivate

In realtà hai delle alternative per ottenere una GUI che si possa agganciare al tuo demone e le puoi trovare in questa pagina amule-adunanza-tutte-le-gui-e-oltre.

Detto questo la soluzione docker è pensata, come dice @Hammon per macchine headless (senza schermo e tastiera) quindi andresti a crearti uno accrocchio un pò strano, ma se hai la necessità di farla funzionare subito, non ci vedo nulla di male.

1 Mi Piace

Esatto, subito, per sempre e ovunque! E’ perfetto :smiley:! Beh, tranne che non ci riesco :confused:

@Hammon, @m4dfry
Mettetevi nei miei panni: sono informaticamente alfabetizzato, ma tutt’altro che istruito: posso seguire una procedura ma non correggerla. Per me make, build, compilare… è tutto un po’ uguale, sono tutte cose che conosco perlopiù per sentito dire, ma ho provato a mettere in piedi un pezzo alla volta: prima attivo il demone, poi l’interfaccia, poi magari anche l’interfaccia da un altro computer.
Per ora non riesco nemmeno ad avviare il demone (ho provato anche varie combinazioni tipo

$ amuled
$ docker amuled

e un paio di altre che non ricordo più)

D’accordo! Ma c’è anche la necessità di raggiungere tutti gli utenti (che hanno un variegato arsenale di sistemi operativi, ciascuno con varie generazioni e distribuzioni). Per voi dev’essere un incubo. Se come team riuscite a seguire 2 o 3 versioni del SW, mi preoccuperei che almeno una sia tecnicamente utilizabile per tutti (anche se complessa) e le altre che soddisfino le maggioranze: monoblocco per Windows, e magari Apple?

Con il mio post stavo cercando proprio di tenere traccia della procedura passo-passo in modo che (un po’ migliorata) possa essere replicata da un profano.

Allora, il mio punto di partenza è che voglio riesumare il muletto, originariamente windows 7 (che non voglio più esporre alla rete) quindi ora è dual boot con Ubuntu 20.04 (è stata un’odssea, non vorrei reinstallare la 18.04 perché per quella Amule c’è).
Da quanto leggo in questo forum, l’unica soluzione stabile su Linux è amuled… e amuled sia! All’interfaccia penserò poi.

Intendevo procedere tenendo aggiornato il post con la procedura seguita così rimane lo scheletro di una guida (o magari può diventare uno script).

Per avviare il docker container devi utilizzare il comando docker run .. che trovi nel readme di dockerhub nel capitolo Command line.

Comunque in generale trovi tutte le informazioni su come è stato creato e sul funzionamento in quel README.

Dopo averlo avviato con docker ps -a puoi visualizzare se sta funzionando correttamente.

qualcosa è andato storto, qualcosa ha funzionato:
mi ha avvisato che le cartelle a cui puntavo esistevano già, (credevo di fargli un favore)
mi ha rimproverato che stavo eseguendo aMuleAdunanza come root, che non è bene,
La parte preoccupante: buffer overflow detected seguito da uno sproloquio incomprensibile
[EDIT]Problema eliminato, nei comandi originali c’era uno spazio a fine riga che interrompeva la sequenza
Poi tante cose che sembrano aver funzionato
ho tentato il login dal un altro computer ma mi dà password sbagliata,
image

nel terminale linux trovo:

2020-05-11 14:25:32: New external connection accepted
 2020-05-11 14:25:32: Connecting client: amule-remote 0x0001
 2020-05-11 14:25:32: Authentication failed: wrong password.
 2020-05-11 14:25:32: Sent error message "Authentication failed: wrong password." to client.
 2020-05-11 14:25:32: Unauthorized access attempt from 192.168.1.138. Connection closed.
 2020-05-11 14:25:32: External connection closed.
!2020-05-11 14:26:28: Connected to Kad (ok)

[EDIT] problema eliminato, non avevo capito la questione password-hash

A quanto pare sono riuscito a far girare amuled su ubuntu 20.04,
ho aggiornato il mio primo post in questo thread per tenere traccia dei passaggi.
Spero che possa essere utile ad eventuali altri principianti che volessero imbarcarsi nell’impresa.
@m4dfry e a chiunque si intenda di Linux/docker/amuled… gli dareste una una letta per correzioni, opinioni o suggerimenti?

1 Mi Piace