Setting up eAthena on Linux
Checking out and compiling
Start with checking out eAthena from our Subversion server on SourceForge and compiling it:
$ svn co https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/eathena/trunk eathena-tmw $ cd eathena-tmw $ make
There's probably lots of warnings while compiling, but you can just ignore that. Once this step is successful, let's grab the server-data
module from the same Subversion server. This is where we keep all the server side configuration, scripts and other data.
We'll check it out to a server-data
directory, but note that using $HOME/tmwserver
requires less editing of configuration files later, since this is the default.
$ cd .. $ svn co https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/server-data/branches/0.0 server-data $ cd server-data
Compile the eathena-monitor utility and copy over the server executables:
$ gcc -o eathena-monitor eathena-monitor.c $ cp -iv ../eathena-tmw/*-server .
Optional step. If you did not check out the server-data
in $HOME/tmwserver
you can add a symbolic link, so that it looks like you did check it out there:
$ cd $HOME $ ln -s path/to/were/you/put/server-data/ tmwserver
Configuration
Now we need to edit some configuration specific to our setup. First, if you did not check out out the server-data
to $HOME/tmwserver
, or have a symbolic link point there, you need to change these configurations:
- Edit eathena.sh and set
SRVHOMEDIR
to the location of your server-data checkout. Probably something like$HOME/.../server-data
.- You'll have to add
${SRVHOMEDIR}/conf/eathena-monitor.conf
as parameter to${SRVHOMEDIR}/eathena-monitor
ineathena_start()
.
- You'll have to add
- Edit
conf/eathena-monitor.conf
and adjust the paths according to theSRVHOMEDIR
you previously set ineathena.sh
These configurations you have to edit regardless of where you installed the server:
- Create a directory where server log files will be stored, usually just do
mkdir log
in the directory where your servers are located. - Go to the
server-data/conf
directory and make a copy of each file ending in.example
, removing that extension. These files are generally server-specific and we don't want changes made on the Subversion server to unexpectedly affect your local configuration. - Edit
login_athena.conf
and set a password for theladmin
tool atadmin_pass
, or disable remote administration. Also don't forget to set a game master password atgm_pass
. - Edit
char_athena.conf
and set a username and password to be used for inter-server communication atuserid
andpasswd
. You also may want to customize your server name atserver_name
.- Specify the IP address and, if you changed it, the port of the login server as seen from the host on which you run the character server at
login_ip
andlogin_port
. - Specify the IP address of the character server as seen from the clients connecting to your server at
char_ip
. This should usually be your internet IP address. - This file is also the place where you can change player starting location and equipment.
- Specify the IP address and, if you changed it, the port of the login server as seen from the host on which you run the character server at
- Edit
map_athena.conf
and set the same inter-server commucation username and password as you did inchar_athena.conf
.- Specify the IP address and, if you changed, the port of the character server as seen from the host on which you run the map server at
char_ip
andchar_port
. - Specify the IP address of the map server as seen from the clients connecting to your server at
map_ip
. - This is the file we currently use to activate new maps and NPCs.
- Specify the IP address and, if you changed, the port of the character server as seen from the host on which you run the map server at
- Edit
save/account.txt
and add the inter-server communication account that you set for the character and map servers under ID 0. This line will look something like0 s1 p1 2008-09-15 21:03:38.306 S 3 0 a@a.com 0 127.0.0.1 - 0
, where values are separated by tab characters (except for the space in the date), ands1
is the username andp1
is the password. - Feel free to browse any of the other configuration files to see what else you may want to change, but I'd recommend first making sure stuff works in the next step.
Specifying your own update host
When you want to provide your players with a different world from the official server, you need to set up your own update host. You can specify a different update host in conf/login_athena.conf
at update_host
. The client stores updates downloaded from the update host in an update-host specific directory, in order to avoid filename collisions.
TODO: Provide more information about the files that an update host needs to server.
Running your server
We have two convenient scripts that allow us to start and stop the server with single commands. The eathena-monitor
launches all servers and restarts them when they crash. The eathena.sh
shell script is used to start/stop the eathena-monitor
.
$ ./eathena.sh start $ ./eathena.sh restart $ ./eathena.sh stop
Note that there are also GM commands that allow you to restart for example the map server. This is preferred over using ./eathena.sh restart
. Also be sure to announce the restart to your players, since this doesn't happen automatically.
Connect with your client and create your first account to test if everything works fine.
Making yourself a GM
Specify your account ID as found in save/account.txt
(usually 2000000 for the first account) in conf/gm_account.txt
. The level 99 should be the highest. You can set up the GM commands in conf/atcommand_athena.conf
.