User Tools

Site Tools


servers:games:trinitycore_3.3.5

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
servers:games:trinitycore_3.3.5 [2022/11/25 14:34] – [Compile] Sean Rhoneservers:games:trinitycore_3.3.5 [2023/07/31 00:29] Sean Rhone
Line 10: Line 10:
   * [[distros:fedora_server|Fedora Server]]   * [[distros:fedora_server|Fedora Server]]
   * [[servers:mariadb|MariaDB]]   * [[servers:mariadb|MariaDB]]
-  * [[games:wine:world_of_warcraft_3.3.5|World of Warcraft (3.3.5)]] ((required for content extraction, and since the core and tools are compiled on Linuxthe extraction tools will also require Linux OS to run on)) +  * [[games:wine:world_of_warcraft_3.3.5|World of Warcraft (3.3.5)]] ((required for content extraction, and since the core and tools are compiled on Linux the extraction tools also require Linux))
- +
-===== Notes ===== +
- +
-  * :!: As of 2022/09/30, these notes were tested on F36 up until the systemd scripts; TODO: fix them +
-  * :!: Do **not** use Warmane's WotLK client for content extraction nor to play with as it's modified and fails if ''authserver.conf/StrictVersionCheck = 1'' +
-  * [[https://wowdl.net/index|WoWDL]] has a [[https://wowdl.net/client/3.3.5a-win-us|clean 3.3.5 client]]+
  
 ====== Create Group and User ====== ====== Create Group and User ======
Line 34: Line 28:
 ====== Firewall ====== ====== Firewall ======
  
-  * 3724/tcp is loginserver and needs forwarded from the router also for WAN +  * :!: 3724/tcp is loginserver and needs forwarded from the router for both LAN and WAN 
-  * 8085/tcp is worldserver and needs forwarded from the router also for WAN+  * :!: 8085/tcp is worldserver and needs forwarded from the router for both LAN and WAN
   * 3443/tcp is Remote Console   * 3443/tcp is Remote Console
   * 7878/tcp is SOAP   * 7878/tcp is SOAP
Line 89: Line 83:
   sudo su 'trinity' -s '/usr/bin/bash'   sudo su 'trinity' -s '/usr/bin/bash'
  
-  rm -Rf '/tmp/TDB' '/tmp/TDB/TDB335.7z' && mkdir -p '/tmp/TDB' && cd ~ && wget -O '/tmp/TDB/TDB335.7z' 'https://github.com/TrinityCore/TrinityCore/releases/download/TDB335.22101/TDB_full_world_335.22101_2022_10_17.7z' && 7za x '/tmp/TDB/TDB335.7z' -o'/tmp/TDB' && mv '/tmp/TDB/TDB_full_world_335'*'.sql' ~/'Projects/trinity-335/run/bin' && rm -Rf '/tmp/TDB' && sync+  rm -Rf '/tmp/TDB' '/tmp/TDB/TDB335.7z' && mkdir -p '/tmp/TDB' && cd ~ && wget -O '/tmp/TDB/TDB335.7z' 'https://github.com/TrinityCore/TrinityCore/releases/download/TDB335.23061/TDB_full_world_335.23061_2023_06_14.7z' && 7za x '/tmp/TDB/TDB335.7z' -o'/tmp/TDB' && mv '/tmp/TDB/TDB_full_world_335'*'.sql' ~/'Projects/trinity-335/run/bin' && rm -Rf '/tmp/TDB' && sync
  
 ====== Compile ====== ====== Compile ======
Line 115: Line 109:
   * See [[games:wine:world_of_warcraft_3.3.5|WoW 3.3.5]] installation notes   * See [[games:wine:world_of_warcraft_3.3.5|WoW 3.3.5]] installation notes
  
-  mkdir -p '/tmp/trinity-extractors' && scp espionage724@192.168.1.152:'/tmp/trinity-extractors/'* '/tmp/trinity-extractors' && mv '/tmp/trinity-extractors/'* ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && sync+  mkdir -p '/tmp/trinity-extractors' && scp espionage724@192.168.1.152:'/tmp/trinity-extractors/'* '/tmp/trinity-extractors' && mv '/tmp/trinity-extractors/'* ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && sync
  
 ===== Dependencies ===== ===== Dependencies =====
Line 129: Line 123:
   * :!: Run on the machine doing the content extraction   * :!: Run on the machine doing the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && ./'mapextractor' -f '0'  && sync+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && ./'mapextractor' -f '0'  && sync
  
 ==== VMaps ==== ==== VMaps ====
Line 137: Line 131:
   * :!: Run on the machine doing the content extraction   * :!: Run on the machine doing the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && ./'vmap4extractor' -l && sync+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && ./'vmap4extractor' -l && sync
  
 === Assemble === === Assemble ===
Line 143: Line 137:
   * :!: Run on the machine doing the content extraction   * :!: Run on the machine doing the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && mkdir -p 'vmaps' && ./'vmap4assembler' 'Buildings' 'vmaps' && sync+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && mkdir -p 'vmaps' && ./'vmap4assembler' 'Buildings' 'vmaps' && sync
  
 ==== MMaps ==== ==== MMaps ====
Line 149: Line 143:
   * :!: Run on the machine doing the content extraction   * :!: Run on the machine doing the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && mkdir -p 'mmaps' && ./'mmaps_generator' --bigBaseUnit 'true' --threads $(nproc) && sync +  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && mkdir -p 'mmaps' && ./'mmaps_generator' --bigBaseUnit 'true' --threads $(nproc) && sync
- +
-===== Archive Content ===== +
- +
-  * Should be around 1.5GB +
-  * :!: Run on the machine that did the content extraction +
- +
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && tar -cvzf ~/'Downloads/WotLK-content-'$(date +%Y-%m-%d)'.tar.gz' 'dbc' 'maps' 'vmaps' 'mmaps' 'Cameras' && cd ~ && sync+
  
 ===== Transfer Content to Server ===== ===== Transfer Content to Server =====
Line 163: Line 150:
   * :!: Run on the machine that did the content extraction   * :!: Run on the machine that did the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && scp -r 'dbc' 'maps' 'vmaps' 'mmaps' 'Cameras' espionage724@192.168.1.152:~+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && scp -r 'dbc' 'maps' 'vmaps' 'mmaps' 'Cameras' espionage724@192.168.1.152:~
  
 ===== Cleanup on Client ===== ===== Cleanup on Client =====
Line 169: Line 156:
   * :!: Run on the machine that did the content extraction   * :!: Run on the machine that did the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && rm -Rf 'Buildings' 'Cameras' 'dbc' 'maps' 'vmaps' 'mmaps' && cd ~/'Downloads' && rm -f 'mapextractor' 'vmap4extractor' 'vmap4assembler' 'mmaps_generator' && sync+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && rm -Rf 'Buildings' 'Cameras' 'dbc' 'maps' 'vmaps' 'mmaps' && cd ~/'Downloads' && rm -f 'mapextractor' 'vmap4extractor' 'vmap4assembler' 'mmaps_generator' && sync
  
 ===== Move Content on Server ===== ===== Move Content on Server =====
Line 180: Line 167:
   sudo restorecon -F -I -R '/var/lib/trinity/Projects/trinity-335' && sync   sudo restorecon -F -I -R '/var/lib/trinity/Projects/trinity-335' && sync
  
-====== Settings ======+====== SELinux ======
  
-===== authserver =====+  sudo semanage fcontext --add --type 'bin_t' '/var/lib/trinity/Projects/trinity-335/run/bin/authserver' && sudo restorecon -F -I -R '/var/lib/trinity/Projects/trinity-335/run/bin/authserver'
  
-==== Copy ====+  sudo semanage fcontext --add --type 'bin_t' '/var/lib/trinity/Projects/trinity-335/run/bin/worldserver' && sudo restorecon -F -I -R '/var/lib/trinity/Projects/trinity-335/run/bin/worldserver'
  
-  sudo su 'trinity' -s '/usr/bin/bash'+====== Settings ======
  
-  cp ~/'Projects/trinity-335/run/etc/authserver.conf.dist' ~/'Projects/trinity-335/run/etc/authserver.conf'+===== authserver.conf =====
  
-==== Settings ====+  * See [[notes:trinitycore_confs#authserverconf|authserver.conf]]
  
-  sudo su 'trinity' -s '/usr/bin/bash'+===== worldserver.conf =====
  
-  nano ~/'Projects/trinity-335/run/etc/authserver.conf'+  * See [[notes:trinitycore_confs#worldserverconf|worldserver.conf]]
  
-<code> +====== Create GM Account ======
-WrongPass.MaxCount +
-WrongPass.BanTime +
- +
-StrictVersionCheck +
- +
-LoginDatabaseInfo ".;/var/lib/mysql/mysql.sock;authserver;x;authserver" +
- +
-Updates.EnableDatabases +
- +
-Updates.CleanDeadRefMaxCount -1</code> +
- +
-===== worldserver ===== +
- +
-==== Copy ====+
  
   sudo su 'trinity' -s '/usr/bin/bash'   sudo su 'trinity' -s '/usr/bin/bash'
  
-  cp ~/'Projects/trinity-335/run/etc/worldserver.conf.dist' ~/'Projects/trinity-335/run/etc/worldserver.conf'+  cd ~/'Projects/trinity-335/run/bin&& ~/'Projects/trinity-335/run/bin/authserver'
  
-==== Settings ==== +  Ctrl + C
- +
-  sudo su 'trinity' -s '/usr/bin/bash' +
- +
-  nano ~/'Projects/trinity-335/run/etc/worldserver.conf' +
- +
-<code> +
-LoginDatabaseInfo     = ".;/var/lib/mysql/mysql.sock;authserver;x;authserver" +
-WorldDatabaseInfo     = ".;/var/lib/mysql/mysql.sock;worldserver;x;worldserver" +
-CharacterDatabaseInfo = ".;/var/lib/mysql/mysql.sock;characters;x;characters" +
- +
-MaxCoreStuckTime = 10 +
- +
-CleanCharacterDB = 1 +
-PersistentCharacterCleanFlags = 14 +
- +
-RealmZone = 2 +
-StrictPlayerNames = 1 +
-StrictCharterNames = 1 +
-StrictPetNames = 1 +
- +
-DBC.Locale = 0   +
- +
-Instance.IgnoreRaid = 1 +
- +
-Quests.LowLevelHideDiff = -1 +
- +
-Motd = "Welcome to the Realm of Espionage World of Warcraft server!" +
-Server.LoginInfo = 1 +
-BirthdayTime = 1170471600 +
- +
-Updates.CleanDeadRefMaxCount = -1 +
- +
-Warden.Enabled = 0 +
- +
-PreserveCustomChannels = 0 +
- +
-Ra.Enable = 1 +
- +
-PacketSpoof.Policy = 0</code> +
- +
-=== Production === +
- +
-<code> +
-Warden.Enabled = 1 +
-Warden.ClientCheckFailAction = 2 +
- +
-SOAP.Enabled = 1 +
-SOAP.IP = "0.0.0.0" +
- +
-PreventRenameCharacterOnCustomization = 1 +
- +
-PacketSpoof.Policy = 2 +
-PacketSpoof.BanMode = 2 +
- +
-AntiCheat.PendingMoveChangesTimeoutTime = 3000</code> +
- +
-====== Create GM Account ====== +
- +
-  Starting the ''worldserver'' by itself and first is intentional +
- +
-  sudo su 'trinity' -s '/usr/bin/bash'+
  
   cd ~/'Projects/trinity-335/run/bin' && ~/'Projects/trinity-335/run/bin/worldserver'   cd ~/'Projects/trinity-335/run/bin' && ~/'Projects/trinity-335/run/bin/worldserver'
Line 297: Line 209:
   * Any additional console use should come from ''telnet'' from a remote machine on the local network   * Any additional console use should come from ''telnet'' from a remote machine on the local network
   * :!: Credentials for the remote console are the same as the GM account created above   * :!: Credentials for the remote console are the same as the GM account created above
 +  * 2023/07/30: TODO: ''sed'' didn't work as-expected, hence this isn't a one-liner yet 8-)
  
   sudo su 'trinity' -s '/usr/bin/bash'   sudo su 'trinity' -s '/usr/bin/bash'
Line 314: Line 227:
   * To be done after databases are initialized   * To be done after databases are initialized
   * Applies to the first realm   * Applies to the first realm
-  * :!: If running a LAN server, change ''wow.realmofespionage.xyz'' to LAN IP 
  
   sudo mysql   sudo mysql
Line 321: Line 233:
  
 ===== Two-Factor Authentication ===== ===== Two-Factor Authentication =====
 +
 +  * :!: 2023/07/30: This may have different behavior, see ''TOTPMasterSecret'' in auth and world confs
  
   * To be done after databases are initialized   * To be done after databases are initialized
Line 328: Line 242:
   * Authenticator will be prompted from the game client on each log-in   * Authenticator will be prompted from the game client on each log-in
  
-  mysql -u root -p+  sudo mysql
  
   UPDATE `authserver`.`account` SET `token_key` = 'x' WHERE `account`.`id` = 1   UPDATE `authserver`.`account` SET `token_key` = 'x' WHERE `account`.`id` = 1
Line 340: Line 254:
 ===== authserver ===== ===== authserver =====
  
-==== Service ====+  * 2027/07/30: TODO: Rename the service as ''tc-335-auth'' isn't rememberable
  
-  sudo -e '/etc/systemd/system/tc-335-auth.service' && sudo systemctl daemon-reload && sudo systemctl enable 'tc-335-auth'+  sudo -e '/etc/systemd/system/tc-335-auth.service' && sudo systemctl daemon-reload && sudo systemctl enable 'tc-335-auth' --now
  
 <code> <code>
Line 362: Line 276:
 WantedBy=multi-user.target</code> WantedBy=multi-user.target</code>
  
-=== SELinux === +  sudo systemctl status 'tc-335-auth' -l
- +
-  * :!: May have to re-run this series of commands over-time +
- +
-  sudo setenforce 0 +
- +
-  sudo systemctl start 'tc-335-auth' && sudo systemctl status 'tc-335-auth' -l +
- +
-  mkdir -p ~/'policies' && cd ~/'policies' && sudo grep 'authserver' '/var/log/audit/audit.log' | sudo audit2allow -M 'authserver' && sudo semodule -i 'authserver.pp' && cd ~ +
- +
-  sudo setenforce 1 +
- +
-  nano ~/'policies/authserver.te'+
  
 ===== worldserver ===== ===== worldserver =====
  
-  * :!: Make sure worldserver's Console is disabled before starting the ''worldserver'' service (see [[servers:games:trinitycore_3.3.5#disable_console|configuration]]) +  * :!: Make sure worldserver's Console is disabled before starting the ''worldserver'' service 
- +  * 2027/07/30TODORename the service as ''tc-335-world'' isn't rememberable
-==== Service ====+
  
   sudo -e '/etc/systemd/system/tc-335-world.service' && sudo systemctl daemon-reload && sudo systemctl enable 'tc-335-world'   sudo -e '/etc/systemd/system/tc-335-world.service' && sudo systemctl daemon-reload && sudo systemctl enable 'tc-335-world'
Line 402: Line 303:
 WantedBy=multi-user.target</code> WantedBy=multi-user.target</code>
  
-=== SELinux === +  sudo systemctl status 'tc-335-world' -l
- +
-  * :!: May have to re-run this series of commands over-time +
- +
-  sudo setenforce 0 +
- +
-  sudo systemctl start 'tc-335-world' && sudo systemctl status 'tc-335-world' -l +
- +
-  mkdir -p ~/'policies' && cd ~/'policies' && sudo grep 'worldserver' '/var/log/audit/audit.log' | sudo audit2allow -M 'worldserver' && sudo semodule -i 'worldserver.pp' && cd ~ +
- +
-  sudo setenforce 1 +
- +
-  nano ~/'policies/worldserver.te'+
  
 ===== Information ===== ===== Information =====
Line 568: Line 457:
  
   * This backs up an archive to the local disk   * This backs up an archive to the local disk
-  * :!: Everything below this line may need re-factored and isn't tested with the updated notes as of 2019/02/19 
  
 ==== authserver ==== ==== authserver ====
Line 662: Line 550:
 ==== Backup Database ==== ==== Backup Database ====
  
-  mysqldump -u 'root' -p --defaults-extra-file='/var/lib/mysql/auth/authserver' --single-transaction 'authserver' -r ~/'authserver-database-manual-'$(date +%Y-%m-%d)'.sql' && sync+  sudo mysqldump --defaults-extra-file='/var/lib/mysql/auth/authserver' --single-transaction 'authserver' -r ~/'authserver-database-manual-'$(date +%Y-%m-%d)'.sql' && sync
  
-  mysqldump -u 'root' -p --defaults-extra-file='/var/lib/mysql/auth/characters' --single-transaction 'characters' -r ~/'characters-database-manual-'$(date +%Y-%m-%d)'.sql' && sync+  sudo mysqldump --defaults-extra-file='/var/lib/mysql/auth/characters' --single-transaction 'characters' -r ~/'characters-database-manual-'$(date +%Y-%m-%d)'.sql' && sync
  
 ==== Start Services ==== ==== Start Services ====
Line 714: Line 602:
 ==== Drop Previous Database ==== ==== Drop Previous Database ====
  
-  mysql -u 'root' -p+  sudo mysql
  
   DROP DATABASE authserver;   DROP DATABASE authserver;
Line 724: Line 612:
 ==== Re-create Databases ==== ==== Re-create Databases ====
  
-  mysql -u 'root' -p+  sudo mysql
  
   CREATE DATABASE authserver;   CREATE DATABASE authserver;
Line 732: Line 620:
 ==== Restore Database ==== ==== Restore Database ====
  
-  mysql -u 'root' -p 'authserver' < ~/'authserver-database-'*'.sql' && sync+  sudo mysql 'authserver' < ~/'authserver-database-'*'.sql' && sync
  
-  mysql -u 'root' -p 'characters' < ~/'characters-database-'*'.sql' && sync+  sudo mysql 'characters' < ~/'characters-database-'*'.sql' && sync
  
 ==== Reapply Permissions ==== ==== Reapply Permissions ====
  
-  mysql -u 'root' -p+  sudo mysql
  
   GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost' IDENTIFIED BY 'x';   GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost' IDENTIFIED BY 'x';
Line 757: Line 645:
  
   rm ~/'authserver-database-'*'.sql' ~/'characters-database-'*'.sql' && sync   rm ~/'authserver-database-'*'.sql' ~/'characters-database-'*'.sql' && sync
 +
/var/www/wiki/data/pages/servers/games/trinitycore_3.3.5.txt · Last modified: 2023/07/31 08:27 by Sean Rhone