Difference between revisions of "AMule"

From ArchWiki
Jump to: navigation, search
m (/etc/password?)
m (See also: fix broken url)
 
(16 intermediate revisions by 9 users not shown)
Line 1: Line 1:
[[Category:Internet Applications]]
+
{{Lowercase title}}
 +
[[Category:Internet applications]]
 +
[[ja:AMule]]
 
[[zh-CN:AMule]]
 
[[zh-CN:AMule]]
{{Lowercase title}}
 
 
 
aMule is an eMule-like client for the eD2k and Kademlia networks, supporting multiple platforms.
 
aMule is an eMule-like client for the eD2k and Kademlia networks, supporting multiple platforms.
  
==Installation==
+
== Installation ==
 +
 
 
aMule can be installed with package {{Pkg|amule}}, available in the [[official repositories]].
 
aMule can be installed with package {{Pkg|amule}}, available in the [[official repositories]].
  
'''amuled''' is a full featured aMule daemon, running without any user interface (GUI). It is controlled by remote access through aMuleGUI (GTK), aMuleWeb, or aMuleCmd.
+
{{ic|amuled}} is a full featured aMule daemon, running without any user interface (GUI). It is controlled by remote access through aMuleGUI (GTK+), aMuleWeb, or aMuleCmd.
  
==Configuration==
+
== Services ==
===amuled===
+
====Create configuration files====
+
First we need to create a user for executing amule daemon:
+
# useradd -m -d /srv/amule -s /bin/bash amule
+
  
Then we start a shell for the new user {{ic|amule}} and run {{ic|amuled}} once to create the configuration files:
+
The package provides two ''systemd'' [[daemon|services]]: {{ic|amuled}} and {{ic|amuleweb}}. First you need to [[#Configuration|configure]] it. You need to provide passwords for external connection and admin password for {{ic|amuleweb}}. Start {{ic|amuled}} service and {{ic|amuleweb}} if you require it. Enable them to start aMule every boot.
# su amule
+
$ amuled --ec-config
+
  
Now amuled will ask you for a temporary password, enter something (amule for example, this does not matter), and use Ctrl-C to terminate amuled.
+
Once {{ic|amulweb}} service is started, it is available at {{ic|http://127.0.0.1:4711}} (or with external address of your host).
  
====Edit configuration files====
+
== Configuration ==
Now we need to configure amuled properly.
+
First, we need to set up a password for the external connection of amuled.
+
$ echo -n <your password here> | md5sum | cut -d ' ' -f 1
+
  
The output of the above command is the encrypted password. Now you edit the config file by adding following lines under section [ExternalConnect]:
+
At package installation time a new user account '''amule''' created. This account is used to run ''systemd'' services.
{{hc|1=/srv/amule/.aMule/amule.conf|2=
+
AcceptExternalConnections=1
+
ECPassword=<encrypted password>
+
}}
+
  
====Create daemon====
+
All configuration and temporary files are kept in amule home directory {{ic|/var/lib/amule}} among them:
{{Note|It is probably better to include these configuration files by default with amule package, like it is done with transmission.}}
+
* config file for amuled {{ic|/var/lib/amule/.aMule/amule.conf}}
 +
* config file for amuleweb {{ic|/var/lib/amule/.aMule/remote.conf}}
  
To make amuled run on system start, we need to create the daemon /etc/rc.d/amuled:
+
At the package instalation time ''pacman'' generates a simple {{ic|amule.conf}} file with preset external connection password. The same password is used for ''amuleweb'' config file. One can use the password for connecting amule from other remote clients such as ''amule-gui''.
  
  # touch /etc/rc.d/amuled
+
To generate password, run:
 +
  $ echo -n ''your password here'' | md5sum | cut -d ' ' -f 1
  
Then copy the following to the file:
+
The output of the above command is the encrypted password. Now you edit the config file by adding following lines under section {{ic|[ExternalConnect]}}:
 +
{{hc|1=/var/lib/amule/.aMule/amule.conf|2=
 +
[ExternalConnect]
 +
AcceptExternalConnections=1
 +
ECPassword=<encrypted password>
 +
}}
  
{{bc|<nowiki>
+
Do not forget that all files under {{ic|/var/lib/amule}} should be owned by '''amule''' user.
#!/bin/bash
+
# chown amule:amule -R /var/lib/amule
DAEMON=amuled
+
USER=amule
+
  
. /etc/rc.conf
+
== amuleweb ==
. /etc/rc.d/functions
+
  
case "$1" in
+
{{Note|''amuleweb'' provides much less features than ''amulegui'' (and displays much less info on downloads), and it has to ask for password quite often (unless your browser could save it). It is therefore advisable to use amulegui instead (which starts up very fast as well), and if you decide to do so, you could skip this step.}}
start)
+
  stat_busy "Starting $DAEMON"
+
  su "$USER" -l -s /bin/sh -c "$(printf "%q -f>/dev/null" "/usr/bin/amuled" )"
+
  if [ $? = 0 ]; then
+
    add_daemon $DAEMON
+
    stat_done
+
  else
+
    stat_fail
+
    exit 1
+
  fi
+
  ;;
+
stop)
+
  stat_busy "Stopping $DAEMON"
+
  killall --quiet --ignore-case "/usr/bin/amuled"
+
  if [ $? = 0 ]; then
+
    rm_daemon $DAEMON
+
    stat_done
+
  else
+
    stat_fail
+
    exit 1
+
  fi
+
  ;;
+
restart|force-reload)
+
  $0 stop
+
  sleep 4 #1 is not enough
+
  $0 start
+
  ;;
+
*)
+
  printf "Usage: %q {start|stop|restart|force-reload}\n" "$0" >&2
+
  exit 1
+
  ;;
+
esac
+
  
exit 0
+
=== Create configuration files ===
</nowiki>}}
+
  
Make it executable:
+
Start ''amuleweb'' too using the user you just created to create the configuration file:
  # chmod 755 /etc/rc.d/amuled
+
  $ sudo -u amule amuleweb --write-config --password=''password here'' --admin-pass=''web password here''
  
Add it to your {{ic|/etc/rc.conf}}, so it will be autostarted.
+
Note that here, the ''password here'' is the unencrypted password you used to configure amuled. ''web password here'' is the unencrypted for the log in on the web interface. This command will write configuration file as such.
DAEMONS=( ... network '''amuled''' ... )
+
  
===amuleweb===
+
{{Tip|If the default URL for nodes.dat for Kad network does not work, you can get URL from there: [http://nodes-dat.com]}}
{{Note|amuleweb provides much less features than amulegui (and displays much less info on downloads), and it has to ask for password quite often (unless your browser could save it). It is therefore advisable to use amulegui instead (which starts up very fast as well), and if you decide to do so, you could skip this step.}}
+
====Create configuration files====
+
Start amuleweb too using the user you just created to create the configuration file:
+
$ amuleweb --write-config --password=''<password here>'' --admin-pass=<web password here>
+
  
Note that here, the <password here> is the unencrypted password you used to configure amuled. <web password here> is the unencrypted for the log in on the web interface. This command will write configuration file as such.
+
== amulegui ==
  
====Create daemon====
+
Amulegui is a GTK+ interface for aMule.
{{Out of date|does the package still lack daemon?}}
+
 
+
Create the daemon {{ic|/etc/rc.d/amuleweb}}:
+
 
+
# touch /etc/rc.d/amuleweb
+
 
+
Copy the following to the file.
+
 
+
{{bc|<nowiki>
+
#!/bin/bash
+
DAEMON=amuleweb
+
USER=amule
+
 
+
. /etc/rc.conf
+
. /etc/rc.d/functions
+
 
+
case "$1" in
+
start)
+
  stat_busy "Starting $DAEMON"
+
  su "$USER" -l -s /bin/sh -c "$(printf "%q --quiet &" "/usr/bin/amuleweb" )"
+
  if [ $? = 0 ]; then
+
    add_daemon $DAEMON
+
    stat_done
+
  else
+
    stat_fail
+
    exit 1
+
  fi
+
  ;;
+
stop)
+
  stat_busy "Stopping $DAEMON"
+
  killall --quiet --ignore-case "/usr/bin/amuleweb"
+
  if [ $? = 0 ]; then
+
    rm_daemon $DAEMON
+
    stat_done
+
  else
+
    stat_fail
+
    exit 1
+
  fi
+
  ;;
+
restart|force-reload)
+
  $0 stop
+
  sleep 1
+
  $0 start
+
  ;;
+
*)
+
  printf "Usage: %q {start|stop|restart|force-reload}\n" "$0" >&2
+
  exit 1
+
  ;;
+
esac
+
 
+
exit 0
+
</nowiki>}}
+
 
+
Make it executable:
+
# chmod 755 /etc/rc.d/amuleweb
+
 
+
Also add it to your {{ic|/etc/rc.conf}}, so it will be autostarted.
+
DAEMONS=( ... network amuled '''amuleweb''' ... )
+
 
+
{{Note|Whichever way you are starting amuleweb, make sure this is done after amuled is up and running, or amuleweb could crash. If this happened, you can't use `rc.d stop` since process is no longer present, so instead just use `rc.d start` again.}}
+
 
+
{{Note|Do not forget to set amule's shell to '''/bin/false''' as we do not want to give it shell access to the machine. Edit {{ic|/etc/passwd}} and replace '''/bin/bash''' by '''/bin/false''' for user amule:
+
amule:x:1001:1001::/srv/amule:/bin/false
+
}}
+
  
==Usage==
+
=== Configuring notifications ===
You can start the daemons with:
+
# rc.d start amuled
+
# rc.d start amuleweb
+
  
Now you can run `amulegui`, use `amulecmd` or connect to amuleweb at http://127.0.0.1:4711 (or with external address of your host).
+
Some automatic actions settings are avaible through Settings → Events. The core command ''notify-send'' (requires {{pkg|libnotify}}) is useful to set notifications, using some amule variables. In example, set the ''core command'' in the section ''Download completed'' for a notification when a download is complete:
 +
notify-send -i amule "%NAME completed (%SIZE bytes)"
 +
The option "-i amule" includes the amule icon (a custom file may be specified adding its path between apostrophes, instead of "amule" icon filename).
  
{{Tip|If the default URL for nodes.dat for Kad network does not work, you can get URL from there: http://nodes-dat.com}}
+
== See also ==
  
For further info on using the program, continue to [http://wiki.amule.org/index.php/Getting_Started Getting_Started at aMule wiki].
+
* [http://wiki.amule.org/wiki/Getting_Started Getting_Started at aMule wiki].

Latest revision as of 05:28, 23 September 2015

aMule is an eMule-like client for the eD2k and Kademlia networks, supporting multiple platforms.

Installation

aMule can be installed with package amule, available in the official repositories.

amuled is a full featured aMule daemon, running without any user interface (GUI). It is controlled by remote access through aMuleGUI (GTK+), aMuleWeb, or aMuleCmd.

Services

The package provides two systemd services: amuled and amuleweb. First you need to configure it. You need to provide passwords for external connection and admin password for amuleweb. Start amuled service and amuleweb if you require it. Enable them to start aMule every boot.

Once amulweb service is started, it is available at http://127.0.0.1:4711 (or with external address of your host).

Configuration

At package installation time a new user account amule created. This account is used to run systemd services.

All configuration and temporary files are kept in amule home directory /var/lib/amule among them:

  • config file for amuled /var/lib/amule/.aMule/amule.conf
  • config file for amuleweb /var/lib/amule/.aMule/remote.conf

At the package instalation time pacman generates a simple amule.conf file with preset external connection password. The same password is used for amuleweb config file. One can use the password for connecting amule from other remote clients such as amule-gui.

To generate password, run:

$ echo -n your password here | md5sum | cut -d ' ' -f 1

The output of the above command is the encrypted password. Now you edit the config file by adding following lines under section [ExternalConnect]:

/var/lib/amule/.aMule/amule.conf
[ExternalConnect]
AcceptExternalConnections=1
ECPassword=<encrypted password>

Do not forget that all files under /var/lib/amule should be owned by amule user.

# chown amule:amule -R /var/lib/amule

amuleweb

Note: amuleweb provides much less features than amulegui (and displays much less info on downloads), and it has to ask for password quite often (unless your browser could save it). It is therefore advisable to use amulegui instead (which starts up very fast as well), and if you decide to do so, you could skip this step.

Create configuration files

Start amuleweb too using the user you just created to create the configuration file:

$ sudo -u amule amuleweb --write-config --password=password here --admin-pass=web password here

Note that here, the password here is the unencrypted password you used to configure amuled. web password here is the unencrypted for the log in on the web interface. This command will write configuration file as such.

Tip: If the default URL for nodes.dat for Kad network does not work, you can get URL from there: [1]

amulegui

Amulegui is a GTK+ interface for aMule.

Configuring notifications

Some automatic actions settings are avaible through Settings → Events. The core command notify-send (requires libnotify) is useful to set notifications, using some amule variables. In example, set the core command in the section Download completed for a notification when a download is complete:

notify-send -i amule "%NAME completed (%SIZE bytes)"

The option "-i amule" includes the amule icon (a custom file may be specified adding its path between apostrophes, instead of "amule" icon filename).

See also