Outils pour utilisateurs

Outils du site


jeux:ragnarok

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
jeux:ragnarok [2026/10/16 12:48] – frogjeux:ragnarok [2026/10/17 00:10] (Version actuelle) – frog
Ligne 3: Ligne 3:
 Le titre est trompeur car en fait je vais faire plus que juste un serveur Raganarok \\ Le titre est trompeur car en fait je vais faire plus que juste un serveur Raganarok \\
  
-Validation de la compatibilitéDebian 13 (Trixie) gère parfaitement votre matériel. Son noyau récent optimisera la gestion de vos 32 Go de RAM.Calagopus étant écrit en Rust (langage compilé très proche du matériel), il est ultra-performant. Là où un panel PHP classique solliciterait votre vieux processeur, Calagopus sera "invisible" en termes de charge.   Le fait que l'image Calagopus contrôle Docker directement signifie que vos serveurs de jeux tourneront de manière isolée sur le même réseau hôte.Voici la documentation pas à pas.+Validation de la compatibilité de mon matériel et de l'OS: 
 +- Debian 13 (Trixie) gère parfaitement mon matériel. Son noyau récent optimisera la gestion de mes 32 Go de RAM. 
 +- Calagopus étant écrit en Rust (langage compilé très proche du matériel), il est ultra-performant. Là où un panel PHP classique solliciterait mon vieux processeur, Calagopus sera "invisible" en termes de charge. 
 +- Le fait que l'image Calagopus contrôle Docker directement signifie que mes serveurs de jeux tourneront de manière isolée sur le même réseau hôte.  
 === Étape 1 : Préparation de Debian 13 === === Étape 1 : Préparation de Debian 13 ===
 Connectez-vous à votre machine via SSH (ou un écran/clavier direct) et exécutez ces commandes avec les droits administrateur (ou utilisez sudo devant) Connectez-vous à votre machine via SSH (ou un écran/clavier direct) et exécutez ces commandes avec les droits administrateur (ou utilisez sudo devant)
Ligne 92: Ligne 96:
 </code> </code>
  
-Patientez 2-3 minutes le temps que les bases de données s'initialisent.Accédez à l'interface depuis un PC de votre réseau en tapant l'adresse IP locale de votre serveur dans le navigateur (ex: [http://192.168.1.50](http://192.168.1.50)). +Patientez 2-3 minutes le temps que les bases de données s'initialisent. Accédez à l'interface depuis un PC de votre réseau en tapant l'adresse IP locale de votre serveur dans le navigateur. 
 Connectez-vous et créez le compte Administrateur lorsqu'on vous le propose. Connectez-vous et créez le compte Administrateur lorsqu'on vous le propose.
  
Ligne 98: Ligne 102:
 Dans Calagopus, tout se passe via l'interface web :    Dans Calagopus, tout se passe via l'interface web :   
 Créer la Node (le "Nœud" local) : Allez dans l'administration, créez une Node pointant vers l'IP 127.0.0.1 et le port 8080 (puisque l'AIO inclut Wings en local). Créer la Node (le "Nœud" local) : Allez dans l'administration, créez une Node pointant vers l'IP 127.0.0.1 et le port 8080 (puisque l'AIO inclut Wings en local).
-Pour CS 1.6 et CS2 :Calagopus est compatible avec les "Eggs" (modèles d'installation) de Pterodactyl.    
-Allez dans la section des serveurs, créez un nouveau serveur. Sélectionnez le jeu (Source Engine / Counter-Strike 2 ou GoldSrc / CS 1.6). Le panel va instantanément créer un conteneur et télécharger les jeux via SteamCMD. 
-Rappel pour CS2 : il vous faudra renseigner votre GSLT (Jeton Steam) dans les variables d'environnement du panel. 
  
 Pour Ragnarok Online (rAthena) :rAthena nécessite la création de l'Egg dans le panel : Pour Ragnarok Online (rAthena) :rAthena nécessite la création de l'Egg dans le panel :
 - Dans l'administration de Calagopus, allez dans Nests et sélectionnez votre Nest (ex: "MMO"). - Dans l'administration de Calagopus, allez dans Nests et sélectionnez votre Nest (ex: "MMO").
-- Cliquez sur New Egg (Nouveau modèle). Name : rAthena Description : Émulateur Ragnarok Online Docker Image : ghcr.io/pterodactyl/yolks:debian (C'est l'image officielle de base, sous Debian, qui fera tourner le jeu). +- Cliquez sur New Egg (Nouveau modèle).    
-- Startup Command : C'est ici que réside l'astuce. Copiez-collez exactement ceci :./athena-start start; sleep 2; tail -F log/login-server.log log/char-server.log log/map-server.log +* Name : rAthena  
- +* Description : Émulateur Ragnarok Online  
-Configuration de l'état (Stop / Start) : Le panel a besoin de savoir comment arrêter proprement votre serveur.Stop Command : ^C (Cela enverra un signal d'interruption au tail, puis vous pourrez configurer l'arrêt propre). Configuration Files : Laissez vide pour l'instant.+* Docker Image : ghcr.io/pterodactyl/yolks:debian (C'est l'image officielle de base, sous Debian, qui fera tourner le jeu). 
 +* Startup Command : C'est ici que réside l'astuce. Copiez-collez exactement ceci :./athena-start start; sleep 2; tail -F log/login-server.log log/char-server.log log/map-server.log 
 +* Configuration d'arrêt : ./athena-start stop 
 +* Configuration Files : Laissez vide pour l'instant.
  
 Configuration: Configuration:
Ligne 117: Ligne 121:
 <code Bash> <code Bash>
 #!/bin/bash #!/bin/bash
-# Mise à jour et installation des compilateurs +export DEBIAN_FRONTEND=noninteractive 
-apt update -y + 
-apt install -y git make gcc g++ default-libmysqlclient-dev zlib1g-dev libpcre3-dev+echo "1. Correction des sources APT pour contourner les erreurs 404..." 
 +echo "Acquire::Check-Valid-Until \"false\";" > /etc/apt/apt.conf.d/99no-check-valid 
 +echo "deb http://archive.debian.org/debian/ bullseye main" > /etc/apt/sources.list 
 +echo "deb http://archive.debian.org/debian-security/ bullseye-security main" >> /etc/apt/sources.list 
 + 
 +echo "2. Installation des outils nécessaires et du client MySQL..." 
 +apt-get update -y 
 +apt-get install -y --allow-unauthenticated git make gcc g++ python3 default-mysql-client default-libmysqlclient-dev zlib1g-dev libpcre3-dev 
 + 
 +echo "3. Test de connexion à la base de données..." 
 +echo "   -> Hôte cible : ${DB_HOST}" 
 +echo "   -> Utilisateur : ${DB_USER}" 
 + 
 +# Test de connexion via le client MySQL (interrompt le script si échec) 
 +if mysql -h "${DB_HOST}" -u "${DB_USER}" -p"${DB_PASS}" -e "SELECT 1;" > /dev/null 2>&1; then 
 +    echo "Succès : Connexion à la base de données établie avec succès !" 
 +else 
 +    echo "ERREUR CRITIQUE : Impossible de se connecter à la base de données !" 
 +    echo "Vérifiez que :" 
 +    echo " - L'adresse de l'hôte (${DB_HOST}) est correcte et accessible." 
 +    echo " - L'utilisateur (${DB_USER}) et le mot de passe sont valides." 
 +    echo " - Le serveur MariaDB autorise les connexions distantes." 
 +    exit 1 
 +fi
  
 # Déplacement dans le dossier du serveur # Déplacement dans le dossier du serveur
 cd /mnt/server cd /mnt/server
  
-# Clonage du code source +# Clonage ou mise à jour du code source
-echo "Clonage de rAthena..."+
 if [ ! -d ".git" ]; then if [ ! -d ".git" ]; then
 +    echo "4. Clonage de rAthena..."
     git clone https://github.com/rathena/rathena.git .     git clone https://github.com/rathena/rathena.git .
 else else
-    echo "Mise à jour du dépôt existant..."+    echo "4. Mise à jour du dépôt existant..."
     git pull     git pull
 fi fi
 +
 +echo "5. Configuration automatique de tous les fichiers de connexion SQL..."
 +python3 - <<EOF
 +import os
 +import re
 +
 +db_host = os.environ.get("DB_HOST", "127.0.0.1")
 +db_user = os.environ.get("DB_USER", "rathena")
 +db_pass = os.environ.get("DB_PASS", "")
 +
 +files_to_update = [
 +    "conf/inter_athena.conf",
 +    "conf/login_athena.conf",
 +    "conf/char_athena.conf",
 +    "conf/map_athena.conf"
 +]
 +
 +for file_path in files_to_update:
 +    if os.path.exists(file_path):
 +        with open(file_path, "r", encoding="utf-8", errors="ignore") as f:
 +            lines = f.readlines()
 +
 +        new_lines = []
 +        for line in lines:
 +            if re.match(r"^\s*(login_server_ip|char_server_ip|map_server_ip|web_server_ip|log_db_ip|ipban_db_ip|sql_hostname|db_hostname)\s*:", line):
 +                key = line.split(":")[0]
 +                new_lines.append(f"{key}: {db_host}\n")
 +            elif re.match(r"^\s*(login_server_id|char_server_id|map_server_id|web_server_id|log_db_id|ipban_db_id|sql_id|db_user|sql_user)\s*:", line):
 +                key = line.split(":")[0]
 +                new_lines.append(f"{key}: {db_user}\n")
 +            elif re.match(r"^\s*(login_server_pw|char_server_pw|map_server_pw|web_server_pw|log_db_pw|ipban_db_pw|sql_pw|db_pass|sql_password)\s*:", line):
 +                key = line.split(":")[0]
 +                new_lines.append(f"{key}: {db_pass}\n")
 +            else:
 +                new_lines.append(line)
 +
 +        with open(file_path, "w", encoding="utf-8") as f:
 +            f.writelines(new_lines)
 +        print(f"Mis à jour avec succès : {file_path}")
 +    else:
 +        print(f"Attention : {file_path} introuvable.")
 +EOF
  
 # Compilation # Compilation
-echo "Compilation en cours (cela peut prendre quelques minutes sur le i7-965)..."+echo "6. Compilation en cours (patientez quelques minutes sur le i7-965)..."
 ./configure ./configure
 make clean make clean
 make server make server
  
-# Rendre le script de démarrage exécutable+# Finalisation
 chmod +x athena-start chmod +x athena-start
-echo "Installation terminée !"+echo "Installation et configuration de rAthena terminées avec succès !"
 </code> </code>
  
jeux/ragnarok.1792147705.txt.gz · Dernière modification : de frog