Téléverser les fichiers vers "/"

This commit is contained in:
smauro 2026-04-17 20:15:34 +00:00
parent 7ad39b6d84
commit 3ed4c0bae9
3 changed files with 288 additions and 0 deletions

View File

@ -0,0 +1,80 @@
# /etc/systemd/system/datacentersim-server.service
#
# Service systemd pour le serveur dedie DatacenterSim
# Apres modification : sudo systemctl daemon-reload
#
# Usage :
# sudo cp datacentersim-server.service /etc/systemd/system/
# sudo systemctl daemon-reload
# sudo systemctl enable datacentersim-server
# sudo systemctl start datacentersim-server
# sudo systemctl status datacentersim-server
# sudo journalctl -u datacentersim-server -f
#
[Unit]
Description=DatacenterSim Dedicated Server
Documentation=https://github.com/YOUR_REPO/datacentersim
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
# Utilisateur et groupe dedies (a creer : sudo useradd -r -s /bin/false dcsim)
User=dcsim
Group=dcsim
# Repertoire de travail du serveur
WorkingDirectory=/opt/datacentersim-server
# Commande de lancement : adapte les arguments selon ton besoin
ExecStart=/opt/datacentersim-server/DatacenterSim-Server.x86_64 \
-server \
-port 7777 \
-servername "DC Dedicated Prod" \
-maxplayers 8 \
-mode sandbox \
-langue FR \
-masterurl https://dcsim.yeagerdan.com \
-batchmode \
-nographics \
-logFile /var/log/datacentersim-server.log
# Redemarrage automatique en cas de crash
Restart=on-failure
RestartSec=10s
# Timeout pour Stop : le serveur a besoin de temps pour se desenregistrer du master
TimeoutStopSec=15s
# Limitation ressources (optionnel, ajuste selon ta machine)
# CPUQuota=200% # max 2 coeurs
# MemoryMax=2G # max 2 Go RAM
# TasksMax=500
# Securite
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/opt/datacentersim-server /var/log
PrivateTmp=true
PrivateDevices=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
RestrictAddressFamilies=AF_INET AF_INET6
RestrictNamespaces=true
LockPersonality=true
RestrictRealtime=true
RestrictSUIDSGID=true
CapabilityBoundingSet=
AmbientCapabilities=
# Logs redirigees vers journald en plus du fichier
StandardOutput=journal
StandardError=journal
SyslogIdentifier=datacentersim
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,56 @@
# /etc/systemd/system/datacentersim-server@.service
#
# Template pour lancer PLUSIEURS instances du serveur dedie sur la meme machine.
# Le parametre apres le @ est utilise comme nom d'instance ET comme port.
#
# Usage :
# sudo systemctl start datacentersim-server@7777
# sudo systemctl start datacentersim-server@7778
# sudo systemctl start datacentersim-server@7779
#
# sudo systemctl enable datacentersim-server@7777 # au boot
#
# sudo journalctl -u datacentersim-server@7777 -f # logs d'une instance
#
[Unit]
Description=DatacenterSim Dedicated Server (port %i)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=dcsim
Group=dcsim
WorkingDirectory=/opt/datacentersim-server
# %i est remplace par ce qu'on met apres le @
# Exemple : "systemctl start datacentersim-server@7778" -> %i = "7778"
ExecStart=/opt/datacentersim-server/DatacenterSim-Server.x86_64 \
-server \
-port %i \
-servername "DC Server #%i" \
-maxplayers 8 \
-mode sandbox \
-langue FR \
-masterurl https://dcsim.yeagerdan.com \
-batchmode \
-nographics \
-logFile /var/log/datacentersim-server-%i.log
Restart=on-failure
RestartSec=10s
TimeoutStopSec=15s
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/opt/datacentersim-server /var/log
PrivateTmp=true
StandardOutput=journal
StandardError=journal
SyslogIdentifier=datacentersim-%i
[Install]
WantedBy=multi-user.target

152
install-dedicated-server.sh Normal file
View File

@ -0,0 +1,152 @@
#!/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:-./DatacenterSim-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-Server.x86_64" ]; then
echo "Erreur : binaire DatacenterSim-Server.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-Server.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-Server.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 ! 🚀"