AzerothCore Debian 12 Quick Install Guide
This is a streamlined guide for installing AzerothCore to a Debian 12 server, securing it, and enabling one-command maintenance from your Windows PC.
Table of Contents
Requirements
[[https://www.putty.org/|PuTTY]]
- A Windows program for sending commands to the server.
[[https://filezilla-project.org/download.php|FileZilla]]
- A Windows program for transferring files to/from the server.
[[https://www.heidisql.com/|HeidiSQL]]
- A Windows program for connecting to the servers SQL database.
[[https://www.ovhcloud.com/en-ca/vps/|Debian 12]]
- A server with Debian 12 installed. (ex: 4gb/4core VPS from OVH)
Debian Setup
First Login
- Use PuTTY to connect to your Debian server using the IP address and login credentials supplied by the hosting provider.
- Copy the following code blocks and paste them into the PuTTY terminal with right click, then hit enter.
Change Default Password
passwd
Change Default SSH Port
sudo sed -i 's/^#Port 22\+$/Port 55022/' /etc/ssh/sshd_config sudo systemctl restart sshd
Setup Firewall
sudo apt install ufw sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 55022 sudo ufw allow 3724 sudo ufw allow 8085 sudo ufw enable
Get Dependencies
sudo apt update && sudo apt full-upgrade -y sudo apt install git cmake make gcc g++ clang libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mariadb-server mariadb-client libmariadb-dev libmariadb-dev-compat build-essential p7zip-full screen fail2ban -y
Install SQL Database
sudo mysql_secure_installation
- -/N/Y/Y/Y/Y/Y
sudo mysql -u root -p
- Enter the root password you just set up.
DROP USER IF EXISTS 'acore'@'localhost'; CREATE USER 'acore'@'%' IDENTIFIED BY 'NEWPASSWORD'; GRANT ALL PRIVILEGES ON * . * TO 'acore'@'%'; GRANT ALL PRIVILEGES ON `acore_world` . * TO 'acore'@'%'; GRANT ALL PRIVILEGES ON `acore_characters` . * TO 'acore'@'%'; GRANT ALL PRIVILEGES ON `acore_auth` . * TO 'acore'@'%'; exit
- Change NEWPASSWORD to something more secure.
SSH Setup
Key Generation
Debian Public Key
ssh-keygen -t ed25519 -C "Debian12" cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
Windows Private Key
- Use Filezilla to connect to the server and navigate to
home/debian/ssh/
- Copy the
id_ed25519
file to your PC and load it into puttygen.exe (located in the PuTTY folder) - Generate a private key
.ppk
file. Store this file somewhere safe and make a backup.
Key-based Login Setup
PuTTY
FileZilla
HeidiSQL
Disable Password Logins
- After confirming that key-based login works, disable password logins to enhance SSH security.
sudo sed -i -E 's/#?PasswordAuthentication yes/PasswordAuthentication no/' ~/etc/ssh/sshd_config sudo rm /etc/ssh/sshd_config.d/* sudo service ssh restart
AzerothCore Installation
Clone Repository
git -C ~/ clone https://github.com/azerothcore/azerothcore-wotlk.git --branch master --single-branch azerothcore
Add Anticheat Module
git -C ~/azerothcore/modules clone https://github.com/azerothcore/mod-anticheat cp -n ~/azerothcore/modules/mod-anticheat/conf/Anticheat.conf.dist ~/server/etc/Anticheat.conf
Get Data Files
mkdir -p ~/server/data && cd ~/server/data wget https://github.com/wowgaming/client-data/releases/download/v16/data.zip 7z x data.zip && rm data.zip
Build Core
mkdir -p ~/azerothcore/build && cd ~/azerothcore/build cmake ../ -DCMAKE_INSTALL_PREFIX=$HOME/server/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=db-only -DSCRIPTS=static -DMODULES=static make -j $(nproc) install
Edit Configs
cp -n ~/server/etc/authserver.conf.dist ~/server/etc/authserver.conf cp -n ~/server/etc/worldserver.conf.dist ~/server/etc/worldserver.conf sudo sed -i -E 's/DataDir = "."/DataDir = "\~\/server\/data"/' ~/server/etc/worldserver.conf sudo sed -i -E 's/= "127.0.0.1;3306;acore;acore;/= "127.0.0.1;3306;acore;NEWPASSWORD;/' ~/server/etc/*.conf
- Change NEWPASSWORD to the password you used earlier during the SQL database setup.
Set Realm IP
sudo mysql -u root -p
UPDATE acore_auth.realmlist SET address = '0.0.0.0' WHERE id = 1;
- Change 0.0.0.0 to the public IP address of your Debian12 server.
Launch Server
screen -AmdS auth ~/server/bin/authserver screen -AmdS world ~/server/bin/worldserver screen -r world
Create GM account
account create USERNAME PASSWORD account set gmlevel USERNAME 3 -1
- To exit screen: Ctrl+A → Ctrl+D
- To kill process: Ctrl+C
Maintainence
Create Alias Command
touch ~/.bash_aliases echo "alias acoreupdate=' screen -S world -p 0 -X stuff "saveall^m"; screen -X -S "world" quit; git -C ~/azerothcore/modules/mod-anticheat pull; git -C ~/azerothcore pull; cd ~/azerothcore/build; cmake ../ -DCMAKE_INSTALL_PREFIX=$HOME/server/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=db-only -DSCRIPTS=static -DMODULES=static; make -j $(nproc) install; screen -AmdS world ~/server/bin/worldserver; screen -r world;'" > ~/.bash_aliases source ~/.bashrc
- Now we can save/exit the worldserver, pull the latest changes from GitHub, build the updated core, and restart the worldserver all with one command.
Update AzerothCore
acoreupdate
Finish!
- You should now be able to connect to the AzerothCore server by setting your realmlist to the public IP address of the Debian12 server. ex:
set realmlist 0.0.0.0
Common Problems
Auth/Worldserver wont even start.
- Make sure you created the .conf files and matched the password of the SQL user.
Successful login but cant enter the realm.
- Double check the realm address.
Good things to know that this guide does not cover.
- Domain name and DNS setup for “set realmlist logon.server.com”
- Wordpress registration site & acore-cms plugin SOAP connection.
- Automated database backups to Google Drive using cron and rclone.