From 9d2ada6d70e21ff4b27e7809241cfad31213e27b Mon Sep 17 00:00:00 2001
From: Degen <61268368+aradep@users.noreply.github.com>
Date: Wed, 2 Oct 2024 14:25:20 -0300
Subject: [PATCH] Update debian12-install-guide.md (#1005)
Removed MariaDB. Updated to MySQL 8.4
---
docs/debian12-install-guide.md | 114 +++++++++++++++++----------------
1 file changed, 58 insertions(+), 56 deletions(-)
diff --git a/docs/debian12-install-guide.md b/docs/debian12-install-guide.md
index f6fb9fbf4..8c886b95e 100644
--- a/docs/debian12-install-guide.md
+++ b/docs/debian12-install-guide.md
@@ -1,32 +1,19 @@
-{% include warning.html content="This guide is out-dated as it refers to MariaDB, which is no longer supported." %}
+# AzerothCore Debian 12 Install Guide
-# AzerothCore Debian 12 Quick Install Guide
+This is a quickstart guide for installing AzerothCore to a Debian 12 server, securing it, and enabling one-command maintenance from your Windows PC.
-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
-
-- [AzerothCore Debian 12 Quick Install Guide](#azerothcore-debian-12-quick-install-guide)
- - [Table of Contents](#table-of-contents)
- [Requirements](#requirements)
- - [PuTTY](#putty)
- - [FileZilla](#filezilla)
- - [HeidiSQL](#heidisql)
- - [Debian 12](#debian-12)
- [Debian Setup](#debian-setup)
- [First Login](#first-login)
- - [Change Default Password](#change-default-password)
- [Change Default SSH Port](#change-default-ssh-port)
- [Setup Firewall](#setup-firewall)
+ - [Get MySQL](#get-mysql)
- [Get Dependencies](#get-dependencies)
- [Install SQL Database](#install-sql-database)
- [SSH Setup](#ssh-setup)
- [Key Generation](#key-generation)
- - [Debian Public Key](#debian-public-key)
- - [Windows Private Key](#windows-private-key)
- [Key-based Login Setup](#key-based-login-setup)
- - [PuTTY](#putty-1)
- - [FileZilla](#filezilla-1)
- - [HeidiSQL](#heidisql-1)
- [Disable Password Logins](#disable-password-logins)
- [AzerothCore Installation](#azerothcore-installation)
- [Clone Repository](#clone-repository)
@@ -38,42 +25,32 @@ This is a streamlined guide for installing AzerothCore to a Debian 12 server, se
- [Launch Server](#launch-server)
- [Create GM account](#create-gm-account)
- [Maintenance](#maintenance)
- - [Create Alias Command](#create-alias-command)
- - [Update AzerothCore](#update-azerothcore)
- - [Finish!](#finish)
- [Common Problems](#common-problems)
- - [Auth/Worldserver wont even start.](#authworldserver-wont-even-start)
- - [Successful login but cant enter the realm.](#successful-login-but-cant-enter-the-realm)
- - [Good things to know that this guide does not cover.](#good-things-to-know-that-this-guide-does-not-cover)
- [Other Resources](#other-resources)
## Requirements
-
##### [PuTTY](https://www.putty.org/)
- A Windows program for sending commands to the server.
-##### [FileZilla](https://filezilla-project.org/download.php)
-- A Windows program for transferring files to/from the server.
-##### [HeidiSQL](https://www.heidisql.com/)
-- A Windows program for connecting to the servers SQL database.
##### [Debian 12](https://www.ovhcloud.com/en-ca/vps/)
- A server with Debian 12 installed. (ex: 4gb/4core VPS from OVH)
+### Optional
+##### [FileZilla](https://filezilla-project.org/download.php)
+- A Windows program for transferring files to/from the server. Used during [SSH Setup](#ssh-setup) to copy the generated key file to your PC.
+##### [HeidiSQL](https://www.heidisql.com/)
+- A Windows program for connecting to the servers SQL database. Not used in this guide.
---
## Debian Setup
### First Login
-- Use **PuTTY** to connect to your Debian server using the IP address and login credentials supplied by the hosting provider.
+- Use **PuTTY** to connect to your Debian server using the IP address and login credentials supplied by the hosting provider. (If you are logging in as root, first create a new user with sudo privileges and switch to it.)
- Copy the following code blocks and paste them into the PuTTY terminal with right click, then hit enter.
-### Change Default Password
-```bash
-passwd
-```
### Change Default SSH Port
```bash
sudo sed -i 's/^#Port 22\+$/Port 55022/' /etc/ssh/sshd_config
sudo systemctl restart sshd
```
-- Remember to use 55022 as the SSH port for subsequent connections.
+- Remember to use 55022 as the SSH port from now on.
### Setup Firewall
```bash
sudo apt install ufw
@@ -84,16 +61,29 @@ sudo ufw allow 3724
sudo ufw allow 8085
sudo ufw enable
```
+### Get MySQL
+```bash
+mkdir -p ~/mysqlpackages && cd ~/mysqlpackages
+wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+sudo dpkg -i mysql-apt-config_0.8.32-1_all.deb
+```
+- MySQL Server & Cluster: mysql-8.4
+- MySQL Tools & Connectors: Enabled
### Get Dependencies
```bash
-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 apt update && sudo apt install git cmake make gcc g++ clang libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev mysql-server libboost-all-dev build-essential p7zip-full screen fail2ban -y
```
### Install SQL Database
```bash
sudo mysql_secure_installation
```
-- **-/N/Y/Y/Y/Y/Y**
+- Validate password component: N
+- Change the password for root: Y
+ - Enter a password for the SQL root user.
+- Remove anonymous users: Y
+- Disallow root login remotely: Y
+- Remove test database: Y
+- Reload privilege tables: Y
```bash
sudo mysql -u root -p
```
@@ -108,6 +98,7 @@ exit
- Change **SQLPASSWORD** to something more secure.
---
## SSH Setup
+This is an optional step that involves creating a key file and disabling password-based SSH logins to increase security of the Debian server and SQL database.
### Key Generation
#### Debian Public Key
@@ -120,16 +111,30 @@ cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
- 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
+
+
+PuTTY
+
![PuTTY1](https://github.com/azerothcore/wiki/assets/61268368/6210d43d-a7c4-4444-b896-4f23a2ee415f)
![PuTTY2](https://github.com/azerothcore/wiki/assets/61268368/e39e5a4f-f93f-4a69-9d9c-785bd98afdbd)
+
+
+
+FileZilla
+
#### FileZilla
![FileZilla](https://github.com/azerothcore/wiki/assets/61268368/d45e952a-4f3b-4c38-9cdb-b72f5bc76651)
-#### HeidiSQL
-![HeidiSQL1](https://github.com/azerothcore/wiki/assets/61268368/9d693ba8-bd49-448c-92b4-2206b7e04e41)
+
+
+
+HeidiSQL
+
+![HeidiSQL12](https://github.com/user-attachments/assets/b23a37d2-774e-4a47-b5b5-2bb2ba73c690)
![HeidiSQL2](https://github.com/azerothcore/wiki/assets/61268368/4043857a-2d1e-4c5b-bb61-2d76ed8a5514)
+
+
### Disable Password Logins
-- **After confirming that key-based login works**, disable password logins to enhance SSH security.
+- **After confirming that key-based login works**, disable password logins.
```bash
sudo sed -i -E 's/#?PasswordAuthentication yes/PasswordAuthentication no/' ~/etc/ssh/sshd_config
sudo rm /etc/ssh/sshd_config.d/*
@@ -170,15 +175,6 @@ sudo sed -i -E 's/= "127.0.0.1;3306;acore;acore;/= "127.0.0.1;3306;acore;SQLPASS
```
- Change **USERNAME** to your Debian user.
- Change **SQLPASSWORD** to the password for the acore database user.
-### Set Realm IP
-```bash
-sudo mysql -u acore -p
-```
-- Enter the password for the acore database user.
-```sql
-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
```bash
screen -AmdS auth ~/server/bin/authserver
@@ -191,10 +187,21 @@ screen -r world
account create USERNAME PASSWORD
account set gmlevel USERNAME 3 -1
```
+- Detach from the worldserver screen with Ctrl+A -> Ctrl+D
-- **To exit screen:** Ctrl+A -> Ctrl+D
-- **To kill process:** Ctrl+C
+### Set Realm IP
+```bash
+sudo mysql -u acore -p
+```
+- Enter the password for the acore database user.
+```sql
+UPDATE acore_auth.realmlist SET address = '0.0.0.0' WHERE id = 1;
+exit
+```
+- Change **0.0.0.0** to the public IP address of your Debian12 server.
+## Finish!
+- You should now be able to log into AzerothCore by setting your realmlist to the public IP address of the Debian12 server. ex: `set realmlist 0.0.0.0`
---
## Maintenance
### Create Alias Command
@@ -218,11 +225,6 @@ source ~/.bashrc
```
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