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/12 07:49] – 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)
-=# 1. Mise à jour du système=+==# 1. Mise à jour du système==
 <code Bash>apt update && apt upgrade -y</code> <code Bash>apt update && apt upgrade -y</code>
  
-=# 2. Activation de l'architecture 32 bits (vital pour les vieux serveurs comme CS 1.6)=+==# 2. Activation de l'architecture 32 bits (vital pour les vieux serveurs comme CS 1.6)==
 <code>dpkg --add-architecture i386 <code>dpkg --add-architecture i386
 apt update </code> apt update </code>
  
-=# 3. Installation des prérequis de base=+==# 3. Installation des prérequis de base==
 <code>apt install -y curl wget git unzip nano jq tmux net-tools ca-certificates</code> <code>apt install -y curl wget git unzip nano jq tmux net-tools ca-certificates</code>
  
-=# 4. Installation de Docker et de ses composants=+==# 4. Installation de Docker et de ses composants==
 <code>curl -fsSL https://get.docker.com -o get-docker.sh <code>curl -fsSL https://get.docker.com -o get-docker.sh
 sh get-docker.sh</code> sh get-docker.sh</code>
Ligne 46: Ligne 50:
  
   # Base de données pour RAGNAROK ONLINE   # Base de données pour RAGNAROK ONLINE
-  mariadb_ro: +    mariadb_ro: 
-    image: mariadb:11 +      image: mariadb:11 
-    restart: always +      restart: always 
-    environment: +      environment: 
-      MYSQL_ROOT_PASSWORD: root_ro_password     # À CHANGER +        MYSQL_ROOT_PASSWORD: root_ro_password     # À CHANGER 
-      MYSQL_DATABASE: rathena +        MYSQL_DATABASE: rathena 
-      MYSQL_USER: rathena +        MYSQL_USER: rathena 
-      MYSQL_PASSWORD: ro_db_password            # À CHANGER +        MYSQL_PASSWORD: ro_db_password            # À CHANGER 
-    ports: +      ports: 
-      - "3306:3306" +        - "3306:3306" 
-    volumes: +      volumes: 
-      - /opt/calagopus/data/mariadb:/var/lib/mysql+        - /opt/calagopus/data/mariadb:/var/lib/mysql
  
   # Calagopus Panel + Wings (Daemon)   # Calagopus Panel + Wings (Daemon)
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 un modèle ("Egg") spécifique.  +Pour Ragnarok Online (rAthena) :rAthena nécessite la création de l'Egg dans le panel : 
-Allez dans les paramètres de Calagopus, dans la section "Eggs" et cliquez sur "Import". +- Dans l'administration de Calagopus, allez dans Nests et sélectionnez votre Nest (ex: "MMO"). 
-Importez l'Egg communautaire rAthena (disponible sur le GitHub de parkervcp/eggs). +- Cliquez sur New Egg (Nouveau modèle).    
-Créez le serveur Ragnarok. Allez dans l'onglet Database du serveur Ragnarok fraîchement créé et reliez-le à la base de données MariaDB que nous avons exposée sur le port 3306. L'émulateur y créera automatiquement ses tables au premier démarrage.+* 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). 
 +* 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: 
 +Allez dans l'onglet Install/Update de votre Egg. C'est le script qui s'exécutera une seule fois, lors de la création du serveur, pour télécharger et compiler le jeu. 
 + 
 +Install Container Image : ghcr.io/pterodactyl/installers:debian 
 + 
 +Install Script : Copiez ce code bash complet : 
 +<code Bash> 
 +#!/bin/bash 
 +export DEBIAN_FRONTEND=noninteractive 
 + 
 +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 
 +cd /mnt/server 
 + 
 +# Clonage ou mise à jour du code source 
 +if [ ! -d ".git" ]; then 
 +    echo "4. Clonage de rAthena..." 
 +    git clone https://github.com/rathena/rathena.git . 
 +else 
 +    echo "4. Mise à jour du dépôt existant..." 
 +    git pull 
 +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 
 +echo "6. Compilation en cours (patientez quelques minutes sur le i7-965)..." 
 +./configure 
 +make clean 
 +make server 
 + 
 +# Finalisation 
 +chmod +x athena-start 
 +echo "Installation et configuration de rAthena terminées avec succès !" 
 +</code> 
 + 
 +Création des variables (Variables d'environnement) :Allez dans l'onglet Variables de votre Egg. Ajoutez ces variables pour pouvoir les modifier plus tard depuis l'interface utilisateur sans toucher aux fichiers :Name: Database Host | Env Variable: DB_HOST | Default: 127.0.0.1 (ou l'IP locale pointant vers votre MariaDB).Name: Database User | Env Variable: DB_USER | Default: rathenaName: Database Password | Env Variable: DB_PASS | Default: (votre mot de passe)5.Déploiement de votre serveur maison :Enregistrez votre Egg.Allez dans la section de gestion des serveurs, et créez un nouveau serveur en sélectionnant votre nouvel Egg "rAthena".Le panel va lancer le conteneur d'installation. Vous pourrez voir en temps réel votre script bash télécharger le code et le compiler à l'aide des compilateurs C++.Une fois terminé, le serveur s'éteint. Il vous restera à configurer vos accès SQL dans les fichiers conf/inter_athena.conf via le gestionnaire de fichiers intégré de Calagopus.Cliquez sur Start : le serveur va lancer ses trois processus et vous verrez tous les logs défiler directement dans votre belle interface web ! 
 ===Étape 4 : Création du Client Ragnarok (pour vous et vos amis)=== ===Étape 4 : Création du Client Ragnarok (pour vous et vos amis)===
 Créer un serveur Ragnarok est une chose, pouvoir s'y connecter en est une autre. Voici comment forger le client : Créer un serveur Ragnarok est une chose, pouvoir s'y connecter en est une autre. Voici comment forger le client :
-=1. Le dossier du jeu de base (kRO) =+==1. Le dossier du jeu de base (kRO) ==
 Téléchargez un client coréen complet (kRO) mis à jour (des sites communautaires comme ratemyserver.net ou des forums d'émulation fournissent des archives de base). Téléchargez un client coréen complet (kRO) mis à jour (des sites communautaires comme ratemyserver.net ou des forums d'émulation fournissent des archives de base).
  
-=2. Le fichier de connexion (clientinfo.xml)=+==2. Le fichier de connexion (clientinfo.xml)==
 Dans le dossier data de votre jeu, vous devez créer ou éditer le fichier clientinfo.xml. Il dicte au client où se connecter. Dans le dossier data de votre jeu, vous devez créer ou éditer le fichier clientinfo.xml. Il dicte au client où se connecter.
 <code xml><?xml version="1.0" encoding="euc-kr" ?> <code xml><?xml version="1.0" encoding="euc-kr" ?>
Ligne 128: Ligne 237:
 Note : Si vous jouez en LAN, mettez l'IP locale du serveur à la place de l'IP publique. Note : Si vous jouez en LAN, mettez l'IP locale du serveur à la place de l'IP publique.
  
-=3. Le patch de l'exécutable (NEMO / WARP)=+==3. Le patch de l'exécutable (NEMO / WARP)==
 L'exécutable officiel (ragexe.exe) cherche à se connecter aux serveurs officiels et utilise des systèmes anti-triche incompatibles avec les serveurs privés. Téléchargez un outil de patch d'exécutable comme NEMO (New Executable Modification) ou WARP. Chargez votre ragexe.exe dans l'outil. L'exécutable officiel (ragexe.exe) cherche à se connecter aux serveurs officiels et utilise des systèmes anti-triche incompatibles avec les serveurs privés. Téléchargez un outil de patch d'exécutable comme NEMO (New Executable Modification) ou WARP. Chargez votre ragexe.exe dans l'outil.
 Cochez les options suivantes :  Cochez les options suivantes : 
Ligne 138: Ligne 247:
 Générez le nouvel exécutable et lancez-le pour vous connecter à votre Calagopus ! Générez le nouvel exécutable et lancez-le pour vous connecter à votre Calagopus !
  
-=Étape 5 : Redirection des ports (Box Internet)=+==Étape 5 : Redirection des ports (Box Internet)==
 Pour que vos amis puissent vous rejoindre depuis l'extérieur, connectez-vous à l'interface de votre box internet et redirigez ces ports vers l'adresse IP locale de votre machine Debian : Pour que vos amis puissent vous rejoindre depuis l'extérieur, connectez-vous à l'interface de votre box internet et redirigez ces ports vers l'adresse IP locale de votre machine Debian :
 Panel Calagopus (Optionnel, si vous voulez qu'ils gèrent le serveur) : Port 80 (TCP) Panel Calagopus (Optionnel, si vous voulez qu'ils gèrent le serveur) : Port 80 (TCP)
jeux/ragnarok.1791784167.txt.gz · Dernière modification : de frog