docs-en:debian12-install-guide.md

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.

[[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)

  • 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.
passwd
sudo sed -i 's/^#Port 22\+$/Port 55022/' /etc/ssh/sshd_config
sudo systemctl restart sshd
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
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
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.

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.

PuTTY

FileZilla

HeidiSQL

  • 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

git -C ~/ clone https://github.com/azerothcore/azerothcore-wotlk.git --branch master --single-branch azerothcore
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 
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
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
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
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.
screen -AmdS auth ~/server/bin/authserver
screen -AmdS world ~/server/bin/worldserver
screen -r world
account create USERNAME PASSWORD
account set gmlevel USERNAME 3 -1
  • To exit screen: Ctrl+A → Ctrl+D
  • To kill process: Ctrl+C

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.
acoreupdate
  • 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

Auth/Worldserver wont even start.

Successful login but cant enter the realm.


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.
  • docs-en/debian12-install-guide.md.txt
  • 最后更改: 2024/03/15 19:08
  • 127.0.0.1