153 lines
6.6 KiB
Bash
Executable File
153 lines
6.6 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# install-dedicated-server.sh
|
|
# Script d'installation automatique du serveur dedie DatacenterSim sur Debian 13 / Ubuntu 22+
|
|
#
|
|
# Usage :
|
|
# sudo bash install-dedicated-server.sh [chemin-du-build]
|
|
#
|
|
# Exemple :
|
|
# sudo bash install-dedicated-server.sh ./DatacenterSim-Server-Linux/
|
|
#
|
|
|
|
set -e
|
|
|
|
# ═══════════════════════════════════════════════════════
|
|
# CONFIGURATION
|
|
# ═══════════════════════════════════════════════════════
|
|
|
|
INSTALL_DIR="/opt/datacentersim-server"
|
|
SERVICE_USER="dcsim"
|
|
SERVICE_FILE="datacentersim-server.service"
|
|
TEMPLATE_FILE="datacentersim-server@.service"
|
|
LOG_DIR="/var/log"
|
|
BUILD_DIR="${1:-../Dedicated_Server_Linux}"
|
|
|
|
# ═══════════════════════════════════════════════════════
|
|
# VERIFICATIONS
|
|
# ═══════════════════════════════════════════════════════
|
|
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "Ce script doit etre lance avec sudo"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d "$BUILD_DIR" ]; then
|
|
echo "Erreur : dossier de build introuvable : $BUILD_DIR"
|
|
echo "Usage : sudo bash $0 [chemin-du-build]"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$BUILD_DIR/DatacenterSim.x86_64" ]; then
|
|
echo "Erreur : binaire DatacenterSim.x86_64 introuvable dans $BUILD_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
echo "════════════════════════════════════════════════════"
|
|
echo " Installation DatacenterSim Dedicated Server"
|
|
echo "════════════════════════════════════════════════════"
|
|
echo "Build source : $BUILD_DIR"
|
|
echo "Installation : $INSTALL_DIR"
|
|
echo "Utilisateur : $SERVICE_USER"
|
|
echo ""
|
|
|
|
# ═══════════════════════════════════════════════════════
|
|
# 1. DEPENDANCES
|
|
# ═══════════════════════════════════════════════════════
|
|
|
|
echo "[1/6] Installation des dependances runtime..."
|
|
apt-get update -qq
|
|
apt-get install -y libstdc++6 libgcc-s1 ca-certificates ufw
|
|
|
|
# ═══════════════════════════════════════════════════════
|
|
# 2. UTILISATEUR DEDIE
|
|
# ═══════════════════════════════════════════════════════
|
|
|
|
echo "[2/6] Creation de l'utilisateur $SERVICE_USER..."
|
|
if ! id "$SERVICE_USER" &>/dev/null; then
|
|
useradd -r -s /bin/false -d "$INSTALL_DIR" "$SERVICE_USER"
|
|
echo " ✓ Utilisateur $SERVICE_USER cree"
|
|
else
|
|
echo " ✓ Utilisateur $SERVICE_USER existe deja"
|
|
fi
|
|
|
|
# ═══════════════════════════════════════════════════════
|
|
# 3. COPIE DES FICHIERS
|
|
# ═══════════════════════════════════════════════════════
|
|
|
|
echo "[3/6] Copie du build vers $INSTALL_DIR..."
|
|
mkdir -p "$INSTALL_DIR"
|
|
|
|
# Si une install existe deja, backup
|
|
if [ -f "$INSTALL_DIR/DatacenterSim.x86_64" ]; then
|
|
BACKUP="$INSTALL_DIR.backup-$(date +%Y%m%d-%H%M%S)"
|
|
echo " Une install existe deja, backup vers $BACKUP"
|
|
mv "$INSTALL_DIR" "$BACKUP"
|
|
mkdir -p "$INSTALL_DIR"
|
|
fi
|
|
|
|
cp -r "$BUILD_DIR"/* "$INSTALL_DIR/"
|
|
chmod +x "$INSTALL_DIR/DatacenterSim.x86_64"
|
|
chown -R "$SERVICE_USER:$SERVICE_USER" "$INSTALL_DIR"
|
|
|
|
# ═══════════════════════════════════════════════════════
|
|
# 4. SERVICE SYSTEMD
|
|
# ═══════════════════════════════════════════════════════
|
|
|
|
echo "[4/6] Installation du service systemd..."
|
|
|
|
if [ -f "$SERVICE_FILE" ]; then
|
|
cp "$SERVICE_FILE" /etc/systemd/system/
|
|
echo " ✓ $SERVICE_FILE installe"
|
|
fi
|
|
|
|
if [ -f "$TEMPLATE_FILE" ]; then
|
|
cp "$TEMPLATE_FILE" /etc/systemd/system/
|
|
echo " ✓ $TEMPLATE_FILE installe"
|
|
fi
|
|
|
|
# Creation du fichier log avec bons droits
|
|
touch /var/log/datacentersim-server.log
|
|
chown "$SERVICE_USER:$SERVICE_USER" /var/log/datacentersim-server.log
|
|
|
|
systemctl daemon-reload
|
|
|
|
# ═══════════════════════════════════════════════════════
|
|
# 5. FIREWALL
|
|
# ═══════════════════════════════════════════════════════
|
|
|
|
echo "[5/6] Configuration du firewall..."
|
|
if ufw status | grep -q "Status: active"; then
|
|
ufw allow 7777/udp comment "DatacenterSim"
|
|
echo " ✓ Port 7777/udp autorise"
|
|
else
|
|
echo " - UFW non actif, aucune regle ajoutee"
|
|
fi
|
|
|
|
# ═══════════════════════════════════════════════════════
|
|
# 6. RECAP
|
|
# ═══════════════════════════════════════════════════════
|
|
|
|
echo "[6/6] Installation terminee !"
|
|
echo ""
|
|
echo "════════════════════════════════════════════════════"
|
|
echo " PROCHAINES ETAPES"
|
|
echo "════════════════════════════════════════════════════"
|
|
echo ""
|
|
echo "1. Verifier / editer la configuration :"
|
|
echo " sudo nano /etc/systemd/system/$SERVICE_FILE"
|
|
echo ""
|
|
echo "2. Activer le service au boot :"
|
|
echo " sudo systemctl enable datacentersim-server"
|
|
echo ""
|
|
echo "3. Demarrer le serveur :"
|
|
echo " sudo systemctl start datacentersim-server"
|
|
echo ""
|
|
echo "4. Suivre les logs en direct :"
|
|
echo " sudo journalctl -u datacentersim-server -f"
|
|
echo ""
|
|
echo "5. Verifier le status :"
|
|
echo " sudo systemctl status datacentersim-server"
|
|
echo ""
|
|
echo "Bon jeu ! 🚀"
|