202 lines
7.1 KiB
Bash
202 lines
7.1 KiB
Bash
#!/bin/bash
|
|
|
|
MANGOS_ETC="/home/wow/vmangos/etc"
|
|
MANGOS_DATA="/home/wow/vmangos/data"
|
|
MANGOS_LOGS="/home/wow/vmangos/logs"
|
|
|
|
MYSQL_ROOT_PASS="greg"
|
|
MANGOS_DB_PASS="mangos"
|
|
|
|
REALM_IP=$(hostname -I | awk '{print $1}')
|
|
REALM_NAME="wow-greg"
|
|
|
|
# CONFIG
|
|
echo "[INFO] Configuration & dependencies installation ..."
|
|
|
|
sudo systemctl stop apt-daily.timer
|
|
sudo systemctl disable apt-daily.timer
|
|
|
|
sudo apt update && sudo apt install 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/wow/vmangos
|
|
sudo chown -R $USER:$USER /home/wow
|
|
cd /home/wow/vmangos
|
|
git clone -b development https://github.com/vmangos/core && git clone https://github.com/brotalnia/database vmangos/db
|
|
|
|
mkdir -p /home/wow/build
|
|
cd /home/wow/build
|
|
sudo cmake /home/wow/vmangos/core -DDEBUG=0 -DSUPPORTED_CLIENT_BUILD=5875 -DUSE_EXTRACTORS=0 -DCMAKE_INSTALL_PREFIX=$HOME/vmangos
|
|
|
|
# BUILDING PROJECT
|
|
echo "[INFO] building wow ..."
|
|
|
|
sudo make -j $(nproc) install
|
|
|
|
# GETTING DATAS
|
|
echo "[INFO] Getting datas ..."
|
|
|
|
cd /home/wow/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/wow/vmangos/etc
|
|
|
|
sudo cp /home/wow/vmangos/etc/realmd.conf.dist /home/wow/vmangos/etc/mangosd.conf
|
|
sudo cp /home/wow/vmangos/etc/mangosd.conf.dist /home/wow/vmangos/etc/realmd.conf
|
|
|
|
sudo chown -R wow:wow /home/wow/vmangos/etc
|
|
|
|
mkdir -p /home/wow/vmangos/logs/{mangosd,realmd,honor}
|
|
|
|
sudo chown -R wow:wow /home/wow/vmangos/bin
|
|
|
|
# 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/wow/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/wow/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/wow/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
|
|
|
|
# START SERVER
|
|
cd /home/wow/vmangos/bin/
|
|
sudo ./realmd
|
|
|
|
# OUVRIR NEW TERMINAL
|
|
cd /home/wow/vmangos/bin/
|
|
|
|
sudo ./mangosd
|