Skip to content

Instantly share code, notes, and snippets.

@lazypower
Forked from Reve/Crucible Server Tutorial.md
Last active August 29, 2015 14:27
Show Gist options
  • Save lazypower/a9e22b974556f8b5396d to your computer and use it in GitHub Desktop.
Save lazypower/a9e22b974556f8b5396d to your computer and use it in GitHub Desktop.
Crucible Server Tutorial
'''The EVEmu project is a developing EVE Online server suite and as yet does not support most features offered in the game.'''
'''EVEmu Crucible is compatible with EVE Crucible Client v1.6.5 build 360229.'''
= DISCLAIMER =
EVEmu is an educational project. This means, our primary interest is to learn and teach us and our users more about C++ project development in a large scale. Our software is not intended for running public servers, and we do not support that. We are not responsible for what others do with the source code downloaded from this project. [[:New Users Guide|For users who are new]] to build servers and would like some background information on what they are doing for learning please go [[:New Users Guide|here]]'''.
There is a video guide [http://www.youtube.com/watch?feature=player_embedded&v=6-1WyPIbptw here]. Evemu did NOT make this guide and it is different to the instructions listed below.
If you are having [[:Server Setup Issues|Server Setup Issues]] look here.
= Quick Navigation =
This is a large page with lots of detail for building and setting up the server, building the server's database, and developer-only related information. Use this Quick Navigation panel to get where you want to go.
{| class="wikitable" border="1"
! Client and Tools !! Build Server !! Database !! Server Setup !! Developers !! FAQ
|-
| [[#STEP 1 - Getting the Client|STEP 1 Client]] || [[#STEP 3.1 - Getting the source code|STEP 3.1 Get Src]] || [[#STEP 3.4 - Database Installation and Setup|STEP 3.4 DB]] || [[#STEP 3.5 - Server Configuration|STEP 3.5 Config]] || [[#Crucible Development|DEV]] || [[#Crucible Known Issues|ISSUES]]
|-
| [[#STEP 2 - Setting up your Build and Server Environment|STEP 2 Setup]] || [[#STEP 3.2 - Compiling with CMake|STEP 3.2 CMake]] || [[#Data Import|Data Import]] || [[#Finishing Notes|Finishing Up]] || [[#Building a Binary Distribution Package|DISTROS]] ||
|-
| || [[#STEP 3.3 - Compiling the Source Code Project|STEP 3.3 Compile]] || [[#Final Checking of Database Integrity|Final Checking]] || || ||
|-
| || || [[#Adding an Account|Add Accounts]] || || ||
|-
| || || [[#If you have to REBUILD your Database|Rebuild DB]] || || ||
|}
{{-}}
{| style="float: right;"
| __TOC__
|}
= PREFACE =
This guide is meant more for the intermediate programmer and/or computer power user. It is not meant for an average computer user or gamer that just wants to connect to a server and start playing EVE. This guide assumes basic to intermediate knowledge in the following areas. If you find that you do not have this prerequisite knowledge, you will find it nearly impossible to follow this guide on your own and are encouraged to just either go learn about these areas or you don't build the server, setup the database and try to run your own server. You'll just have to "find" one to connect to. As stated in the [[#DISCLAIMER|DISCLAIMER]] above, The EVEmu Project does not host any servers nor does it encourage anyone to do so.
Prerequisites:
* MySQL Server - know how to setup a MySQL server from scratch, administrate it, make/remove accounts, create databases, tables, etc
* Visual Studio - basic use of Visual Studio including opening a project, changing project properites, running build configurations
* Git SCM - basic to intermediate use of Git Source control management system either via a client or command line
* File systems - intermediate use of file systems and directory management on your platform of choice
{{-}}
= SUPPORTED PLATFORMS =
(updated 2012-05-23)
'''WINDOWS:''' Windows builds are currently fully functional. Windows XP, Vista, 7 (32 or 64 bit both work)
'''LINUX:''' Linux builds are currently fully functional. Recommended distros: Ubuntu, Debian, really anything.
= STEP 1 - Getting the Client =
* http://gork.levelbelow.net/eveexe/360229/ or http://192.228.108.100/~evemu/evemu/ or [http://eve.alasiya.net/misc/ here]
# Download the '''EVE_Online_Installer_360229.exe''', '''eveonline_360229_1of2.7z''', and '''eveonline_360229_2of2.7z'''
# Install the client using the .exe
#[WIN] Download the [https://github.com/bluepatcher/blue_patcher/archive/master.zip blue_patcher ZIP package for Crucible]
#[MAC] Download the [https://github.com/Reve/blue_patcher_mono/archive/master.zip blue_patcher ZIP package for Crucible]
#[MAC] READ THE README otherwise you are doomed to fail [https://github.com/Reve/blue_patcher_mono/blob/master/README.md blue_patcher Mac Instructions]
# Finally, follow the instructions in the README.md file to run the patcher and configure your client to connect to a server
<u>'''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'''</u>
Crucible is no longer available from CCP, so you will have to use the link above to download the currently supported client build for EVEmu Crucible.
= STEP 2 - Setting up your Build and Server Environment =
We recommend a nicely organized folder structure for keeping your build area separate from your server execution area in case you need to delete/move either of them. I will also illustrate a good way to keep dependencies of the source code in a separate area than either the source tree or the server execution area.
<u>A note on '''<path_from_root>''' shown below:</u> this is simply the folder path from the base drive letter (C: in Windows, or '/' in linux) to where you want to store your EVEmu development tree. For simplicity for new users/developers, you may simply use C:\ or '/' as your path from root. More complicated paths might be F:\projects\servers\ (windows) or /home/projects/servers/ (linux).
=== Build Environment - Recommended folder structure ===
* <path_from_root> - ''(see note above about <path_from_root>)''
** \'''evemu'''
*** \'''server'''
**** \'''common''' - ''optional, only if you want to manually specify and maintain the source's dependencies''
***** this will contain various subdirectories for the server source dependencies, such as mysql, boost, zlib, etc
**** \'''evemu_server'''
***** this will contain the entire source tree for the server source code
=== Server Execution Environment - Recommended folder structure ===
* <path_from_root> - ''(see note above about <path_from_root>)''
** \'''servers'''
*** perhaps you run multiple game servers like WoW, EVEmu, etc, LOL
*** \'''evemu'''
**** \'''bin'''
***** in here, you'll put the '''eve-server.exe''' , '''libmysql.dll''' and '''devtools.raw''' files
***** ('''eve-server.exe''' you'll find in /builds/src/eve-server/Release)
***** ('''libmysql.dll''' you'll find in /builds/mysql-XXXXXXX/lib)
***** ('''devtools.raw''' you'll find in /utils)
**** \'''etc'''
***** in here, paste a copy of the '''log.ini''', and '''eve-server.xml''' files you'll find inside the source tree's /utils directory
**** \'''log'''
= STEP 3 - Server setup =
'''NOTE:''' If you have server binaries, then proceed directly to '''[[#STEP 3.4 - Database Installation and Setup|STEP 3.4]]'''
* [[#STEP 3.1 - Getting the source code|STEP 3.1]] - Getting the source code
* [[#STEP 3.2 - Compiling with CMake|STEP 3.2]] - Compiling with CMake
* [[#STEP 3.3 - Compiling the Source Code Project|STEP 3.3]] - Compiling the Source Code Project
* [[#STEP 3.4 - Database Installation and Setup|STEP 3.4]] - Database Installation and Setup
* [[#STEP 3.5 - Server Configuration|STEP 3.5]] - Server Configuration
== STEP 3.1 - Getting the source code ==
=== Getting Git ===
'''LEARN''':
* The best Git primer we've seen is a 1hr 40min video series [http://excess.org/article/2008/07/ogre-git-tutorial/ found here]
* If you prefer to use Git via command line, here is a good tutorial on how to do it. [http://help.github.com/linux-set-up-git/ Git-Linux] [http://help.github.com/win-set-up-git/ Git-Windows]
'''GET''':
* You need a Git client in order to download the source. Windows users can download SmartGit, Linux users need to install the respective package (usually git).
'''NOTE:''' Use Git to pull down the source, we recommend if you want to develop, create a Github account. Then you can fork from the main branch and develop from there.
The EVEmu server source code is hosted on [http://www.GitHub.com GitHub] and uses the Git SCM (Source Control Management) system for revision and branch control. Here is the home page for the latest server source code project:
* [http://www.github.com/evemuproject/evemu_server EVEmu Project - evemu_server]
=== -----Windows----- ===
'''GUI route''': Download [http://www.syntevo.com/smartgit/index.html Smartgit] and follow the on screen instructions to pull down the source from github. This guide is not going to contain a primer on how to use SmartGit. Most of our developers use the command line git, so most of this guide is going to be oriented more toward using git on the command line.
'''Command Line route''':
* Download and install [http://code.google.com/p/msysgit/ msysgit] command line environment for windows
* Run the Git Bash tool to get the git command line
* Using the 'cd' command, navigate to a directory location on your hard drive, such as '''C:\evemu\server''' and from that location in the command line for Git, type this:
<pre>
$ git clone https://github.com/evemuproject/evemu_server.git
</pre>
You'll end up with the source tree being copied to the location '''C:\evemu\server\evemu_server''' and you'll be ready for the next step.
=== -----Linux----- ===
You can use any gui available for Linux. If you prefer terminal, type this:
<pre>
$ git clone https://github.com/evemuproject/evemu_server.git
</pre>
The source will be downloaded into subdirectory '''evemu_server'''.
== STEP 3.2 - Compiling with CMake ==
EVEmu can be built using [http://www.cmake.org/ CMake]: a tool designed to ease the whole process of compiling on various platforms. You can find further information about it on the homepage; here we'll concentrate only to how to use it to build EVEmu.
=== Getting the dependencies ===
==== -----Windows----- ====
'''NOTE:''' Dependencies are being automatically downloaded, installed, and linked to during the CMake process, so manually downloading, installing, extracting, and pointing CMake to dependencies is OPTIONAL.
===== Tools and Dependencies =====
'''RECOMMENDED: Visual Studio 2013 with Update 3 has been tested and approved for use on EVEmu.'''
'''NOTE: Visual Studio 2012 is EXPERIMENTAL and NOT officially supported by EVEmu yet.'''
{| class="wikitable"
! Tool !! Visual Studio 2010 !! Visual Studio 2012 (tested, experimental) !! Visual Studio 2013 (recommended)
|-
| '''CMake'''
|
'''CMake:'''
* Download and Install: [http://www.cmake.org/files/v2.8/cmake-2.8.8-win32-x86.exe CMake v2.8.8 (win32)] - ([http://www.cmake.org/cmake/resources/software.html main download])
|
'''CMake:'''
* Download and Install: [http://www.cmake.org/files/v2.8/cmake-2.8.9-win32-x86.exe CMake v2.8.9 (win32)] - ([http://www.cmake.org/cmake/resources/software.html main download])
|
'''CMake:'''
* Download and Install: [http://www.cmake.org/files/v2.8/cmake-2.8.12.2-win32-x86.exe CMake v2.12.2 (win32)] - ([http://www.cmake.org/cmake/resources/software.html main download])
|-
| '''Visual Studio for<br>''32-bit'' builds'''
|
* Download and Install: [http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express Visual Studio 2010 Express ISO]
* Download and Install: [http://www.microsoft.com/en-us/download/details.aspx?id=23691 VS 2010 Express SP1]
|
* Download and Install: [http://www.microsoft.com/en-us/download/details.aspx?id=34673 Visual Studio 2012 Express for Windows Desktop]
* Download and Install: [http://www.microsoft.com/en-us/download/details.aspx?id=39305 VS 2012 Update 4]
|
* Download and Install: [http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop VS 2013 Express 2013 for Windows Desktop]
* Download and Install: [http://www.microsoft.com/en-us/download/details.aspx?id=43721 VS 2013 Update 3]
* '''TO BE TESTED:''' [http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop VS 2013 Update 4]
|-
| '''Visual Studio for<br>''64-bit'' builds'''
| Get [http://www.microsoft.com/en-us/download/details.aspx?id=2680 Windows SDK for VS 2010]
| Get [http://www.microsoft.com/en-us/download/details.aspx?id=30668 Windows SDK for VS 2012]
| Get [http://www.microsoft.com/en-us/download/details.aspx?id=40758 Windows SDK for VS 2013]
|-
| '''Notes'''
| none
| none
| [http://blogs.msdn.com/b/zainnab/archive/2013/08/28/visual-studio-2013-working-in-the-breakpoints-window.aspx Enable Breakpoints Windows]
|}
* Download and Install: [http://code.google.com/p/msysgit/downloads/list Git For Windows CMD]
==== -----Linux----- ====
*cmake
*git
*make
*g++
*zlib, zlib-dev
*libmysqlclient, libmysqlclient-dev
*boost-build, libboost-dev
'''NOTE:''' Just search your distro's repository for similarly named packages and install them.
===== Linux Mint 14 =====
This list of dependencies and procedures is for Linux Mint v14, specifically, which is based on Ubuntu, based on Debian, however, it may work for other Ubuntu-based distributions.
* cmake
* git
* make
* g++
* libmysqlclient-dev
* zlib1g
* zlib1g-dev
* libboost-all-dev
This last is optional as you could just let CMake install boost for you.
=== Running CMake ===
'''WARNING: Do NOT use SPACES in any part of your path to the EVEmu source code or any of its dependencies (libraries like boost, mysql, zlib, etc). Any spaces in the path will cause MASSIVE errors when you go to compile the software in your compiler. YOU HAVE BEEN WARNED!!'''
==== -----Windows----- ====
Create directory '''C:\evemu\server\evemu_server\build'''.
Go to the directory where you have installed CMake, there should be subdirectory bin. Go in there and run cmake-gui.exe.
In the edit box labeled '''Where is the source code:''', click Browse source and pick '''C:\evemu\server\evemu_server'''
In the edit box labeled '''Where to build the binaries:''', click Browse build and pick '''C:\evemu\server\evemu_server\build'''
Now, click Configure button in the lower-left part. Another dialog pops up, asking you to choose compilers and a generator. Choose Visual Studio 10 2010, then use default native compilers and press Finish.
CMake starts configuring your build.
===== CMake Manual Dependency Configuration - (if Cmake fails to download them) =====
'''STATUS - The ability to manually configure the location for depenencies is now broken due to changes made to the CMake build configuration that now automatically downloads, extracts, installs, and links to all dependencies used by the source. A solution is being worked that will allow us to disable this automatic process in favor of a fully manual dependency management option for at least the big three dependencies: boost, mysql, and zlib.'''
If Manual Dependency Management is enabled, Configure will fail, because you haven't set several CMake variables yet. For each of the rows below, click the button Add Entry in the upper part, fill in the corresponding editboxes and click OK:
Choose advance tab in cmake, The very first line should be Boost_include_DIR. Please update it to your path for Boost.
<pre>
Name: CMAKE_SYSTEM_INCLUDE_PATH Type: PATH Value: C:\evemu\server\common\mysql\include;C:\evemu\server\common\zlib
Name: CMAKE_SYSTEM_LIBRARY_PATH Type: PATH Value: C:\evemu\server\common\mysql\lib\opt
Name: Boost_INCLUDE_DIR Type: PATH Value: C:\evemu\server\common\boost
</pre>
Now click Configure again and it should be fine. After configuration is done, click Generate and close the window.
'''IMPORTANT''': Be sure there are NO red errors in the log window at the bottom of the CMake window. If there are any, take a look at them to see if they merit reporting to developers or if they are simply reporting the failure to configure something that you did not select for being configured, such as doxygen or eve-tool.
Finally, you can now open the EVEmu server solution in Visual Studio. Just make sure to open it in the same version of Visual Studio that you told CMake to use when you setup the CMake build.
==== -----Linux----- ====
Type:
<pre>
$ mkdir path/to/evemu/server/evemu_server/build
$ cd path/to/evemu/server/evemu_server/build
$ cmake ../.
</pre>
If you want to configure the build manually, such as select Release or Debug build profiles, run this command:
<pre>
$ cmake -i path/to/evemu/server/evemu_server
</pre>
Alternatively, you can use the curses-based CMake (assuming you have it installed):
<pre>
$ ccmake path/to/evemu/server/evemu_server
</pre>
This is particularly useful e.g. when you want to build a Debug binary.
== STEP 3.3 - Compiling the Source Code Project ==
=== Building the Server from Source ===
==== -----Windows----- ====
Browse to C:\evemu\server\evemu_server\build, there should be a file '''evemu.sln'''. Double-click it and Visual Studio opens up. You can set it to two modes, '''Debug''' or '''Release''' by choosing a selection from a drop-down menu near the center of the toolbar. Depending on your OS platform, you may want to choose between 32-bit and 64-bit using the drop-down menu to the right of the Release/Debug drop-down.
Either Debug or Release build will work, but the Debug build's exe is much larger and much slower in performance due to all the debug symbols and extra code to support debugging that gets built into the exe. If you want to run the server and not debug at all, use the Release build as it will be much smaller in size and much faster.
In the left file/folder tree view called ''Solution Explorer'', right-click Solution evemu and click Build solution. Compilation should start.
==== -----Linux----- ====
Type:
<pre>
$ cd path/to/evemu/server/evemu_server/build
$ make
</pre>
If you want to make use of a multicore CPU, specify number of cores with -j option. For example, if you had quad-core CPU, you'd type:
<pre>
$ make -j4
</pre>
=== Running the Server ===
You will need an eve-server.xml file in an etc/ directory, a log/ directory, and a bin/ directory somewhere or just use the location where eve-server.exe (eve-server in linux) is placed by CMake and Visual Studio (cmake and make on linux). On windows, you'll need the libmysql.dll in the same location as eve-server.exe. You can now run eve-server executable from its location.
'''NOTE TO LINUX USERS: You will need to do one of two things regarding the API Server IP port:'''
* Change eve-server.xml to specify a port number of > 1024 for the API Server (you will NOT be able to use EFT with this server)
* Run eve-server executable as root using port 64 if you want to be able to use EFT with this server
=== Debugging the Server ===
'''NOTE: Make sure you selected the DEBUG build profile in Visual Studio or Linux CMake and build the server. You will NOT be able to debug if you built it with the RELEASE build profile.'''
These instructions will help you surmount the common problems when setting up your system to debug EVEmu server code.
Skip to [[#STEP 3.4 - Database Installation and Setup|STEP 3.4 - Database Installation and Setup]] if you are not interested in developing code for this project and just want to run the server.
==== -----Windows----- ====
#Open the evemu project in Visual Studio.
#To do FULL Rebuilds of entire project, select '''ALL_BUILD''' at the top of the list in '''Solution Explorer''', then either hit Ctrl+Alt+F7 key or click Build -> Rebuild Solution from the menu bar.
#To compile sub-projects by themselves, such as '''eve-server''', then select that sub-project in '''Solution Explorer''', then hit F7 for a Build or Ctrl+Alt+F7 for a Rebuild or access either from the Build menu on the menu bar.
#To set the project for '''Debugging''', find the drop down box on the toolbar that is either going to have '''Release''' or '''Debug''' inside. If it says '''Debug''' you are good to go, just do a FULL rebuild of the whole project. If it says '''Release''', click on it then select '''Debug''', then do a FULL rebuild of the whole project.
#To RUN eve-server after you have built it under '''Debug''' or '''Release''', follow these steps:
##Right-click on '''eve-server''' in the '''Solution Explorer''' and select '''Properties'''
##Expand '''Configuration Properties''' and click '''Debugging'''
##Put the text '''Debug''' in the field called '''Working Directory''', then click the '''OK''' button
##* If you are building '''Release''', then set the '''Working Directory''' to '''Release''', then click the '''OK''' button
##* You can set both by choosing either '''Debug''' or '''Release''' in the drop-down box labeled '''Configuration:''' in the upper left corner of the '''eve-server Property Pages'''
##Now, navigate to your server project source root directory, then drill down to this sub-folder: '''build\src\eve-server'''
##Make a new folder called '''etc''' and put your '''eve-server.xml''' file in that new '''etc''' folder. You can copy and modify the provided example eve-server.xml found inside the /utils subdirectory off the root of the source tree.
##Make a new folder called '''log''' and put your '''log.ini''' file in that new '''log''' folder. You can copy and modify the provided example log.ini found inside the /utils subdirectory off the root of the source tree.
##Back in Visual Studio, right click on '''eve-server''' again in the '''Solution Explorer''' and select '''Set as StartUp Project''', the '''eve-server''' tree label will now be bold to indicate this change
##You can now hit F5 to execute the debug build .exe or click Debug -> Start Debugging from the menu bar.
==== -----Linux----- ====
===== Using KDevelop and KDbg =====
Install KDevelop4 or later and KDbg on your KDE system. If your linux system is not KDE, get KDE and use it. The KDE window manager is the most like windows and has the most GUI applications available for it compared to almost all other window managers outside of Gnome.
Start KDevelop and click the Open Project... button along the row of buttons on the green start page. You can also select Project menu -> Open/Import project... In this dialog, navigate to the evemu_server directory in which the entire git repository has been cloned and select the CMakeLists.txt file, then click Next. Verify on this next page that Name = evemu_server and Build System = CMake Project Manager and then click Finish.
It will take quite a while to load the first time and eventually you'll see some buttons along the far left side of the GUI. Click Projects and you'll see a top folder 'evemu-server' inside of which you'll see the entire tree of files as you would in a file manager.
You'll now want to setup a Launch configuration. Click Run menu -> Configure Launches. In this dialog, if there is not already a 'New Native Application Configuration' under 'evemu_server', then click the + button at the top of the list to add one. In the area on the right where it says '''Executable''', fill in the full path to the 'eve-server' executable under build/src/eve-server from the evemu_server root path including the eve-server executable name, such as
/home/myusername/projects/evemu_server/build/src/eve-server/eve-server
In the area where it says '''Working Directory''', fill in the full path to the folder where the 'eve-server' executable was placed after 'make' completed, such as:
/home/myusername/projects/evemu_server/build/src/eve-server
In the middle group ''Behavior'' check the box at the bottom of this group next to '''Use External Terminal'''
Click the '''Debug''' selection under the new launch configuration at left. In this area at right where it says '''Debugger executable''', make sure it is empty as we want KDevelop to invoke by default Kdbg with gdb in the background.
Click Apply and OK to save and close.
You can now click the Execute or Debug buttons at the top of the KDevelop GUI just under the menu bar. '''Execute''' will simply run the server while Debug will open KDbg on eve-server to initiate debugging of the server application.
'''TODO: more to follow when we actually are successful in loading KDbg with eve-server and its debug symbols'''
===== If you are a sado-masichist and enjoy massive amounts of pain =====
Assuming you've used the '''Debug''' build configuration, just use GDB:
<pre>
$ gdb build/src/eve-server/eve-server
</pre>
=== If you want to REBUILD your source code ===
Whenever you update your source code working tree from the github repository, add files to the project (which requires adding them to the CMakeLists.txt files), or change one of the .xmlp files found in /src/eve-common/packets/xmlp, you MUST do a full REBUILD of your source code to ensure that all changes and new files are made available to the compiler. Here's how you do that:
REBUILD source: This is simply accomplished by closing Visual Studio, opening CMake, clicking Configure twice, then Generate once, and finally opening Visual Studio again. Now, you need to right-click on the ALL_BUILD project, and click Rebuild. This will rebuild your entire source code from scratch using any new files or modified packet xmlp files that were added/modified by either you or whomever pushed changes to the github repository that you just pulled down.
==== ------Linux------ ====
If you've already imported your CMake project into KDevelop as described above under Debugging the Server, then you can both select which build profile you want CMake to use (Debug or Release) and invoke CMake configure and Build the eve-server project. Here's how:
===== Change CMake Build Profile =====
In KDevelop, right-click the evemu_server folder at the top of the tree at left in the Projects window and select Open Configuration... at the bottom of the popup menu. In here, you can change the '''CMAKE_BUILD_TYPE''' variable to be either '''Debug''' or '''Release''' typed exactly as shown right here. Click OK to set it and if you changed anything, KDevelop will invoke CMake to do the project configure to update the makefile with your changes.
===== Build the eve-server project =====
In KDevelop, once you've set your CMake build profile, you can just click Project menu -> Build Selection or hit the F8 key. This will take a long time. If you need to run CMake configure first, click Project menu -> Configure selection and CMake will run. Then you can click Project menu -> Build selection or hit F8 key to build.
== STEP 3.4 - Database Installation and Setup ==
'''NOTE:''' This guide assumes directory structure created in compiling with cmake guide.
=== Properly setup your MySQL server ===
You need to properly setup your MySQL server '''before''' you attempt to build the database following the instructions we present below, so go open up your '''my.ini''' (windows) or '''my.conf''' (linux) in a text editor. Find the following parameters and set them to the values you see in the following list. If they are not present in the file, add them. Please do a search FIRST before adding them, you may have just missed them scrolling by.
* under '''[mysqld]'''
** '''max_allowed_packet = 1000M'''
** '''key_buffer = 256M'''
* under '''[mysqldump]'''
** '''max_allowed_packet = 1000M'''
Save the file and close it. '''Restart your MySQL server before proceeding to build the database.'''
=== Required Software ===
* MySQL server - '''NO LATER THAN v5.5.x'''
** Intermediates: [http://www.apachefriends.org/en/xampp.html Get XAMPP] - XAMPP is your friend, has apache, mysql, php, and lots more, already configured, ready to go with a bit of setup, but they have instructions to help you
** EXPERTS ONLY: [http://dev.mysql.com/downloads/mysql/5.1.html#win32 MySQL Server 5.1] (It's recommend downloading the Windows Essentials installer, as it is all that is needed)
*<s>[http://builds.evemu.org/crucible_360229/database/evemu.7z Crucible v1.6 MySQL conversion from Official DB dump]</s> - hosted by the EVEmu team ''Redundent''
*<s>[http://zofu.no-ip.de/cru16/cru16-mysql5-v1.sql.bz2 Crucible v1.6 MySQL conversion from Official DB dump]</s> - ''Deactivated''
* http://eve.alasiya.net/misc/cru16-mysql5-v1.sql.bz2 - Currently down
* http://192.228.108.100/~evemu/evemu/cru16-mysql5-v1.sql - Current
** '''This is the last database update for Crucible''': CCP's most recent release of the Database Dump is Crucible 1.6, '''therefore we use this'''
** We keep a watch on [http://wiki.eve-id.net/CCP_Toolkit_Release_History CCP's Toolkit site] for DB dump updates
=== Database Setup ===
Download and install the latest stable version of MySQL 5.5.x or install a whole web server package like [http://www.apachefriends.org/en/xampp.html XAMPP (recommended)] from the links above.
Extract the dowloaded database dump to directory '''C:\evemu\server\evemu_server\sql'''. Browse into '''C:\evemu\server\evemu_server\sql\utils'''.
'''If you are on Windows:'''
In the '''/sql/utils/''' directory, Execute merge-ofic-updates.bat.
'''If you are on Linux:'''
In the '''/sql/utils/''' directory, Execute merge-ofic-updates.sh.
This should create new file called ofic-updates.sql in parent directory sql.
Now, you'll have these .sql files in the /sql directory:
* cru16-mysql5-v1.sql
* evemu_dynamic-dump.sql
* evemu_static-dump.sql
* ofic-updates.sql
* prime_db.sql
* ./evemu-updates/liveupdates.sql
'''NOTE:''' cru16-mysql5-v1.sql.sql is the biggest sql and takes the longest to write into the database, over 460 MB import.
=== Data Import ===
'''WARNING!''' It is recommended that you DO NOT use mysql tools such as Navicat, phpmyadmin, etc to do the SQL import on any of these SQL files as those tools "may" truncate some of the larger queries in these files. If you know that your tool of choice does not do this, you should be fine. This is a word of warning to those who will use tools like these and wonder why their databases are not built correctly, meaning they are missing whole tables or get other strange SQL-related errors when starting up the server or during character creation and login.
'''IMPORTANT:''' Paths should use / instead of \
First, make sure you put the path to your MySQL 'bin' folder in your PATH environment variable.
Open a command prompt and change directory to the C:\evemu\server\evemu_server\sql directory and run mysql in that prompt like this:
<pre>
C:\evemu\server\evemu_server\sql> mysql -u <username> -p
</pre>
where '''<username>''' is your mysql database username, then type the password and hit enter. You will see a "mysql>" prompt, now you can create database and source the sql files using instructions below.
You will now need to create the EVEmu database, to do this type at the mysql command prompt:
<pre>
create database evemu;
</pre>
Now hit enter, it should tell you that was successful by saying:
<pre>
Query OK, 1 row affected.
</pre>
INFO: Don't panic if you get multiple messages like this. It's normal and it usually takes a while to setup. (30 mins or so)
After each query is completed it will display mysql> - at this point simply run the next one.
==== Automated SQL Setup ====
To build the database in one command, you first need to copy the "cru16-mysql5-v1.sql" file into the /sql dir of the source, where the other sql files are located.
Open a command prompt IN the sql/ directory so you are local to all the sql files the following script needs access to and run the following command:
evemu_build_database.bat <mysql_username> <mysql_password> evemu
'''If this completes without errors, your database is completely setup. Now, proceed to "Final Checking of Database Integrity".'''
==== Manual Execution of each SQL piece ====
If you have trouble for one reason or another using the automated setup, then try using these manual steps in the mysql command prompt to setup your database.
Now to import the actual data... to do this you'll need to use the following queries (each line is a separate query - '''don't execute them all at once!'''):
<pre>
use evemu;
source C:/evemu/server/evemu_server/sql/cru16-mysql5-v1.sql;
source C:/evemu/server/evemu_server/sql/ofic-updates.sql;
source C:/evemu/server/evemu_server/sql/evemu_static-dump.sql;
source C:/evemu/server/evemu_server/sql/evemu_dynamic-dump.sql;
source C:/evemu/server/evemu_server/sql/prime_db.sql;
source C:/evemu/server/evemu_server/sql/liveupdates.sql;
</pre>
=== Final Checking of Database Integrity ===
There are some final checks on your database that are highly recommended that you perform in order to ensure your database was 100% correctly setup in the previous steps. These are listed below:
#Check the '''AUTO_INCREMENT''' value in the '''entity''' table to make sure it is set to this value: '''140000000'''. If it is not set to that value, change it to this value '''140000000'''. If you do not, you may experience a server crash when you make your first character, so DO check it and set it if it is not the correct value. A common error that you may encounter if you miss this step is something like this in the server console due to the fact that the '''AUTO_INCREMENT''' was not set and the last itemID was'''61000003''' or something.
<pre>
InventoryDB::GetItem(..\..\..\src\eve-server\inventory\InventoryDB.cpp:471): Item 61000004 not found
</pre>
=== Adding an Account ===
This is really simple... just type the following:
<pre>
INSERT INTO account (accountID, accountName, role, password, online, banned) VALUES(NULL, 'your_account_name', 5003499186008621056, 'your_password', 0, 0);
</pre>
Simply make sure to replace your_account_name and your_password with what you want your username and password to be!
'''NOTE:''' For further reading and reference, the role value indicated in the above query was generated after some research and can be seen [[EVEmu Account Roles|in this article on Roles after the Incursion and later table]], we've called it "ROLEMASK_GRAVY".
If you are new to MySQL command line, you can try using Navicat Lite http://www.wizdownloads.com/download/Windows/navicat-lite/ it has an easy to use
interface.
=== If you have to REBUILD your Database ===
If you somehow corrupt your database or the server does it as a result of a crash or wrong SQL query in the code, or you need to rebuild it due to development actions taken that modified SQL files found in the source's /sql directory, here's what we mean by "REBUILD":
REBUILD database: This is simply "dropping" the entire evemu database in mysql, such that the database is completely deleted, as in, the database name is no longer visible or accessible. Then, the database is built again from scratch by first creating a new database with the name you used before, switching to that database and running the "evemu_setup_database.sql" file on it. So, this basically means that you proceed directly to the "Data Import" section above on this page AFTER you have DROPPED your complete database from MySQL either using a MySQL client to do it (phpmyadmin, navicat, MySQL Workbench, etc) or by using the mysql command line as follows:
<pre>
mysql> drop database evemu;
</pre>
'''WARNING: MySQL does NOT prompt you on the command line, when you hit enter, it's too late, no going back. So, if you NEED to backup your database, do an export of the whole thing first.'''
=== Tweak your MySQL Server Settings for Optimum Performance ===
Have a look at these articles for advice on how to tweak your MySQL Server settings for optimum performance of your server:
* [http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/ What to tune in MySQL Server after installation]
* [http://github.com/rackerhacker/MySQLTuner-perl MySQLTuner-perl script] - monitors use of your mysql server over a long time to recommend tweaks to obtain optimum performance
{{-}}
== STEP 3.5 - Server Configuration ==
'''NOTE:''' This guide assumes directory structure where you have git cloned the '''evemu_server''' project into '''C:\projects''' resulting in a path of '''C:\projects\evemu_server''' for the source tree.
To get the server up and running correctly, you will need to put various files in the correct places, and make modifications to some of them.
=== Directory Setup ===
# Create a location for your server binaries and cache files, such as '''C:\evemu_server''', create the folders '''bin''', '''etc''', '''log''' and '''server_cache'''
# Copy '''eve-server.exe''' from '''C:\projects\evemu_server\build\src\eve-server\Release''' to '''C:\evemu_server\bin'''
# Copy '''libmysql.dll''' and '''libmysqld.dll''' from '''C:\projects\evemu_server\build\mysql-5.x.x-xxxx\lib''' to '''C:\evemu_server\bin'''
#* An example would be '''C:\projects\evemu_server\build\mysql-5.5.25a-win32\lib'''
# Copy '''eve-server.xml''' from '''C:\projects\evemu_server\utils''' to '''C:\evemu_server\etc'''
=== File Setup ===
Browse to '''C:\evemu_server\log''' and create empty text file named '''eve-server.log'''
Browse to '''C:\evemu_server\etc''' and create empty text file named '''log.ini''' '''_OR_''' use the sample '''log.ini''' file in the source code.
After that go to '''C:\evemu_server\etc''' and open '''eve-server.xml''' in your favorite text editor,
You will need to change 2 sets of settings separated by <> tags (there are many optional settings to mess around, if you know what you are getting your hands into).
'''Remember:''' Every set up is different so use your own setting and don't copy and paste!
We will assume you have followed the previous step of setting up the database and we will go ahead and show an example of the needed changes:
==== Database Tag Changes ====
Default:
<pre>
<database>
<host>127.0.0.1</host>
<username>eve</username>
<password>eve</password>
<db>eve</db>
<!--<port>3306</port>-->
</database>
</pre>
Example:
<pre>
<database>
<host>127.0.0.1</host>
<username>root</username>
<password>password</password>
<db>evemu</db>
<!--<port>3306</port>-->
</database>
</pre>
'''NOTE:''' You will need to insert your own MySQL username and password
'''NOTE:''' Please make sure a password is set or client will stop after trying to connect
==== Net Tag Changes ====
Default:
<pre>
<net>
<!-- <port>26000</port> -->
<!-- <imageServerPort>26001</imageServerPort> -->
<!-- <imageServer>localhost</imageServer> -->
<!-- <apiServerPort>26002</apiServerPort> -->
<!-- <apiServer>localhost</apiServer> -->
</net>
</pre>
Example(Must be 26000):
<pre>
<net>
<port>26000</port>
<imageServerPort>26001</imageServerPort>
<imageServer>localhost</imageServer>
<apiServerPort>26002</apiServerPort>
<apiServer>localhost</apiServer>
</net>
</pre>
==== Files Tag Changes ====
Default:
<pre>
<files>
<!-- <logDir>../log/</logDir> -->
<!-- <logSettings>../etc/log.ini</logSettings> -->
<!-- <cacheDir></cacheDir> -->
</files>
</pre>
Example:
<pre>
<files>
<logDir>../log/</logDir>
<logSettings>../etc/log.ini</logSettings>
<cacheDir>../server_cache</cacheDir>
</files>
</pre>
The '''../log/eve-server.log''' will contain the text from the eve-server console window. The '''../etc/log.ini''' file contains settings to control how eve-server outputs messages to the log. We need more definition as to what goes in this file. Finally, the '''../server_cache''' directory is where the server will create files for all cached objects when the server starts up.
'''NOTE:''' If any cached database tables change during server down-time, you MUST delete ALL cache files in this directory BEFORE starting up the server again. The server does not check to see if the tables changed.
=== Keeping The Server Updated ===
The Evemu core updates very often. To keep your server up to date with the current Evemu revision; you must perform a simple core update and recompile.
#Use your favorite git gui or the git command line to keep your source up to date
#Re-run CMake just in case new files were added or old files were removed.
#You must now rebuild you solution to actually see the changes in game.
#Run the "evemu" sln with C++ and rebuild the solution '''MUST BE SET ON 'DEBUG' or 'RELEASE' (the question of your choice - for now is just a size of exe file on exit. No any stability or workability differences for now,except of some crashes,caused by svcerror and beancount errors on release binary.'''
== Finishing Notes ==
=== Windows ===
Then you should be able to run eve-server.exe to start the server.
The server log will be stored in C:\evemu\log\eve-server.log if you need it.
Wait for the message : "Init Done" before initiating any action associated with the server(Even opening a client). [http://evemu.sourceforge.net/forums/viewtopic.php?t=470 See here] for an old forum thread that discusses eve-server restart scripts in the cases where the server crashes, somewhere down the page is a script for windows.
=== Linux ===
You can just run the eve-server executable in your build directory, or you can use a script to run it, even to restart it if it ever crashes. [http://evemu.sourceforge.net/forums/viewtopic.php?t=470 Here is a forum thread] that lists several different scripts on how the eve-server can be restarted if it crashes.
== FAQ ==
You will find it under
[[Crucible FAQ]]
= Crucible Development =
Information will be soon here.
== Building a Binary Distribution Package ==
TBD
= Crucible Known Issues =
[FIXED] == Undocking ==
There are some cases when the location is not stored in the Data Base and when you try to undock it will give a DB error in server log.
*Workaround - Just select another station from the top left menu and transolacate there (tr command in right click menu) or choose another system from the map and do the same.
== Right click on ship not responding ==
*Workaround - Just undock and re-dock and this issue will go away.
If you are having [[:Server Setup Issues|Server Setup Issues]] look here.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment