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 | ```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
	