| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| servers:linux:games:trinitycore_3.3.5_localhost [2026/05/20 19:46] – Sean Rhone | servers:linux:games:trinitycore_3.3.5_localhost [2026/05/30 21:35] (current) – [TDB] Sean Rhone |
|---|
| ====== Information ====== | ====== Information ====== |
| |
| * TrinityCore ((https://www.trinitycore.org)) | * TrinityCore |
| | * ''3.3.5'' |
| * [[https://talk.trinitycore.org/t/singleplayer-scripts-and-desktop-start-launchers-on-windows-linux-freebsd/33293/7|TrinityCore Forums]] | * [[https://talk.trinitycore.org/t/singleplayer-scripts-and-desktop-start-launchers-on-windows-linux-freebsd/33293/7|TrinityCore Forums]] |
| |
| * These notes provide a local single-player server for World of Warcraft 3.3.5 | |
| * For a traditional dedicated server see [[servers:linux:games:trinitycore_3.3.5|these notes]] | |
| |
| * :!: 2026/05/20: WIP | |
| |
| ===== Media ===== | |
| |
| * [[https://www.youtube.com/watch?v=NaEoXA53tYM|localhost Server and Desktop Launcher Presentation Video]] | |
| * [[https://media.realmofespionage.xyz/index/category/6|Progress Pics]] | |
| |
| ===== Resources ===== | |
| |
| * [[https://trinitycore.org/|TrinityCore]] | |
| * [[https://trinitycore.info/|TrinityCore MMo Project Wiki]] | |
| |
| ===== Prerequisites ===== | ===== Prerequisites ===== |
| * unix_socket authentication: ''Y'' | * unix_socket authentication: ''Y'' |
| * Change the root password: ''n'' | * Change the root password: ''n'' |
| * Shutdown: ''Ctrl + \'' | |
| |
| '/usr/sbin/mariadbd' --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' | mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' |
| |
| mariadb-secure-installation --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER | mariadb-secure-installation --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER |
| | |
| | mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER |
| |
| ====== Databases ====== | ====== Databases ====== |
| ===== Connect ===== | ===== Connect ===== |
| |
| * Shutdown: ''Ctrl + \'' | mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' |
| | |
| '/usr/sbin/mariadbd' --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' | |
| |
| mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER | mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER |
| |
| FLUSH PRIVILEGES;EXIT; | FLUSH PRIVILEGES;EXIT; |
| | |
| | mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER |
| |
| ====== Initial Compile ====== | ====== Initial Compile ====== |
| * https://trinitycore.info/en/install/Core-Installation/linux-core-installation | * https://trinitycore.info/en/install/Core-Installation/linux-core-installation |
| |
| cd ~ && rm -Rf ~/'Projects/TrinityCore-335/build' ~/'Projects/TrinityCore-335/run' && mkdir -p ~/'Projects/TrinityCore-335/build' ~/'Projects/TrinityCore-335/run' && cd ~/'Projects/TrinityCore-335/build' && cmake ~/'Projects/TrinityCore-335/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/TrinityCore-335/run' -DCMAKE_BUILD_TYPE='Release' -DCMAKE_C_COMPILER='/usr/bin/gcc' -DCMAKE_CXX_COMPILER='/usr/bin/g++' -DDSCRIPTS='static' -DUSE_COREPCH='0' -DUSE_SCRIPTPCH='0' -DCMAKE_CXX_FLAGS="-march='native' -w" -DWITHOUT_METRICS='1' -DTOOLS='1' && make --jobs=$(nproc) install && cd - | cd ~ && rm -Rf ~/'Projects/TrinityCore-335/build' ~/'Projects/TrinityCore-335/run' && mkdir -p ~/'Projects/TrinityCore-335/build' ~/'Projects/TrinityCore-335/run' && cd ~/'Projects/TrinityCore-335/build' && cmake ~/'Projects/TrinityCore-335/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/TrinityCore-335/run' -DCMAKE_BUILD_TYPE='Release' -DCMAKE_C_COMPILER='/usr/bin/gcc' -DCMAKE_CXX_COMPILER='/usr/bin/g++' -DNOJEM='1' -DSCRIPTS='static' -DUSE_COREPCH='0' -DUSE_SCRIPTPCH='0' -DCMAKE_CXX_FLAGS="-march='native' -w" -DWITHOUT_METRICS='1' -DTOOLS='1' && make --jobs=$(nproc) install && cd - |
| |
| ====== Content ====== | ====== Content ====== |
| |
| * https://github.com/TrinityCore/TrinityCore/releases | * https://github.com/TrinityCore/TrinityCore/releases |
| | * Expects [[#databases|Initial DB set-up]] |
| * Last tested: ''TDB_full_world_335.25101_2025_10_21.7z'' | * Last tested: ''TDB_full_world_335.25101_2025_10_21.7z'' |
| |
| ls ~/'Downloads/TDB_full_world_335.'*'.7z' && rm -f ~/'Projects/TrinityCore-335/run/bin/TDB_full_world_335.'*'.sql' && 7z e -o$HOME/'Projects/TrinityCore-335/run/bin' -y ~/'Downloads/TDB_full_world_335.'*'.7z' | mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' |
| |
| === Later Clean-up === | 7z e -o'/tmp' -y ~/'Downloads/TDB_full_world_335.'*'.7z' && cat '/tmp/TDB_full_world_335.'*'.sql' | mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER 'worldserver' |
| |
| * Can be deleted **after** initial ''worldserver'' import | mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER |
| |
| rm -fv ~/'Projects/TrinityCore-335/run/bin/TDB_full_world_335.'*'.sql' | rm -f '/tmp/TDB_full_world_335.'*'.sql' |
| |
| ====== Settings ====== | ====== Settings ====== |
| mkdir -p ~/'Projects/TrinityCore-335/authserver.conf.d' && nano ~/'Projects/TrinityCore-335/authserver.conf.d/localhost-authserver.conf' | mkdir -p ~/'Projects/TrinityCore-335/authserver.conf.d' && nano ~/'Projects/TrinityCore-335/authserver.conf.d/localhost-authserver.conf' |
| |
| <code>[authserver] | <code> |
| | [authserver] |
| |
| # Connection | # Connection |
| cd ~/'Projects/TrinityCore-335/build' | cd ~/'Projects/TrinityCore-335/build' |
| |
| cmake ~/'Projects/TrinityCore-335/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/TrinityCore-335/run' -DCMAKE_BUILD_TYPE='Release' -DCMAKE_C_COMPILER='/usr/bin/gcc' -DCMAKE_CXX_COMPILER='/usr/bin/g++' -DDSCRIPTS='static' -DUSE_COREPCH='0' -DUSE_SCRIPTPCH='0' -DCMAKE_CXX_FLAGS="-march='native' -w" -DWITHOUT_METRICS='1' -DTOOLS='0' | cmake ~/'Projects/TrinityCore-335/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/TrinityCore-335/run' -DCMAKE_BUILD_TYPE='Release' -DCMAKE_C_COMPILER='/usr/bin/gcc' -DCMAKE_CXX_COMPILER='/usr/bin/g++' -DNOJEM='1' -DSCRIPTS='static' -DUSE_COREPCH='0' -DUSE_SCRIPTPCH='0' -DCMAKE_CXX_FLAGS="-march='native' -w" -DWITHOUT_METRICS='1' -DTOOLS='0' |
| make -j "$(nproc)" install | make -j "$(nproc)" install |
| |
| cp -f ~/'Projects/TrinityCore-335/run/etc/worldserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/worldserver.conf' | cp -f ~/'Projects/TrinityCore-335/run/etc/worldserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/worldserver.conf' |
| |
| zenity --title 'WoW 3.3.5 Updater' --text 'localhost server update complete' --icon ~/'.wine/Icons/WoW-335-256.png' --timeout '3' --info | zenity --title 'WoW 3.3.5 Updater' --text 'localhost server update complete' --icon ~/'.wine/Icons/WoW-335-256.png' --timeout '2' --info |
| |
| # End</code> | # End</code> |
| cd '/tmp' | cd '/tmp' |
| |
| kgx --working-directory='/tmp' -T 'WoW 3.3.5 [MariaDB]' -e ~/'Projects/TrinityCore-335/scripts/localhost-database-start.sh' & | mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' |
| sleep '2' | sleep '2' |
| |
| cd '/tmp' | cd '/tmp' |
| |
| zenity --title 'WoW 3.3.5 (localhost)' --text 'Starting DB maintenance...' --icon ~/'.wine/Icons/WoW-335-256.png' --timeout '1' --info | zenity --title 'WoW 3.3.5 (localhost)' --text 'Starting DB maintenance...' --icon ~/'.wine/Icons/WoW-335-256.png' --timeout '2' --info |
| |
| ptyxis --standalone --title='WoW 3.3.5 [MariaDB]' -- ~/'Projects/TrinityCore-335/scripts/localhost-database-start.sh' & | mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' |
| sleep '2' | sleep '2' |
| |
| ==== Start MariaDB ==== | ==== Start MariaDB ==== |
| |
| * Shutdown: ''Ctrl + \'' | **** |
| |
| '/usr/sbin/mariadbd' --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' | mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' |
| |
| ==== authserver ==== | ==== authserver ==== |
| |
| cat ~/'Downloads/'*'-localhost-characters.sql' | mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER 'characters' | cat ~/'Downloads/'*'-localhost-characters.sql' | mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER 'characters' |
| | |
| | ==== Shutdown MariaDB ==== |
| | |
| | **** |
| | |
| | mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER |
| |
| ====== Quick Commands ====== | ====== Quick Commands ====== |
| ==== MariaDB ==== | ==== MariaDB ==== |
| |
| * Shutdown: ''Ctrl + \'' | === Background === |
| |
| '/usr/sbin/mariadbd' --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' | mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' |
| |
| === Alt Shutdown === | mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER |
| |
| **** | === Foreground === |
| |
| mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER | * Shutdown: ''Ctrl + \'' |
| | |
| | '/usr/sbin/mariadbd' --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' |
| |
| ==== authserver ==== | ==== authserver ==== |
| |
| cd ~/'Projects/TrinityCore-335/run/bin' && ~/'Projects/TrinityCore-335/run/bin/worldserver' --config-dir ~/'Projects/TrinityCore-335/worldserver.conf.d' | cd ~/'Projects/TrinityCore-335/run/bin' && ~/'Projects/TrinityCore-335/run/bin/worldserver' --config-dir ~/'Projects/TrinityCore-335/worldserver.conf.d' |
| | |
| | ===== DB Maintenance ===== |
| | |
| | **** |
| | |
| | mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' && sleep '2' && mariadb-check --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER -o -A -f -e --auto-repair && mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER |
| |
| ===== DB Reset ===== | ===== DB Reset ===== |
| |
| * ''DROP'' existing + ''CREATE'' + ''GRANT'' | * ''DROP'' existing + ''CREATE'' + ''GRANT'' |
| * [[#restore|Restore]] authserver/characters | * Restore [[#restore|authserver/characters]] |
| | * Import [[#world_database|World DB]] |
| |
| mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --execute='DROP DATABASE authserver;DROP DATABASE characters;DROP DATABASE worldserver;CREATE DATABASE authserver;CREATE DATABASE characters;CREATE DATABASE worldserver;GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost';GRANT ALL PRIVILEGES ON characters.* to 'characters'@'localhost';GRANT ALL PRIVILEGES ON worldserver.* to 'worldserver'@'localhost';FLUSH PRIVILEGES;' | mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --execute='DROP DATABASE authserver;DROP DATABASE characters;DROP DATABASE worldserver;CREATE DATABASE authserver;CREATE DATABASE characters;CREATE DATABASE worldserver;GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost';GRANT ALL PRIVILEGES ON characters.* to 'characters'@'localhost';GRANT ALL PRIVILEGES ON worldserver.* to 'worldserver'@'localhost';FLUSH PRIVILEGES;' |
| |