Difference between revisions of "New Users Guide"

From EVEmu Wiki
Jump to navigation Jump to search
m
(Correct steps and handle the fact lastest version of BluePatcher doesnt work for 360229)
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
== Introduction ==
 
== Introduction ==
Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]].
+
Welcome to EVEmu! This guide will help you go through the steps of setting up a Linux system to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]].
  
== Setting up your VPS ==
+
While it is possible to run EVEmu under Docker for Windows, it is not recommended.
 +
 
 +
'''Linux is the only OS which is supported / maintained by the development team.'''
 +
 
 +
==Setting up your VPS==
 
For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions.  
 
For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions.  
  
==== <u>Getting your VPS</u> ====
+
Please see this page on setting up your VPS: [[VPS Setup Guide]]
Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server.
+
 
 +
==Preparing and Launching your EVEmu Server with Docker (RECOMMENDED)==
 +
 
 +
====Setting up your system for EVEmu====
 +
Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process.
 +
 
 +
To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs.
 +
 
 +
To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete.  
 +
 
 +
Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose.
 +
 
 +
This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server.  
 +
 
 +
You can install it by running <code>sudo apt install -y docker-compose</code> .  
 +
 
 +
Once this is done you are real close to being ready to launch the server. All thats left is to get the files.  
  
====== '''<u>Popular Providers</u>''' ======
+
Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>.
  
* [https://aws.amazon.com/ Amazon Web Services (AWS)]
+
This will put you within the server directory.
* [https://www.linode.com/ Linode]
 
* [https://www.digitalocean.com/products/droplets/ Digital Ocean]
 
* [https://www.hetzner.com/cloud Hetzner]
 
  
Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis.
+
====Launching the EVEmu Server====
 +
You are really close to being able to launch EVEmu. Actually you're on the last step.  
  
==== <u>Logging into your VPS</u> ====
+
First, inspect the <code>docker-compose.yml</code> file. There are a few things that can be changed here which may help with customising your installation.
All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs.
 
  
===== Windows =====
+
This environment variable will enable the use of gdb within the container for debugging purposes.
To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method.
+
      - RUN_WITH_GDB=FALSE #Set to TRUE to run evemu with gdb automatically
  
====== '''Password Login''' ======
+
Additionally, you can configure the automatic seeding of market data using the following environment variables:
If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter.  Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance.
+
      - SEED_MARKET=FALSE # Set to TRUE to seed the market when the server starts for the first time
 +
      - SEED_SATURATION=80 # Set saturation level of seed
 +
      - SEED_REGIONS=Derelik,The Citadel,The Forge # Define regions to be seeded
  
====== Key Based Login ======
+
To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>.  
If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds.
 
  
===== Linux =====
+
Configuration will be stored within the evemu_config volume. To make changes to eve-server.xml, you must go to this volume location and modify it there.
To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go.
 
  
== Preparing and Launching your EVEmu Server (Docker) ==
+
A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container.
  
==== Setting up your VPS for EVEmu ====
+
This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in.  
Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from  the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory.
 
  
==== Launching the EVEmu Server ====
+
This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running.  
You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server.
 
=='''Preparing and Launching your EVEmu Server (Source)'''==
 
  
==== '''Server Compilation''' ====
+
If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server.
   sudo apt-get update && sudo apt-get upgrade
+
 
  sudo apt-get install build-essential g++ cmake git
+
==Preparing and Launching your EVEmu Server Manually (NOT RECOMMENDED)==
  sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql
+
 
  sudo apt-get install zlib1g-dev zlib1g-dbg
+
==== Server Compilation====
  sudo apt-get install libboost1.54
+
We have confirmed both Fedora 33 and Ubuntu 20.04 LTS work for installing EVEmu from source. The Docker image is based upon Fedora 33 so this will what the code is tested against.
 
+
 
 +
===== Installing Prerequisites on Fedora =====
 +
  dnf groupinstall -y "Development Tools" && dnf install -y cmake git zlib-devel mariadb-devel boost-devel tinyxml-devel utf8cpp-devel mariadb shadow-utils gdb
 +
 
 +
===== Installing Prerequisites on Ubuntu =====
 +
   sudo apt-get update && sudo apt upgrade && sudo apt install build-essential g++ cmake git libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql zlib1g-dev zlib1g-dbg libboost1.54
 +
 
 +
===== Compilation =====
 
   git clone https://github.com/EvEmu-Project/evemu_Crucible
 
   git clone https://github.com/EvEmu-Project/evemu_Crucible
 
   cd evemu_Crucible
 
   cd evemu_Crucible
Line 56: Line 77:
 
   make install
 
   make install
  
==== '''Database Setup''' ====
+
====Database Setup====
 
'''NOTE:'''
 
'''NOTE:'''
 
*''%devRoot%'' is where the development files are located.
 
*''%devRoot%'' is where the development files are located.
 
*These may be the same location but that is not necessary.
 
*These may be the same location but that is not necessary.
 
#Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/'''
 
#Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/'''
#Install and setup your database software, for EVEmu we use MariaDB
+
# Install and setup your database software, for EVEmu we use MariaDB
 +
 
 +
  For Fedora:
 +
  sudo dnf install -y mariadb-server
 +
  sudo systemctl enable --now mariadb
 +
  sudo mysql_secure_installation
 +
 
 +
  For Ubuntu:
 
   sudo apt-get install mariadb-server
 
   sudo apt-get install mariadb-server
 
   sudo mysql_secure_installation
 
   sudo mysql_secure_installation
# Open your MySQL shell and input the following:
+
# Open your MySQL shell via <code>mysql -u root -p</code>  and input the following:
 +
##Note: This will prompt you for the password you set in the Previous Step
 
   create database evemu;
 
   create database evemu;
 
   GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD';
 
   GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD';
#In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows
+
#In the same SQL directory, run '''./get_evedbtool.sh'''. This will download the latest version of EVEDBTool to your system. If you are using a non-x86_64 architecture, you may build this tool from source. The tool is written completely in Golang so can be built on most systems such as x86_64 and aarch64. Source is available here: https://github.com/evemu-project/evedbtool
#Optionally you can seed the market by running these SQL queries:
+
# Now run '''./evedbtool'''. This will cause the tool to generate a new '''evedb.yaml''' file in the current directory.
   use evemu;
+
'''Layout of evedb.yaml'''
   source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql;
+
 
  source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql;
+
  base-dir: base
  source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql;
+
  db-database: evemu
 +
  db-host: 127.0.0.1
 +
  db-pass: evemu
 +
  db-port: "3306"
 +
  db-user: evemu
 +
  log-level: Info
 +
  migrations-dir: migrations
 +
  seed-regions:
 +
  - Derelik
 +
  seed-saturation: 80
 +
Edit this file to contain your database credentials. Optionally, you can also add regions you wish to seed with market orders and the saturation of which to do so.
 +
 
 +
'''Installing the Tables:'''
 +
 
 +
# Run '''./evedbtool install''' to install the base database and all of the latest migrations. (when updating EVEmu, you'll need to do '''./evedbtool up''' to apply any migrations)
 +
# Optional: Run '''./evedbtool seed''' to seed the market with orders to regions you configured in evedb.yaml.
 +
 
 +
==== Final Steps: ====
 +
Open eve-server.xml which if you did everything right, should be in '''build/dist/etc.'''
 +
 
 +
Additionally, make sure '''log.ini''' is also available in '''build/dist/etc'''
 +
 
 +
Scroll towards the bottom of the file, to the database connection info, change to settings to match your database credentials.
 +
 
 +
    <database>
 +
        <host>db</host><!--  must be 'localhost' for socket connection -->
 +
        <username>evemu</username>
 +
        <password>evemu</password>
 +
        <db>evemu</db>
 +
        <port>3306</port><!-- 3306 default -->
 +
        <ssl>false</ssl><!-- bool   enable ssl for db connection (NOTE: NOT coded. DO NOT USE) -not needed when using socket under linux-->
 +
        <compress>false</compress><!-- bool  compressed protocol for client server communication - not sure if needed. -->
 +
        <useSocket>false</useSocket><!-- bool  use socket connection instead of port (MUST be local)  (SIGPIPE hits on debug code) -->
 +
        <autoReconnect>true</autoReconnect><!-- bool  enable auto Reconnect on lost connection -->
 +
        <dbTimeout>2</dbTimeout><!-- seconds  timeout value for db response, in seconds  default: 2s  **NOT USED** -->
 +
        <pingTime>10</pingTime><!-- minutes  ping db every x minutes  default: 10m  **NOT USED**  hard-coded to 10m -->
 +
    </database>
 +
 
 +
Next, create the following directories:
 +
 
 +
  build/dist/logs
 +
   build/dist/image_cache
 +
  build/dist/server_cache
 +
 
 +
These directories can optionally be defined in '''eve-server.xml''' here:
 +
    <files>
 +
        <logDir>../logs/</logDir>
 +
        <logSettings>../etc/log.ini</logSettings>
 +
        <cacheDir>../server_cache/</cacheDir>
 +
        <imageDir>../image_cache/</imageDir>
 +
    </files>
  
==== '''Final Steps:''' ====
+
Now, configure your image server (must be accessible to clients). If you do not do this, player images, corporation images, and alliance images '''will not''' be uploaded.
#Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc
+
 
#Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it.
+
    <net>
#Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files.
+
        <port>26000</port>
 +
        <imageServer>127.0.0.1</imageServer>
 +
        <imageServerPort>26001</imageServerPort>
 +
    </net>
 +
 
 +
#To finally run your EVEmu server, navigate to the '''build/dist/bin''' folder and run the eve-server executable.
  
#To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable.
 
 
   ./eve-server
 
   ./eve-server
 +
 
If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server.
 
If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server.
  
== Client Setup ==
+
==Client Setup==
'''Get the Client [https://files.evemu.dev/cruc/client/ here]'''
+
'''You must have EVE Online Client 360229 to connect to the server. Access to this client is not provided by the EVEmu Project. <u>Do not ask.</u>'''
  
Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured.
+
In order to patch the client and connect to the server, perform the following:
  
'''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here] '''and follow the instructions in README.md.
+
(You must have <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> in the same directory.)
  
Your client is now ready to run.
+
#Double click the <code>EVE_Online_Installer_360229.exe</code> file
 +
# Go through the setup, This will take a few minutes to complete.
 +
#Once this is done '''Uncheck the "Run Eve Online" box on the final screen.'''
 +
##Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server.
 +
 
 +
'''Get a copy of the blue patcher [https://github.com/stschake/blue_patcher here] (this is an external GitHub repository not affiliated with the EVEmu Project)'''
 +
 
 +
#Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code>
 +
#Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator'''
 +
#Click '''yes''' on the prompt.
 +
#Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch'''
 +
## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code>
 +
##Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop.
 +
##Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself.
 +
##Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one.
 +
##Your <code>blue.dll</code> should now be patched. If that doesn't work you may have downloaded a patch for a newer version. Try downloading the specific exe for 360229 [https://github.com/stschake/blue_patcher/blob/f16ba3ceb3c439fd42f5b3fe0abf241ca60828bc/blue_patcher.exe from here].
 +
# Go back a directory to the EVE directory and edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code>
 +
#Save your <code>common.ini</code> file and close it.
 +
#Then edit the <code>start.ini</code> file by replacing <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code>
 +
# Save the <code>start.ini</code> file and close it.
 +
#Navigate to your desktop. Here should be a Icon named <code>EVE</code>
 +
#Right click this icon and click properties.
 +
#Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code>
 +
##Note: This is assuming that you haven't changed the default installation directory
 +
#Click <code>Apply</code> and then <code>Okay</code>
 +
 
 +
Your client is now ready to run.  
  
 
'''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client.
 
'''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client.
 
==Test and Report!==
 
==Test and Report!==
 
Yes! We know there are bugs and missing features!
 
Yes! We know there are bugs and missing features!
 +
 +
'''Notice:''' There are many things partially implemented. These are not fully working and will have and cause errors. Don't worry. The EVEmu development team is slowly fully implementing these features as testing happens. To get these features implemented faster please test and open issues to help the developers fix bugs.
 +
 +
See [[Next Steps]] to learn how to setup your market, and how to debug your build.
  
 
[http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience.
 
[http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience.
Line 100: Line 214:
 
You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status.
 
You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status.
  
[http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page.
+
[[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page.

Revision as of 14:13, 11 September 2021

Introduction

Welcome to EVEmu! This guide will help you go through the steps of setting up a Linux system to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on Discord or Forums.

While it is possible to run EVEmu under Docker for Windows, it is not recommended.

Linux is the only OS which is supported / maintained by the development team.

Setting up your VPS

For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions.

Please see this page on setting up your VPS: VPS Setup Guide

Preparing and Launching your EVEmu Server with Docker (RECOMMENDED)

Setting up your system for EVEmu

Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process.

To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs.

To install Docker run sudo curl -sSL https://get.docker.com/ | CHANNEL=stable bash in your terminal window. Wait for this to complete.

Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose.

This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server.

You can install it by running sudo apt install -y docker-compose .

Once this is done you are real close to being ready to launch the server. All thats left is to get the files.

Run git clone https://github.com/EvEmu-Project/evemu_Crucible.git. This will download the files to your instance for use. Next run cd evemu_Crucible.

This will put you within the server directory.

Launching the EVEmu Server

You are really close to being able to launch EVEmu. Actually you're on the last step.

First, inspect the docker-compose.yml file. There are a few things that can be changed here which may help with customising your installation.

This environment variable will enable the use of gdb within the container for debugging purposes.

     - RUN_WITH_GDB=FALSE #Set to TRUE to run evemu with gdb automatically

Additionally, you can configure the automatic seeding of market data using the following environment variables:

     - SEED_MARKET=FALSE # Set to TRUE to seed the market when the server starts for the first time
     - SEED_SATURATION=80 # Set saturation level of seed
     - SEED_REGIONS=Derelik,The Citadel,The Forge # Define regions to be seeded

To launch your server run sudo docker-compose -p evemu up --build -d.

Configuration will be stored within the evemu_config volume. To make changes to eve-server.xml, you must go to this volume location and modify it there.

A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the evemu-server container.

This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in.

This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running.

If you encounter any issues while running this command or the server fails to compile please contact us on our Discord or Forums. Once this process is done you now have a fully working EVEmu server.

Preparing and Launching your EVEmu Server Manually (NOT RECOMMENDED)

Server Compilation

We have confirmed both Fedora 33 and Ubuntu 20.04 LTS work for installing EVEmu from source. The Docker image is based upon Fedora 33 so this will what the code is tested against.

Installing Prerequisites on Fedora
 dnf groupinstall -y "Development Tools" && dnf install -y cmake git zlib-devel mariadb-devel boost-devel tinyxml-devel utf8cpp-devel mariadb shadow-utils gdb
Installing Prerequisites on Ubuntu
 sudo apt-get update && sudo apt upgrade && sudo apt install build-essential g++ cmake git libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql zlib1g-dev zlib1g-dbg libboost1.54
Compilation
 git clone https://github.com/EvEmu-Project/evemu_Crucible
 cd evemu_Crucible
 mkdir build
 cd build
 cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist ..
 make -j(Number of cores you have available)
 make install

Database Setup

NOTE:

  • %devRoot% is where the development files are located.
  • These may be the same location but that is not necessary.
  1. Open a terminal and go to the directory %devRoot%/evemu_Crucible/sql/
  2. Install and setup your database software, for EVEmu we use MariaDB
 For Fedora:
 sudo dnf install -y mariadb-server
 sudo systemctl enable --now mariadb
 sudo mysql_secure_installation
 For Ubuntu:
 sudo apt-get install mariadb-server
 sudo mysql_secure_installation
  1. Open your MySQL shell via mysql -u root -p and input the following:
    1. Note: This will prompt you for the password you set in the Previous Step
 create database evemu;
 GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD';
  1. In the same SQL directory, run ./get_evedbtool.sh. This will download the latest version of EVEDBTool to your system. If you are using a non-x86_64 architecture, you may build this tool from source. The tool is written completely in Golang so can be built on most systems such as x86_64 and aarch64. Source is available here: https://github.com/evemu-project/evedbtool
  2. Now run ./evedbtool. This will cause the tool to generate a new evedb.yaml file in the current directory.

Layout of evedb.yaml

 base-dir: base
 db-database: evemu
 db-host: 127.0.0.1
 db-pass: evemu
 db-port: "3306"
 db-user: evemu
 log-level: Info
 migrations-dir: migrations
 seed-regions:
 - Derelik
 seed-saturation: 80

Edit this file to contain your database credentials. Optionally, you can also add regions you wish to seed with market orders and the saturation of which to do so.

Installing the Tables:

  1. Run ./evedbtool install to install the base database and all of the latest migrations. (when updating EVEmu, you'll need to do ./evedbtool up to apply any migrations)
  2. Optional: Run ./evedbtool seed to seed the market with orders to regions you configured in evedb.yaml.

Final Steps:

Open eve-server.xml which if you did everything right, should be in build/dist/etc.

Additionally, make sure log.ini is also available in build/dist/etc

Scroll towards the bottom of the file, to the database connection info, change to settings to match your database credentials.

   <database>
       <host>db</host>
       <username>evemu</username>
       <password>evemu</password>
       <db>evemu</db>
       <port>3306</port>
       <ssl>false</ssl>
       <compress>false</compress>
       <useSocket>false</useSocket>
       <autoReconnect>true</autoReconnect>
       <dbTimeout>2</dbTimeout>
       <pingTime>10</pingTime>
   </database>

Next, create the following directories:

 build/dist/logs
 build/dist/image_cache
 build/dist/server_cache

These directories can optionally be defined in eve-server.xml here:

   <files>
       <logDir>../logs/</logDir>
       <logSettings>../etc/log.ini</logSettings>
       <cacheDir>../server_cache/</cacheDir>
       <imageDir>../image_cache/</imageDir>
   </files>

Now, configure your image server (must be accessible to clients). If you do not do this, player images, corporation images, and alliance images will not be uploaded.

   <net>
       <port>26000</port>
       <imageServer>127.0.0.1</imageServer>
       <imageServerPort>26001</imageServerPort>
   </net>
  1. To finally run your EVEmu server, navigate to the build/dist/bin folder and run the eve-server executable.
 ./eve-server

If you have any issues or concerns please contact us on our Discord or Forums. Once this process is done you now have a fully working EVEmu server.

Client Setup

You must have EVE Online Client 360229 to connect to the server. Access to this client is not provided by the EVEmu Project. Do not ask.

In order to patch the client and connect to the server, perform the following:

(You must have EVE_Online_Installer_360229.exe, eveonline_360229_1of2.7z, eveonline_360229_2of2.7z in the same directory.)

  1. Double click the EVE_Online_Installer_360229.exe file
  2. Go through the setup, This will take a few minutes to complete.
  3. Once this is done Uncheck the "Run Eve Online" box on the final screen.
    1. Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server.

Get a copy of the blue patcher here (this is an external GitHub repository not affiliated with the EVEmu Project)

  1. Copy the BlueAutoPatcher file to your EVE Client Directory. This is commonly found under C:\Program Files (x86)\CCP\EVE\bin
  2. Right click the BlueAutoPatcher and click Run as Administrator
  3. Click yes on the prompt.
  4. Unless you stored EVE in a special directory the default settings should work fine. Click Patch
    1. Note: Sometimes the above steps will not work. To resolve this copy the blue.dll from C:\Program Files (x86)\CCP\EVE\bin to your desktop as well as the BlueAutoPatcher
    2. Run the BlueAutoPatcher as administrator. It should auto detect the blue.dll file on your Desktop.
    3. Click Patch and wait for the file to be patched. It should say success at the bottom and auto close itself.
    4. Copy the blue.dll file back to C:\Program Files (x86)\CCP\EVE\bin replacing the existing blue.dll file with the patched one.
    5. Your blue.dll should now be patched. If that doesn't work you may have downloaded a patch for a newer version. Try downloading the specific exe for 360229 from here.
  5. Go back a directory to the EVE directory and edit your common.ini file. Replace the line cryptoPack=CryptoAPI with cryptoPack=Placebo
  6. Save your common.ini file and close it.
  7. Then edit the start.ini file by replacing server=Tranquility with server=<your_server_ip_or_hostname_here>
  8. Save the start.ini file and close it.
  9. Navigate to your desktop. Here should be a Icon named EVE
  10. Right click this icon and click properties.
  11. Edit the Target box to be "C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"
    1. Note: This is assuming that you haven't changed the default installation directory
  12. Click Apply and then Okay

Your client is now ready to run.

NOTE: Do NOT run the Client from the icon you get after installation. Change it to run the /bin/exefile.exe instead of the eve.exe or you will get the launcher and that will attempt to contact CCP and automatically update the client.

Test and Report!

Yes! We know there are bugs and missing features!

Notice: There are many things partially implemented. These are not fully working and will have and cause errors. Don't worry. The EVEmu development team is slowly fully implementing these features as testing happens. To get these features implemented faster please test and open issues to help the developers fix bugs.

See Next Steps to learn how to setup your market, and how to debug your build.

Check out our current project status to see a list of known working and missing/broken features of the EVE Online experience.

You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status.

See this article for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page.