Panel d'installation v4.75.0

Un script, six étapes,
le projet dans votre home

overtchat-setup.sh détecte votre distribution, dresse la liste des paquets manquants, puis vous guide composant par composant. Les étapes qui ne sont pas encore possibles restent affichées, grisées, avec la raison du blocage.

# Récupérer l'installateur, puis le lancer
curl -fL -o overtchat-setup.sh https://service-overtchat.hd.free.fr/dl/setup
chmod +x overtchat-setup.sh
./overtchat-setup.sh

Six serveurs IRC, un seul programme. Tout ce qui est décrit ici s’installe aussi bien devant chacun d’eux — Overtchat-Hybrid, UnrealIRCd, ircd-Hybrid, InspIRCd, Bahamut, ircu (Undernet). Ce qui change d’un serveur à l’autre n’est pas ce qui s’installe, c’est ce que le protocole autorise ensuite : la page Serveurs compatibles le donne fonction par fonction, avec ce qui a été réellement essayé, sécurité comprise.

Téléchargement

Récupérer le projet

Le dépôt GitHub du code est privé : c’est ce site qui sert de quoi installer. Le code est sous licence MIT : serveur, services, panel et scripts se reprennent librement, y compris pour monter votre propre réseau. Les textes de ce site, son nom et sa charte graphique restent en revanche réservés — ils font l’identité de ce réseau-ci, pas du logiciel. Les composants tiers gardent leur propre licence (licences tierces). Deux façons de récupérer l’installateur, qui ira ensuite chercher le reste sur ce même site.

↓

L'installateur seul

Sans git : le script, servi par ce site. C'est aussi la source que l'installateur utilise pour ses propres mises à jour.

Télécharger le script

⚙

En une ligne

La même chose depuis un terminal, avec l’empreinte à vérifier juste après — elle est publiée sur la page de téléchargement.

curl -fsSLO \
  https://service-overtchat.hd.free.fr/dl/Bootstrap/overtchat-setup.sh
sha256sum overtchat-setup.sh
chmod +x overtchat-setup.sh
RessourceAdresse
Installateur overtchat-setup.sh — servi par ce site
Empreintes manifeste.json — SHA-256 de chaque fichier distribué
Version publiée /update — numéro, empreinte et journal
Dépôt git https://github.com/SerVuS033/Overtchat.git — privé : ni les pages web ni git clone ne répondent sans accès. L'installateur ci-dessus n'en a pas besoin.
Signaler un problème Formulaire de contact
Licence Code MIT, nom et textes réservés — fichier LICENSE à la racine du dépôt ; composants tiers sous leur propre licence (licences tierces)

Le dépôt et cette documentation peuvent différer. Le script publié porte la version indiquée dans le fichier VERSION à la racine du dépôt — actuellement 4.75.0. En cas d'écart, c'est le comportement du script que vous exécutez qui fait foi.

Ce que l'installateur pose, et depuis où

Chaque version est épinglée : l'installateur va chercher une archive précise, pas la dernière en date. Une URL versionnée se rejoue à l'identique dans six mois, là où un lien « latest » installe un jour autre chose sans qu'une ligne ait changé. Ces numéros sont lus dans le script — cette page ne les recopie pas.

ComposantVersionRôleSource officielle
UnrealIRCd 6.2.6 Serveur IRC de référence du projet — c’est son dialecte que parle Overtchat-Hybrid. https://www.unrealircd.org/downloads/unrealircd-6.2.6.tar.gz
ircd-Hybrid 8.2.47 Serveur IRC en TS6, léger et modulaire. Sept commandes de services, un mode +r réservé aux services. https://github.com/ircd-hybrid/ircd-hybrid/archive/8.2.47.tar.gz
ircu2 u2.10.12.19 Le serveur d’Undernet, en protocole P10. Aucun logiciel de services d’Anope ne le gère. https://github.com/undernetirc/ircu2/archive/refs/tags/u2.10.12.19.tar.gz
InspIRCd 4.11.0 Serveur modulaire très répandu. Identifiants SID et UID, et les commandes de services SVSNICK, SVSJOIN, SVSPART. https://github.com/inspircd/inspircd/archive/refs/tags/v4.11.0.tar.gz
Eggdrop 1.10.2rc1
version candidate — la dernière version publiée est la 1.10.1
Le bot qui héberge IriX : IriX est un module Tcl, il n’existe pas sans lui. https://ftp.eggheads.org/pub/eggdrop/source/1.10/eggdrop-1.10.2rc1.tar.gz
Anope 2.1.25 Services optionnels : NickServ, ChanServ, OperServ… Branche 2.1, celle qui a renommé son module de protocole. https://github.com/anope/anope/archive/refs/tags/2.1.25.tar.gz

Overtchat-Hybrid ne figure pas dans ce tableau : c'est le serveur du projet, et celui que l'installateur pose par défaut, depuis ce site. Il télécharge le serveur déjà compilé (Linux x86_64, glibc 2.34 ou plus récente, OpenSSL 3) et en vérifie l'empreinte ; le site ne sert que ce binaire. Sur une machine qui ne convient pas, l'installation automatique pose UnrealIRCd à sa place et le dit — ou refuse, si Overtchat-Hybrid a été demandé expressément. Dans une copie du dépôt, il compile les sources présentes.

Avant de commencer

Prérequis

Une machine Linux et un shell. Tout le reste est vérifié, listé ou installé par le script lui-même.

Ce que le script détecte tout seul

  • La distribution et son gestionnaire de paquets, pour traduire les noms génériques (ssl-dev) en noms réels de la distribution.
  • Les privilèges disponibles : exécution en root, présence de sudo, ou aucune élévation possible.
  • Les composants déjà présents sur le disque, y compris ceux installés en dehors du panel.
  • Les paquets manquants pour chaque composant, avant même que vous ne tentiez de l'installer.

La question des privilèges

Sans option, le script tourne en mode utilisateur simple : il ne demande une élévation que ponctuellement — pour installer des paquets système, poser les unités systemd et quelques règles système —, et seulement si sudo est disponible.

InvocationModeUsage
./overtchat-setup.sh défaut Mode utilisateur simple, élévation ponctuelle si sudo existe.
./overtchat-setup.sh --root root Relance en root pour la gestion des paquets. L'arborescence reste dans le home.
./overtchat-setup.sh --user forcé Force le mode utilisateur simple, même si root ou sudo sont disponibles.
./overtchat-setup.sh --debug trace Active la trace set -x pour diagnostiquer un comportement.
./overtchat-setup.sh --help aide Affiche les options disponibles et quitte.

Rien n'est jamais installé dans /root. Quelle que soit l'option, l'arborescence est créée dans le home de l'utilisateur réel, sous le nom de projet choisi au premier lancement (~/MonReseau par défaut, ou --projet=NOM). L'élévation ne sert qu'aux paquets système, aux unités systemd et à quelques règles de /etc (sudoers, polkit, rotation des journaux) ; le reste — sources, binaires compilés, configuration — vous appartient.

Assistant d'installation

Six étapes, dont quatre obligatoires

L'ordre n'est pas une préférence de présentation : il découle des dépendances réelles entre les composants. Les étapes 3, 4 et 5 restent verrouillées tant que ce qu'elles supposent n'existe pas.

Dépendances système toujours accessible

Scan des paquets requis par chaque composant, comparaison avec ce qui est présent, puis installation des manquants si une élévation est possible.

Exige : rien. C'est le point d'entrée.

À la fin : la liste des paquets manquants est vide, ou vous en avez la liste exacte à poser à la main.

Serveur IRC conditionnée

Compilation depuis les sources d'UnrealIRCd, ircd-Hybrid, ircu, InspIRCd ou Bahamut. Overtchat-Hybrid, le serveur du projet et celui qui sert le réseau depuis le 28 juillet 2026, est le choix recommandé : il arrive déjà compilé depuis ce site (une copie du dépôt compile ses propres sources). Les autres restent compilables, pour comparer ou revenir en arrière.

Exige : les dépendances système du serveur choisi. L'étape est verrouillée tant qu'elles sont incomplètes.

À la fin : un binaire de serveur IRC compilé et vérifié par empreinte SHA-256.

Eggdrop conditionnée

Le bot hôte : moteur Tcl, console d'administration, connexion permanente au serveur. C'est lui qui hébergera IriX.

Exige : qu'un serveur IRC soit installé. Verrouillée tant qu'aucun ne l'est.

À la fin : un Eggdrop compilé, capable de se connecter au serveur de l'étape précédente.

Ancien chemin : l'installation automatique ne pose Eggdrop et IriX que si Node.js manque ou est plus ancien que 14.14 ; sinon elle installe OverCore, les services écrits en Node.js, qui n'ont besoin d'aucun Eggdrop.

IriX conditionnée

Le cœur métier : comptes, salons, bans, automatismes, liens ULine et modération.

Exige : qu'Eggdrop soit installé — IriX est un module Tcl qu'Eggdrop héberge, il n'existe pas sans lui.

À la fin : les services pseudo-clients sont chargés et pilotables.

En fin de vie : OverCore, son successeur, sert les mêmes services sans Eggdrop. Préférez-le : installez un Node.js ≥ 14.14 et relancez l’installation.

Services optionnels conditionnée

Anope, pour les réseaux qui veulent des services complémentaires, ou ceux dont le serveur n'est pas le nôtre (OverCore ne parle que le protocole d'Overtchat-Hybrid). Lea figure aussi au menu, mais ses sources ne sont pas publiques : il ne s'installe pas hors du projet.

Exige : qu'un serveur IRC soit installé — ces services se lient au serveur, pas à Eggdrop.

À la fin : les services optionnels retenus sont compilés et liés.

Services système repassable

Toutes les unités systemd livrées par le projet (une par service et par minuterie) : OverCore, sauvegardes, application des opérateurs, veille sur IriX là où il est posé, file d’attente des salons.

Exige : rien — mais une unité n'a de sens qu'une fois son composant installé, d'où sa place en dernier.

À la fin : les unités sont posées dans /etc/systemd/system/ et les minuteries activées.

Sans elle : l'installation fonctionne, mais rien ne tourne tout seul — ni sauvegardes, ni opérateurs appliqués, ni veille. Elle se repasse autant de fois qu'on veut : une mise à jour n'atteint jamais /etc.

Chaque étape porte une icône d'état : ✔ faite, ○ à faire, ✖ verrouillée. Leur signification exacte, et la manière de lever un verrou, sont détaillées juste en dessous.

Légende

Lire — et débloquer — une option verrouillée

Le panel n'a pas de menu caché. Une option indisponible reste affichée, grisée, avec sa raison entre chevrons. Le principe est assumé : vous voyez ce qui existe et ce qui vous manque, au lieu de buter sur un échec après coup.

Les trois icônes d'état

✔
Fait L'étape est satisfaite. Vous pouvez y revenir pour ajouter un composant, mais rien n'est requis de vous.
○
À faire L'étape est accessible immédiatement : ses prérequis sont réunis, elle n'a simplement pas encore été exécutée.
✖
Verrouillée L'étape est visible mais non sélectionnable. Elle indique pourquoi, et cette raison est toujours actionnable.

La forme d'une option verrouillée

Dans un menu, une entrée bloquée est affichée en gris, suivie de sa raison entre chevrons. Le libellé reste lisible : vous savez ce que l'option ferait si elle était disponible.

# Extrait d'un menu : deux entrées disponibles, deux verrouillées
  [1] Eggdrop
  [2] UnrealIRCd
  [3] IriX                 ⟨requiert Eggdrop⟩
  [4] Anope                ⟨paquets manquants — installables depuis le menu Dépendances⟩

Deux familles de raisons, deux façons de débloquer

Prérequis logique

Le composant dépend d'un autre composant qui n'est pas installé. La raison nomme explicitement ce qui manque, par exemple ⟨requiert Eggdrop⟩.

Pour débloquer : installez d'abord le composant nommé. IriX exige Eggdrop — IriX est un module Tcl qu'Eggdrop héberge. Anope et Lea exigent un serveur IRC installé. Une fois le prérequis en place, l'entrée redevient sélectionnable au prochain affichage du menu.

Paquets système manquants

Les bibliothèques ou outils de compilation nécessaires ne sont pas sur la machine. Le message dépend de vos privilèges.

Si une élévation est possible : la raison affichée est ⟨paquets manquants — installables depuis le menu Dépendances⟩. Ouvrez le menu Dépendances système et lancez l'option 1, « Installer toutes les dépendances manquantes ».

Sans élévation : la raison liste directement les paquets à poser. Installez-les à la main ; l'option 2 du menu Dépendances, « Afficher les commandes d'installation », donne la commande exacte pour votre distribution.

Récapitulatif : ce qu'exige chaque composant

ComposantExigeComment débloquer
Serveur IRC
Overtchat-Hybrid, UnrealIRCd, ircd-Hybrid, InspIRCd, Bahamut, ircu (Undernet)
Ses paquets de compilation Menu Dépendances → option 1, ou pose manuelle des paquets listés.
OverCore
les services du réseau
Notre serveur (Overtchat-Hybrid)
+ Node.js 14.14 ou plus récent
Le paquet nodejs de la distribution suffit : aucune dépendance npm. Avec un autre serveur IRC, ce sont les services Anope qui sont posés.
Eggdrop
ancien chemin
Un serveur IRC installé
+ ses propres paquets
Posé seulement quand Node.js manque ou est trop ancien pour OverCore. Terminer l'étape 2, puis compléter les paquets manquants.
IriX
ancien chemin, en fin de vie
Eggdrop installé
+ Tcl et le client MySQL
Installer Eggdrop d'abord — IriX s'exécute à l'intérieur. Puis compléter tcl, tcllib, tcl-tls, tcl-mysql, mysql-client. Préférez OverCore : installez un Node.js ≥ 14.14 et relancez l'installation.
Anope Un serveur IRC installé
+ cmake et ses paquets
Terminer l'étape 2, puis compléter les paquets manquants.
Lea Un serveur IRC installé
+ ses sources, qui ne sont pas publiques
Non installable hors du projet : ses sources viennent d'un dépôt privé.
Installer toutes les dépendances
menu Dépendances, option 1
Une élévation disponible Relancer avec --root, ou installer les paquets à la main via l'option 2.
Access Manager Un grade panel ≥ 60 Se connecter avec un compte de grade suffisant.
Réinitialiser la configuration Un grade panel ≥ 80 Se connecter avec un compte de grade suffisant.

Le verrou se corrige tout seul si vous avez installé autrement. Les fichiers Config/*.json sont la source de vérité du verrouillage, mais ils ne décrivent que ce que ce panel a installé. Le script sonde donc le disque avant d'afficher un menu et corrige le JSON — sans quoi un Eggdrop posé à la main ou par paquet aurait laissé IriX verrouillé indéfiniment.

La correction est à sens unique : le script peut passer un état de false à true, jamais l'inverse. Il ne déclarera jamais désinstallé un composant qu'il ne sait simplement pas trouver.

Les grades du panel ne sont pas les grades IRC. Ils gouvernent l'accès aux options du script, pas les privilèges sur le réseau. Tant qu'aucun compte n'a été créé, le panel reste ouvert : c'est le mode installation initiale. Dès qu'un compte existe, une porte d'authentification s'affiche au lancement, avec trois tentatives au maximum.

Dépendances

Paquets requis, composant par composant

Les noms ci-dessous sont génériques : le script les traduit selon votre gestionnaire de paquets. Le menu Dépendances affiche pour chaque composant s'il est complet, et sinon la liste de ce qui manque.

ComposantPaquets
Eggdropbuild · gcc · make · tcl-dev · ssl-dev · zlib-dev · autoconf · automake · libtool · patch
IriXtcl · tcllib · tcl-mysql · tcl-tls · mysql-client
OverOptcl
Anopebuild · gcc · make · cmake · ssl-dev
Leabuild · gcc · make · autoconf · automake · libtool
UnrealIRCdbuild · gcc · make · ssl-dev · zlib-dev · pkgconfig · curl-dev · pcre2-dev · argon2-dev · sodium-dev
ircd-Hybridbuild · gcc · make · ssl-dev · zlib-dev · bison · flex · jansson-dev · autoconf · automake · libtool
ircubuild · gcc · make · autoconf · automake · libtool · pkgconfig
InspIRCdbuild · gcc · make · perl · pkgconfig · ssl-dev
Bahamutbuild · gcc · make · openssl · ssl-dev · zlib-dev
Overtchat-Hybrid (compilé depuis une copie du dépôt)build · gcc · make · ssl-dev · zlib-dev · autoconf · automake · libtool
Overtchat-Hybrid (binaire servi par le site)openssl
Site et panel webphp · php-mysql · php-mbstring · php-gd · mysql-client · tar · curl · postfix
overcorenodejs

Le menu Dépendances a deux entrées. L'option 1, « Installer toutes les dépendances manquantes », est elle-même verrouillée si aucune élévation n'est possible — elle ne peut pas tenir sa promesse sans droits. L'option 2, « Afficher les commandes d'installation », reste toujours accessible et vous donne la commande exacte à recopier.

Ensuite

Après l'installation

Où vivent les fichiers, et comment ouvrir le panel web.

L'arborescence

Le projet est regroupé dans votre home, sous le nom choisi au premier lancement (ici ~/MonReseau, le nom proposé) ; l'instance d'IriX vit à côté, dans ~/IriX. Hors du home ne vont que les unités systemd, les règles sudoers, polkit et de rotation des journaux, le journal de l'installateur s'il tourne en root (/var/log), et — si vous les configurez par le menu — le site Apache et le relais Postfix.

~/MonReseau/
  Bootstrap/    # overtchat-setup.sh, le point d'entrée unique
  Components/   # sources et binaires compilés des composants
  Config/       # fichiers JSON — source de vérité de l'état
  IriX/         # le module Tcl des services
  Runtime/      # PID, journaux, fichiers d'exécution
  Web/          # le panel web et le site public

Lancer le panel web

# Depuis la racine du projet
./Web/start.sh start

Le panel est ensuite accessible sur http://localhost:8080. Le script accepte également stop, restart et status.

Le panel web et le panel shell ne font pas la même chose. overtchat-setup.sh installe, compile et démarre les composants ; l'interface web supervise et pilote le réseau une fois qu'il tourne. L'un ne remplace pas l'autre.

Piloter les services

Une fois IriX en place (ou OverCore, son successeur, qui les sert sur ce réseau depuis le 09/10/2026), les cinq pseudo-clients répondent en message privé sur IRC. Leur catalogue complet est détaillé sur la page dédiée.

Toutes les commandes des services →

Intégrité

L'option 8 du menu d'un composant prend l'empreinte SHA-256 de son binaire à la première vérification — rien n'est enregistré à l'installation —, puis la compare aux suivantes. L'option 9 du menu principal contrôle les empreintes des fichiers d'état de Config/ ; l'option 13 les pose de nouveau, sur une installation qu'on sait saine.

Dépannage

Symptômes et causes probables

Les blocages les plus fréquents viennent du verrouillage : ils ont presque toujours une cause nommée à l'écran.

SymptômeCause probable et remède
Une option reste verrouillée alors que le composant est bien installé Le composant a été posé en dehors du panel, donc les fichiers Config/*.json l'ignorent encore. Le script sonde le disque et corrige l'état au prochain affichage du menu : ressortez du menu et revenez-y. Si le verrou persiste, le binaire n'est pas à un emplacement connu — utilisez l'option 11 du menu du composant, « Définir un binaire existant », pour l'enregistrer explicitement.
Paquets manquants, mais pas de sudo Sans élévation, le panel ne peut rien installer et l'option 1 du menu Dépendances est elle-même verrouillée. Le message de blocage liste alors directement les paquets à poser à la main. L'option 2, « Afficher les commandes d'installation », donne la commande exacte pour votre distribution. Alternative : relancer avec --root.
Le panel refuse l'Access Manager Grade insuffisant : l'Access Manager exige un grade panel ≥ 60, et la réinitialisation de la configuration ≥ 80. Reconnectez-vous avec un compte disposant du grade requis. Rappel : ces grades sont ceux du panel, sans rapport avec les grades IRC.
Le panel demande un mot de passe au lancement Comportement normal dès qu'au moins un compte existe : la porte d'authentification s'active et laisse trois tentatives. Tant qu'aucun compte n'a été créé, le panel reste ouvert en mode installation initiale.
L'étape IriX est verrouillée alors que le serveur IRC tourne IriX ne dépend pas du serveur IRC mais d'Eggdrop : c'est un module Tcl qu'Eggdrop héberge. Installez Eggdrop — étape 3 — avant de revenir à l'étape 4.
Un comportement du script reste inexplicable Relancez avec --debug : la trace set -x montre chaque commande exécutée. Le Panel Logs, option 5 du menu principal, centralise par ailleurs journaux, bugs et rapports.

Un verrou n'est jamais un bug. Le panel préfère afficher une option indisponible avec sa raison plutôt que la masquer ou la laisser échouer à mi-parcours. Si une entrée est grisée, la réponse est écrite entre les chevrons qui la suivent.