Installation (Ubuntu 24.04 LTS)
Introduction
This is a basic guide on how to install SkyFire_548 and SFDB from scratch. **Please note this is a work in progress and only contains enough information to get most people a viable server in Linux.
Prerequisites
The compilation of SkyFire_548 and the setup of SFDB will require certain packages to be installed. In Ubuntu 24.04 use the following command:
sudo apt-get install g++ make cmake git wget libssl-dev libreadline-dev bzip2 libbz2-dev
You may also want to install phpmyadmin and/or Apache. Do not forget the user and password for the Mysql root user.
Installing MySQL
sudo apt-get install mysql-server mysql-client libmysqlclient-dev libmysql++-dev
Installing ACE
sudo apt-get install libace-dev
Compiling and Installing the SkyFire 5.4.8
Grab the latest version of SkyFire_548 using git:
git clone -b master https://codeberg.org/ProjectSkyfire/SkyFire_548.git
This should create a directory called SkyFire_548 that will contain all the files necessary to compile the server and it's tools. Change to the directory, configure, and build.
cd SkyFire_548 mkdir build && cd build cmake ../ -DTOOLS=1 make -j(#cores+1) sudo make install
Parameter explanations
-DACE_LIBRARY=<path to ACE library> (full path to your libACE.so file INCLUDING the filename - do not use if you have ACE installed systemwide) -DACE_INCLUDE_DIR=<path to ACE includes/headers> (path to the libACE include directory - do not use if you have ACE installed systemwide) -DOPENSSL_LIBRARIES=<path to OpenSSL library> (path to your OpenSSL library - do not use if you have OpenSSL installed systemwide) -DOPENSSL_INCLUDE_DIR=<path to OpenSSL includes> (path to your OpenSSL includes directory - do not use if you have OpenSSL installed systemwide) -DSERVERS Build worldserver and authserver -DSCRIPTS Build core with scripts included -DTOOLS Build map/vmap extraction/assembler tools -DUSE_SCRIPTPCH Use precompiled headers when compiling scripts -DUSE_COREPCH Use precompiled headers when compiling servers -DUSE_SFMT Use SFMT as random numbergenerator -DWITH_WARNINGS Show all warnings during compile -DWITH_COREDEBUG Include additional debug-code in core -DWITH_SQL Copy SQL files during installation -DCONF_DIR Set configuration directory -DLIBSDIR Set library directory -DCMAKE_C_FLAGS Set C_FLAGS for compile (advanced users only) -DCMAKE_CXX_FLAGS Set CXX_FLAGS for compile (advanced users only) -DWITH_CXX_17_STD Use c++17 standard (advanced users only) -DWITH_CXX_DRAFT_STD Use c++ draft standard (advanced users only)
Installing SkyFireDataBase (SFDB)
Now we will set up the database framework for which SkyFire will be installed into: It is assumed that you cloned SkyFire_548 into your home directory ~/ Replace the parts in <> to the correct administrative username, and associated password. Usually the administrative user is root, but you may have altered it.
In the terminal window:
mysql -u <mysql_root> -p < ~/SkyFire_548/sql/create/create_mysql.sql mysql -u <mysql_root> -p auth < ~/SkyFire_548/sql/base/auth_database.sql mysql -u <mysql_root> -p characters < ~/SkyFire_548/sql/base/characters_database.sql
Grab the latest version of SkyFireDB on. https://codeberg.org/ProjectSkyfire/database/tags
The DB download contains an installer for Linux and Windows. Also a single Sql file.
!!!You will also need to manually run any sql's found in the cores sql folder .../sql/updates/world and .../sql/updates/char!!!
(If you are doing this for more than local use you will also need to change a database entry using this mysql command.)
UPDATE auth.realmlist SET address = "YOUR IP HERE" WHERE id = 1;
Configuration
Now move and edit the configuration files to run the server.
sudo mv /usr/local/skyfire-server/etc/worldserver.conf.dist /usr/local/skyfire-server/etc/worldserver.conf sudo mv /usr/local/skyfire-server/etc/authserver.conf.dist /usr/local/skyfire-server/etc/authserver.conf
Edit worldserver to the correct Mysql user name, password, and your DataDir.
sudo nano /usr/local/skyfire-server/etc/worldserver.conf
Edit authserver to the correct Mysql user name, password, and your DataDir.
sudo nano /usr/local/skyfire-server/etc/authserver.conf
Move daemon service files to systemd.
sudo mv /usr/local/skyfire-server/etc/worldserverd.service.dist /etc/systemd/system/worldserverd.service sudo mv /usr/local/skyfire-server/etc/authserverd.service.dist /etc/systemd/system/authserverd.service
Extractor and VMAPs
If you need a Windows compiled copy of the DBC Extractor and the tools for the VMAP
Extraction and assembly you can get a copy of them using your GIT client and download
them from: https://codeberg.org/ProjectSkyfire/Community-Tools
The last and final step of setting up SkyFire_548 is to obtain a proper set of maps for use in the server. Change to the WoW directory and run some commands:
cd "Wow Directory" /usr/local/skyfire-server/bin/extractor /usr/local/skyfire-server/bin/vmap4extractor sudo mv dbc /usr/local/skyfire-server/bin/dbc sudo mv db2 /usr/local/skyfire-server/bin/db2 sudo mv cameras /usr/local/skyfire-server/bin/cameras sudo mv maps /usr/local/skyfire-server/bin/maps /usr/local/skyfire-server/bin/vmap4assembler sudo mv vmaps /usr/local/skyfire-server/bin/
Starting and Stoping SkyFire Daemons
Starting authserver daemon service
systemctl start authserverd
Starting worldserver daemon service
systemctl start worldserverd
Stoping authserver daemon service
systemctl stop authserverd
Stoping worldserver daemon service
systemctl stop worldserverd
To auto start daemons at startup you need to enable the services
systemctl enable authserverd systemctl enable worldserverd
SkyFire Patcher
The client will need to be patched before it can properly connect to the server. Acquire the patcher in the Community Tools repository.
git clone https://codeberg.org/ProjectSkyfire/Community-Tools.git
Install Mono in Wine or Crossover Office and run the patcher to modify your WoW.exe file.
to install Mono simply, and correctly configured, please view:
http://wiki.winehq.org/winetricks
to obtain specific versions/running hackery in your Wine bottle.
References
http://www.trinitycore.org/w/How-to:Linux
http://wiki.cactusemu.com/index.php?title=Installation_%28Linux%29
http://wiki.winehq.org/winetricks
http://appdb.winehq.org/objectManager.php?sClass=version&iId=20549