Webserver
Contents
How to setup a Webserver with aMule 2.0.0rc1 and later
Previous notes
If you installed aMule via deb or RPM package, the webserver source is not included. Since some few files are needed from the sources to set-up aMuleWeb, please visit http://www.amule.org and download the tar.gz package for your aMule version.
Setting up aMuleWeb
- Untar the sources and copy src/aMule.tmpl and src/webserver/ into your ~/.aMule/ directory. The following (run from the sources directory), should do so:
- cp -r src/aMule.tmpl src/webserver/ ~/.aMule/
- Shutdown aMule if it is still running.
- Edit your ~/.eMule file:
- Locate the [ExternalConnect] section and change:
- AcceptExternalConnections=1 <-- To enable aMule listening for External Connections.
- ECUseTCPPort=1 <-- To use the TCP port. Very important since Unix sockets are disabled.
- Restart aMule
4) Go to your Preferences -> Remote Connection (in aMule):
- Enable your webserver
- Also setup your passwords here for [External Connections]] and webserver login
- When you change your ports for webserver and External Connections here make sure to restart aMule!!
5) After you are done, save your settings, go to console and type
- amuleweb
- Type in your password. This will startup your aMule webserver. If you changed your External Connections port to someting else start amuleweb with:
- amuleweb -p new_port
at the end it should look something like this:
Web Server: Started
amuleweb$
WSThread: Thread started
WSThread: created service
WSThread: created socket listening on :4711
6) To make sure it is working use your favorite browser to browse:
NOTE: This (port 4711) is the default port of your aMuleWeb. If you connect to 4712 this will not work since it is the External Connections port, so connecting here will result in error messages by aMule.
NOTE: Since aMule 2.0.0-rc6, aMuleWeb supports --quiet switch (or -q also) which renders allows aMuleWeb to be easily run on the background.
However, on previous aMule releases, although aMuleWeb works well, it's actually quite tricky to run it in the background because it's continuously asking for user commands and showing the prompt. The obvious way to avoid this would be running amuleweb with the output redirected to /dev/null, but this hogs the CPU due to the constant writing, so a better approach is to use the program screen, which is a terminal emulator. In order to run aMuleWeb inside a virtual terminal, the following command should be executed: screen -d -m -S amulewebsession amuleweb -p 7000 -pw password (assuming that aMule is listening for External Connections on port 7000 and the password is password). Then, aMuleWeb will start listening for HTTP connections, but will show the prompt and all messages in this virtual terminal. It's possible to switch to this terminal using the command screen -r amulewebsession, please refer to screen documentation for info about session switching, internal commands, etc.
For Problems or Questions just report on http://forum.amule.org forum or join IRC channel #amule at irc.freenode.net
How to setup a Webserver with aMule 1.2.8 or earlier
The following is based on the original instruction by BigBob. They guide you on how to modify aMule's configuration files to set aMuleWeb correctly. There is "Preferences"->"Remote Controls" now, but anyway, information is never a bad idea.
- Shutdown aMule to avoid overwritting config files while shutting down.
- Copy from aMule's sources (version 1.2.4 or later) the directory src/webserver/ into your ~/.aMule/webserver/ directory.
- Copy from aMule's sources (version 1.2.4 or later) the file src/aMule.tmpl into your ~/.aMule/aMule.tmpl directory.
- Open a terminal and type (you might have to install md5sum):
- echo -n "THEPASWORDYOUWANT" | md5sum | cut -d " " -f 1
This reply with an MD5 hash. Something like: 324f85f6095f9e5fe25b6c85af44b445
- Edit your ~/.eMule file, locate the [ExternalConnect] section in it and change this fields:
- AcceptExternalConnections=1 <- To enable aMule to listen for external connections.
- ECUseTCPPort=0 <- 0/1 (disable/enable) the use of a TCP port (if disabled use a Unix socket in your ~/.aMule/muleconn) for External Connections.
- ECPort=4712 <- Put here the port on which you want aMule to listen for External Connections.
- ECPassword=39e5049d0614baf21906500e2261d500 <- Put here the password for External Connections' authentications you generated before in terminal (something like 324f85f6095f9e5fe25b6c85af44b445).
- Edit your ~/.eMule file, locate the [WebServer] section in it and change fields:
- Password=324f85f6095f9e5fe25b6c85af44b445 <- Put here the password generated in term for the admin (full privileged users).
- PasswordLow=1db5a746266e941b3ef7dd3586863ca7 <- Put here the password generated in term for "low users" (low privileged users).
- Port=10000 <- Put the port you want aMuleWeb to listen on.
- Enabled=1 <- This option has been deprecated and is completly ignored now. Enabling External Connections will enable any application it connects to it, including aMuleWeb.
- UseGzip=1 <- Enable compression on communication.
- PageRefreshTime=120 <- Put here the web page refresh time (in seconds).
- UseLowRightsUser=0 <- 0/1 (disabled/enabled) "low user" access.
- Restart aMule.
- Now point your web browser to http://localhost:10000 (or whatever your host and ports are) and authenticate yourself with "Password" (for full privileged user) or "PasswordLow" (for low privileged user, if enabled).
- That's all :)
'NOTE: In latest aMule 1.2.x releases, the option WebTemplateFile allows to override the file template to use (thanks to Stefanero. You can set this option in the [eMule]] section. Example:
WebTemplateFile=eMule.tmpl
Shakraw