maj readme
This commit is contained in:
		
							parent
							
								
									421bc13383
								
							
						
					
					
						commit
						ca8eb8b36e
					
				
							
								
								
									
										115
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										115
									
								
								README.md
									
									
									
									
									
								
							| @ -1,8 +1,115 @@ | ||||
| # wow private server (vmangos) | ||||
| # WORLD OF WARCRAFT SERVER INSTALL (VERSION 1.12) | ||||
| 
 | ||||
| - dump db: | ||||
| ## PRE REQUIS | ||||
| 
 | ||||
| - debian 12 | ||||
| - user wow | ||||
| - ports: | ||||
|   - TCP: 3724, 8085 | ||||
|   - UDP: 3724, 8085 | ||||
| 
 | ||||
| - WOW 1.12 client: https://drive.usercontent.google.com/download?id=1TDoNNUXCtsgIUhLw96biPCqjv3AcLYkg&export=download | ||||
| 
 | ||||
| ## CONFIG | ||||
| 
 | ||||
| - Mettre en place les données du server: | ||||
| ```bash | ||||
| docker exec nom_du_conteneur_db mysqldump -u root -pMOTDEPASS --databases realmd mangos characters logs > full_dump.sql | ||||
| wget https://www.mediafire.com/file_premium/j6cyqjeif3dvrv2/data.7z | ||||
| 7z x data.7z | ||||
| rm -r data.7z | ||||
| mv data/ storage/mangosd/extracted-data/ | ||||
| ``` | ||||
| 
 | ||||
| mysql -u root -p < full_dump.sql | ||||
| - Modifier l'IP du server: | ||||
| ```bash | ||||
| nano compose.yml | ||||
| ``` | ||||
| 
 | ||||
| ## LANCER LA STACK | ||||
| 
 | ||||
| ```bash | ||||
| docker compose up -d | ||||
| ``` | ||||
| 
 | ||||
| ## CREER UN UTILISATEURS | ||||
| 
 | ||||
| Lancer le service mangosd: | ||||
| ```bash | ||||
| docker attach vmangos-deploy-mangosd-1 | ||||
| ``` | ||||
| 
 | ||||
| - Créer un utilisateur: | ||||
| ```bash | ||||
| account create <username> <password> | ||||
| ``` | ||||
| 
 | ||||
| [autres commandes](https://github.com/dkpminus/mangos-gm-commands) | ||||
| 
 | ||||
| ## PROTEGER LE SERVEUR VIA FAIL2BAN | ||||
| 
 | ||||
| - Installer fail2ban: | ||||
| ```bash | ||||
| sudo apt install fail2ban -y | ||||
| ``` | ||||
| 
 | ||||
| - Créer `/etc/fail2ban/filter.d/realmd.conf`: | ||||
| ```conf | ||||
| [Definition] | ||||
| failregex = \[AuthChallenge\] Account '.*' using IP '<HOST>' tried to login with wrong password! | ||||
| ignoreregex = | ||||
| ``` | ||||
| 
 | ||||
| - Créer `/etc/fail2ban/jail.local`: | ||||
| 
 | ||||
| ```conf | ||||
| [realmd] | ||||
| enabled  = true | ||||
| filter   = realmd | ||||
| port     = 3724 | ||||
| protocol = tcp | ||||
| logpath  = /home/wow/vmangos/logs/realmd/realmd.log | ||||
| maxretry = 5 | ||||
| findtime = 600 | ||||
| bantime  = 36000 | ||||
| ``` | ||||
| 
 | ||||
| - Redémarrer fail2ban: | ||||
| ```bash | ||||
| sudo systemctl restart fail2ban | ||||
| sudo fail2ban-client reload | ||||
| ``` | ||||
| 
 | ||||
| ## SE CONNECTER AU SERVEUR | ||||
| 
 | ||||
| - Télécharger le [client (v1.12)](https://drive.usercontent.google.com/download?id=1TDoNNUXCtsgIUhLw96biPCqjv3AcLYkg&export=download) | ||||
| 
 | ||||
| - Editer le fichier `realmlist.wtf` pour y mettre l'IP du serveur: | ||||
| ```bash | ||||
| set <server_ip> | ||||
| ``` | ||||
| 
 | ||||
| ## BACKUP DATABASE ET RESTORE | ||||
| 
 | ||||
| - Exporter la base de données: | ||||
| ```bash | ||||
| docker exec nom_du_conteneur_db mysqldump -u root -pMOTDEPASS --databases realmd mangos characters logs > wow-db-dump.sql | ||||
| ``` | ||||
| 
 | ||||
| - Importer la base de données: | ||||
| ```bash | ||||
| docker cp wow-db-dump.sql <database_container>:/ | ||||
| docker exec -it <database_container> bash | ||||
| apt update && apt install -y mysql-client | ||||
| mysql -u root -ppassword < wow-db-dump.sql | ||||
| ``` | ||||
| 
 | ||||
| ## SOURCES | ||||
| 
 | ||||
| - [vmangos](https://github.com/vmangos) | ||||
| - [tuto](https://www.youtube.com/watch?v=ac1mVFz2u1o) | ||||
| - [docker version](https://github.com/mserajnik/vmangos-deploy) | ||||
| 
 | ||||
| ## TO DO  | ||||
| 
 | ||||
| - [ ] jail for realmd port | ||||
| - [ ] Server IP as env for confs et Dockerfiles | ||||
							
								
								
									
										198
									
								
								install.sh
									
									
									
									
									
								
							
							
						
						
									
										198
									
								
								install.sh
									
									
									
									
									
								
							| @ -1,198 +0,0 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| CURRENT_USER=${SUDO_USER:-$CURRENT_USER} | ||||
| REALM_IP=$(hostname -I | awk '{print $1}') | ||||
| 
 | ||||
| # CONFIG | ||||
| MANGOS_ETC="/home/"$CURRENT_USER"/vmangos/etc" | ||||
| MANGOS_DATA="/home/"$CURRENT_USER"/vmangos/data" | ||||
| MANGOS_LOGS="/home/"$CURRENT_USER"/vmangos/logs" | ||||
| 
 | ||||
| MYSQL_ROOT_PASS="greg" | ||||
| MANGOS_DB_PASS="mangos" | ||||
| 
 | ||||
| REALM_NAME="wow-garage" | ||||
| 
 | ||||
| # DEPENDENCIES | ||||
| echo "[INFO] Configuration & dependencies installation ..." | ||||
| 
 | ||||
| sudo systemctl stop apt-daily.timer | ||||
| sudo systemctl disable apt-daily.timer | ||||
| 
 | ||||
| sudo apt update && sudo apt install p7zip-full git wget g++ cmake openssl libssl-dev build-essential checkinstall zlib1g-dev mariadb-server mariadb-client libmariadb-dev libmariadb-dev-compat libreadline-dev -y | ||||
| 
 | ||||
| sudo apt install -qq libace-dev -y | ||||
| export ACE_ROOT=/usr/include/ace | ||||
| 
 | ||||
| sudo apt install -y libtbb-dev -y | ||||
| export TBB_ROOT_DIR=/usr/include/tbb | ||||
| 
 | ||||
| # CLONING PROJECT | ||||
| echo "[INFO] Cloning project ..." | ||||
| 
 | ||||
| sudo mkdir -p /home/$CURRENT_USER/vmangos | ||||
| sudo chown -R $CURRENT_USER:$CURRENT_USER /home/$CURRENT_USER | ||||
| cd /home/$CURRENT_USER/vmangos | ||||
| git clone -b development https://github.com/vmangos/core && git clone https://github.com/brotalnia/database vmangos/db | ||||
| 
 | ||||
| mkdir -p /home/$CURRENT_USER/build | ||||
| cd /home/$CURRENT_USER/build | ||||
| sudo cmake /home/$CURRENT_USER/vmangos/core -DDEBUG=0 -DSUPPORTED_CLIENT_BUILD=5875 -DUSE_EXTRACTORS=0 -DCMAKE_INSTALL_PREFIX=$HOME/vmangos | ||||
| 
 | ||||
| # BUILDING PROJECT | ||||
| echo "[INFO] building $CURRENT_USER ..." | ||||
| 
 | ||||
| sudo make -j $(nproc) install | ||||
| 
 | ||||
| # GETTING DATAS | ||||
| echo "[INFO] Getting datas ..." | ||||
| 
 | ||||
| cd /home/$CURRENT_USER/vmangos | ||||
| wget https://www.mediafire.com/file_premium/j6cyqjeif3dvrv2/data.7z | ||||
| 7z x data.7z | ||||
| rm -r data.7z | ||||
| 
 | ||||
| # MISE EN PLACE DES FICHIERS | ||||
| echo "[INFO] Mise en place des fichiers ..." | ||||
| 
 | ||||
| mkdir /home/$CURRENT_USER/vmangos/etc | ||||
| 
 | ||||
| sudo chown -R $CURRENT_USER:$CURRENT_USER /home/$CURRENT_USER/vmangos | ||||
| 
 | ||||
| sudo cp /root/vmangos/etc/realmd.conf.dist /home/$CURRENT_USER/vmangos/etc/mangosd.conf | ||||
| sudo cp /root/vmangos/etc/mangosd.conf.dist /home/$CURRENT_USER/vmangos/etc/realmd.conf | ||||
| 
 | ||||
| sudo chown -R $CURRENT_USER:$CURRENT_USER /home/$CURRENT_USER/vmangos | ||||
| 
 | ||||
| mkdir -p /home/$CURRENT_USER/vmangos/logs/{mangosd,realmd,honor} | ||||
| 
 | ||||
| # CONFIG AGAIN | ||||
| echo "[INFO] Configuration de mangosd.conf ..." | ||||
| 
 | ||||
| sed -i \ | ||||
|     -e "s|^DataDir.*|DataDir = \"$MANGOS_DATA\"|" \ | ||||
|     -e "s|^LogsDir.*|LogsDir = \"$MANGOS_LOGS/mangosd\"|" \ | ||||
|     -e "s|^HonorDir.*|HonorDir = \"$MANGOS_LOGS/honor\"|" \ | ||||
|     "$MANGOS_ETC/mangosd.conf" | ||||
| 
 | ||||
| echo "[INFO] Configuration de realmd.conf ..." | ||||
| sed -i \ | ||||
|     -e "s|^LogsDir.*|LogsDir = \"$MANGOS_LOGS/realmd\"|" \ | ||||
|     "$MANGOS_ETC/realmd.conf" | ||||
| 
 | ||||
| # MYSQL SECURE INSTALLATION | ||||
| echo "[INFO] Sécurisation de MySQL ..." | ||||
| 
 | ||||
| sudo mysql <<EOF | ||||
| DELETE FROM mysql.user WHERE User=''; | ||||
| DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost'); | ||||
| DROP DATABASE IF EXISTS test; | ||||
| DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'; | ||||
| FLUSH PRIVILEGES; | ||||
| EOF | ||||
| 
 | ||||
| sudo mysql --user=root --password="${MYSQL_ROOT_PASS}" <<EOF | ||||
| DROP USER IF EXISTS 'mangos'@'localhost'; | ||||
| 
 | ||||
| CREATE USER 'mangos'@'localhost' IDENTIFIED BY '${MANGOS_DB_PASS}' | ||||
| WITH MAX_QUERIES_PER_HOUR 0 | ||||
|      MAX_CONNECTIONS_PER_HOUR 0 | ||||
|      MAX_UPDATES_PER_HOUR 0; | ||||
| 
 | ||||
| GRANT ALL PRIVILEGES ON *.* TO 'mangos'@'localhost' WITH GRANT OPTION; | ||||
| 
 | ||||
| CREATE DATABASE IF NOT EXISTS \`realmd\` | ||||
|     DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||||
| CREATE DATABASE IF NOT EXISTS \`mangos\` | ||||
|     DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||||
| CREATE DATABASE IF NOT EXISTS \`characters\` | ||||
|     DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||||
| CREATE DATABASE IF NOT EXISTS \`logs\` | ||||
|     DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||||
| 
 | ||||
| GRANT ALL PRIVILEGES ON \`realmd\`.* TO 'mangos'@'localhost' WITH GRANT OPTION; | ||||
| GRANT ALL PRIVILEGES ON \`mangos\`.* TO 'mangos'@'localhost' WITH GRANT OPTION; | ||||
| GRANT ALL PRIVILEGES ON \`characters\`.* TO 'mangos'@'localhost' WITH GRANT OPTION; | ||||
| GRANT ALL PRIVILEGES ON \`logs\`.* TO 'mangos'@'localhost' WITH GRANT OPTION; | ||||
| 
 | ||||
| FLUSH PRIVILEGES; | ||||
| EOF | ||||
| 
 | ||||
| # not sure of usefullness | ||||
| sudo mysql -u root -p"${MYSQL_ROOT_PASS}" -e "SHOW GRANTS FOR 'mangos'@'localhost';" | ||||
| # end of 'not sure of usefullness' | ||||
| 
 | ||||
| sudo mysql -u root -p"${MYSQL_ROOT_PASS}" <<EOF | ||||
| DROP USER IF EXISTS 'mangos'@'localhost'; | ||||
| CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'mangos'; | ||||
| GRANT ALL PRIVILEGES ON *.* TO 'mangos'@'localhost' WITH GRANT OPTION; | ||||
| FLUSH PRIVILEGES; | ||||
| EOF | ||||
| 
 | ||||
| # FINAL CONFIGS | ||||
| cd /home/$CURRENT_USER/vmangos/vmangos/db/ | ||||
| 
 | ||||
| wget https://github.com/brotalnia/database/blob/master/world_full_14_june_2021.7z?raw=true | ||||
| 
 | ||||
| 7z x world_full_14_june_2021.7z | ||||
| sudo mysql -u mangos -pmangos --database=mangos < world_full_14_june_2021.sql | ||||
| rm -r world_full_14_june_2021.sql | ||||
| 
 | ||||
| cd /home/$CURRENT_USER/vmangos/core/sql/ | ||||
| 
 | ||||
| mysql -u mangos -pmangos --database=characters < characters.sql | ||||
| mysql -u mangos -pmangos --database=logs < logs.sql | ||||
| mysql -u mangos -pmangos --database=realmd < logon.sql | ||||
| 
 | ||||
| sudo mysql -u root -p"${MYSQL_ROOT_PASS}" <<EOF | ||||
| 
 | ||||
| USE mangos; | ||||
| 
 | ||||
| ALTER TABLE locales_item | ||||
| MODIFY COLUMN name_loc1 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc2 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc3 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc4 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc5 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc6 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc7 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc8 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci'; | ||||
| 
 | ||||
| ALTER TABLE locales_creature | ||||
| MODIFY COLUMN name_loc1 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc2 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc3 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc4 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc5 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc6 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc7 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc8 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci'; | ||||
| 
 | ||||
| ALTER TABLE locales_gameobject | ||||
| MODIFY COLUMN name_loc1 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc2 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc3 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc4 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc5 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc6 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc7 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci', | ||||
| MODIFY COLUMN name_loc8 VARCHAR(100) NULL DEFAULT '' COLLATE 'utf8_general_ci'; | ||||
| 
 | ||||
| USE realmd; | ||||
| 
 | ||||
| DELETE FROM realmlist WHERE id=1; | ||||
| INSERT INTO realmlist (id, name, address, localAddress, localSubnetMask, icon, timezone, realmbuilds) | ||||
| VALUES (1, $REALM_NAME, $REALM_IP, '127.0.0.1', '255.255.255.0', 1, 2, '5875 6005 6141'); | ||||
| 
 | ||||
| EOF | ||||
| 
 | ||||
| # MIGRATIONS | ||||
| cd /home/$CURRENT_USER/vmangos/core/sql/migrations | ||||
| 
 | ||||
| ./merge.sh | ||||
| 
 | ||||
| mysql -u mangos -pmangos --database=mangos < world_db_updates.sql | ||||
| mysql -u mangos -pmangos --database=logs < logs_db_updates.sql | ||||
| mysql -u mangos -pmangos --database=characters < characters_db_updates.sql | ||||
| mysql -u mangos -pmangos --database=realmd < logon_db_updates.sql | ||||
| 
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	