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/09/30 06:22] – [Notes] 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 are partially up-to-date. TC works fine with MariaDB also +
-  * :!: Do **not** use Warmane's WotLK client 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.22081/TDB_full_world_335.22081_2022_08_15.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 ======
  
   * :!: This wipes out the ''run'' folder, so ideally any extracted content and the full TDB shouldn't be moved there until after this initial compile   * :!: This wipes out the ''run'' folder, so ideally any extracted content and the full TDB shouldn't be moved there until after this initial compile
 +  * :!: For content extraction, Fedora major versions should match between the compiler and extraction machines for Boost libraries ((can use ''LD_LIBRARY_PATH=.'' for all the extraction commands, and copy the requested ''.so'' library files from [[https://pkgs.org/|downloaded]] packages into the WoW folder))
  
   sudo su 'trinity' -s '/usr/bin/bash'   sudo su 'trinity' -s '/usr/bin/bash'
Line 114: 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 128: 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 136: 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 142: 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 148: 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 162: 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 168: 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 177: Line 165:
   ls ~/'dbc' ~/'maps' ~/'vmaps' ~/'mmaps' ~/'Cameras' > '/dev/null' && sudo rm -Rf '/var/lib/trinity/Projects/trinity-335/run/bin/dbc' '/var/lib/trinity/Projects/trinity-335/run/bin/maps' '/var/lib/trinity/Projects/trinity-335/run/bin/vmaps' '/var/lib/trinity/Projects/trinity-335/run/bin/mmaps' '/var/lib/trinity/Projects/trinity-335/run/bin/Cameras' && cd ~ && sudo mv 'dbc' 'maps' 'vmaps' 'mmaps' 'Cameras' '/var/lib/trinity/Projects/trinity-335/run/bin' && sudo chown -R 'trinity':'trinity' '/var/lib/trinity/Projects/trinity-335/run/bin/dbc' '/var/lib/trinity/Projects/trinity-335/run/bin/maps' '/var/lib/trinity/Projects/trinity-335/run/bin/vmaps' '/var/lib/trinity/Projects/trinity-335/run/bin/mmaps' '/var/lib/trinity/Projects/trinity-335/run/bin/Cameras' && sync   ls ~/'dbc' ~/'maps' ~/'vmaps' ~/'mmaps' ~/'Cameras' > '/dev/null' && sudo rm -Rf '/var/lib/trinity/Projects/trinity-335/run/bin/dbc' '/var/lib/trinity/Projects/trinity-335/run/bin/maps' '/var/lib/trinity/Projects/trinity-335/run/bin/vmaps' '/var/lib/trinity/Projects/trinity-335/run/bin/mmaps' '/var/lib/trinity/Projects/trinity-335/run/bin/Cameras' && cd ~ && sudo mv 'dbc' 'maps' 'vmaps' 'mmaps' 'Cameras' '/var/lib/trinity/Projects/trinity-335/run/bin' && sudo chown -R 'trinity':'trinity' '/var/lib/trinity/Projects/trinity-335/run/bin/dbc' '/var/lib/trinity/Projects/trinity-335/run/bin/maps' '/var/lib/trinity/Projects/trinity-335/run/bin/vmaps' '/var/lib/trinity/Projects/trinity-335/run/bin/mmaps' '/var/lib/trinity/Projects/trinity-335/run/bin/Cameras' && sync
  
-====== Settings ======+  sudo restorecon -F -I -R '/var/lib/trinity/Projects/trinity-335' && sync
  
-===== authserver =====+====== SELinux ======
  
-==== Copy ====+  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'
  
-  sudo su 'trinity' -'/usr/bin/bash'+  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'
  
-  cp ~/'Projects/trinity-335/run/etc/authserver.conf.dist' ~/'Projects/trinity-335/run/etc/authserver.conf'+====== Settings ======
  
-==== Settings ====+===== authserver.conf =====
  
-  sudo su 'trinity' -s '/usr/bin/bash'+  * See [[notes:trinitycore_confs#authserverconf|authserver.conf]]
  
-  nano ~/'Projects/trinity-335/run/etc/authserver.conf'+===== worldserver.conf =====
  
-<code> +  * See [[notes:trinitycore_confs#worldserverconf|worldserver.conf]]
-WrongPass.MaxCount = 5 +
-WrongPass.BanTime = 0+
  
-StrictVersionCheck +====== Create GM Account ======
- +
-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 294: 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 311: 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 318: 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 325: 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 337: 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 359: 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+
  
 ===== 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 397: 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+
  
 ===== Information ===== ===== Information =====
Line 561: 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 655: 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 707: Line 602:
 ==== Drop Previous Database ==== ==== Drop Previous Database ====
  
-  mysql -u 'root' -p+  sudo mysql
  
   DROP DATABASE authserver;   DROP DATABASE authserver;
Line 717: Line 612:
 ==== Re-create Databases ==== ==== Re-create Databases ====
  
-  mysql -u 'root' -p+  sudo mysql
  
   CREATE DATABASE authserver;   CREATE DATABASE authserver;
Line 725: 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 750: 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