Install your network,
in seven questions
Overtchat Setup, the official installer, asks you its questions in its window, then installs the network on this computer or on your Linux server, over SSH, with the project’s installer, overtchat-setup.sh, which it carries and checks: the IRC server, the services, the website and the database. On the machine, that same installer then remains your dashboard — start, stop, update — and, run in a terminal, it can also install in seven questions. Its own screens are in French: this page quotes them and translates them by meaning.
Two IRC servers. The installer sets up Overtchat-Hybrid, the project’s server, shipped already compiled by this site. On a machine that cannot run it, it sets up UnrealIRCd instead, with the Anope services, and says so. What each server allows afterwards is given feature by feature on the Compatible servers page.
Two ways to install
The code’s GitHub repository is private: this site is what serves everything needed to install. The code is under the MIT license: server, services, panel and scripts can be reused freely, including to run your own network. This site’s texts, its name and its visual identity, however, remain reserved — they are the identity of this network, not of the software. Third-party components keep their own license (third-party licenses). Two ways to get the installer, which then fetches the rest from this same site.
On Windows: Overtchat Setup
An app with a window: it installs the network on this computer, in WSL, or on your server, then starts and monitors it. It carries the installer inside and checks its hash before using it.
On Linux: Overtchat Setup too
The same app, for a Linux desktop (Debian, Ubuntu): it installs the network on this machine, for your account, or on your server over SSH. Administrator rights are asked for by the system’s password window; the app never sees that password.
| Resource | Address |
|---|---|
| Installer | Overtchat Setup — the official installer, served by this site |
| Checksums | manifeste.json — SHA-256 of every distributed file |
| Published version | /update — number, checksum and changelog |
| Git repository | https://github.com/SerVuS033/Overtchat.git
— private: neither the web pages nor git clone respond without access. The installer above doesn’t need it. |
| Report a problem | Contact form |
| License | MIT code, name and texts reserved — LICENSE file at the root of the repository; third-party components under their own license (third-party licenses) |
The repository and this documentation may differ. The published script carries the version stated in the VERSION file at the root of the repository — currently 4.82.0. If they disagree, the behavior of the script you are running is what counts.
What the installer sets up, and where from
Every version is pinned: the installer fetches one specific archive, not the latest one. A versioned URL replays identically six months later, whereas a “latest” link will one day install something else without a single line having changed. These numbers are read from the script — this page does not copy them.
| Component | Version | Role | Official source |
|---|---|---|---|
| UnrealIRCd | 6.2.6 | The fallback IRC server, when Overtchat-Hybrid does not suit the machine — Overtchat-Hybrid speaks its dialect. | https://www.unrealircd.org/downloads/unrealircd-6.2.6.tar.gz |
| Anope | 2.1.25 | Optional services: NickServ, ChanServ, OperServ… The 2.1 branch, the one that renamed its protocol module. | https://github.com/anope/anope/archive/refs/tags/2.1.25.tar.gz |
Overtchat-Hybrid is not in this table: it is the project’s own server, and the one the installer sets up by default, from this site. It downloads the already compiled server (Linux x86_64, glibc 2.34 or newer, OpenSSL 3) and checks its checksum; the site serves only that binary. On a machine that doesn’t fit, the install sets up UnrealIRCd instead and says so — or refuses, if Overtchat-Hybrid was explicitly requested. In a copy of the repository, it compiles the sources present. OverCore, the network services, comes with the site archive: it only needs your distribution’s Node.js package.
Requirements
A Linux machine with systemd, an ordinary account and a terminal. Everything else is checked, listed or installed by the script itself.
What the script checks before writing anything
- The distribution and its package manager (apt, dnf, yum, pacman, zypper, apk), to translate generic names (
ssl-dev) into the distribution’s real names. - That the machine can run Overtchat: Linux with systemd, an x86_64 processor, bash 4 or newer, at least 512 MB free (2 GB advised). Otherwise it refuses, says why, and writes nothing.
- Administrator rights, requested at startup — see below.
- The seven base tools:
jq,curl,git,openssl,tar,sha256sumandawk. Missing ones are installed.
Administrator rights
Run from your account, with no option, the script explains that it needs administrator rights to set up packages and services, then asks Continuer avec sudo ? [O/n] (“continue with sudo?”). You type the password of your account, not root’s; it checks that sudo accepts it, then restarts itself entirely with those rights. It never asks again afterwards.
If sudo does not exist on the machine, or refuses your account, it stops without writing anything and shows the exact commands to type once, as root: install sudo if missing, usermod -aG sudo your-account, then log out and back in. Another way, as root: name the account that will own the install, OVERTCHAT_COMPTE=your-account bash overtchat-setup.sh.
| Invocation | Mode | Usage |
|---|---|---|
| ./overtchat-setup.sh | default | Asks for administrator rights at startup, then the simple install on the first run; afterwards, your network’s menu. |
| ./overtchat-setup.sh --root | root | Restarts itself under sudo right away, without asking. The tree stays in your home directory. |
| ./overtchat-setup.sh --user | forced | Forces the mode without administrator rights — only if every package is already installed. |
| ./overtchat-setup.sh --projet=NOM | name | Names the install (the ~/NAME folder) without going through the first-run question. |
| sudo -E ./overtchat-setup.sh --auto --projet=NOM | no questions | Installs without asking anything: the answers come from the environment (--help lists them). This is what Overtchat Setup runs. The database is prepared on the machine only with OVERTCHAT_BASE=preparer; otherwise it must exist, with its account. |
| ./overtchat-setup.sh --debug | trace | Turns on the set -x trace to diagnose a behavior. |
| ./overtchat-setup.sh --help | help | Shows the available options and exits. |
Nothing is ever installed in /root. Even restarted under sudo, the script creates the tree in your account’s home directory, under the name chosen on the first run (~/MonReseau is proposed, or --projet=NAME) and gives the files back to you. Run as root with no originating account, it refuses: the services never run as root. Administrator rights serve only system packages (MariaDB included), systemd units and a few /etc rules (sudoers, polkit, log rotation); the rest — binaries, configuration, data — is yours.
The simple install: seven questions, then everything runs on its own
On the first run, once the rights are obtained, the script announces what it will set up — the IRC server, the network services, the website with its admin panel, the database — then asks its questions. Each is explained and proposes a value in brackets: the Enter key keeps it. An impossible answer is refused at once, and the question asked again.
| No. | Question | What it decides | Proposed |
|---|---|---|---|
| 1 | Le nom de votre réseau | The name visitors will see, on the site and in the chat. The original network’s names are refused. | Mon réseau IRC |
| 2 | Un nom court, sans espace | For menus and group names: letters, digits, dot, dash or underscore, 2 to 32 characters. | the network name, without spaces or accents |
| 3 | L'adresse internet du réseau (nom de domaine) | The name that will lead to this machine, for instance irc.mydomain.org. For a trial on this machine alone: localhost — the IRC server is then called irc.localhost. | the machine’s name, otherwise localhost |
| 4 | Votre adresse e-mail | The site’s messages (sign-ups, alerts) are sent in its name, and you receive the notifications there. | contact@your-domain |
| 5 | Le salon où arrivent les visiteurs | The channel the site’s chat opens first: a #, then 1 to 31 characters without spaces. | #accueil |
| 6 | La base de données | The site and the services store everything in a MariaDB database named “Service_Overtchat”, which only the “irix” SQL account can open: two names fixed by the software, which change nothing about your network’s name. 1: prepare it on this machine — MariaDB is installed, the database and its account created, the password generated for you. 2: you already have this database and this account — its password is asked, without being shown. Any other answer is asked again. | 1 |
| 7 | Démarrer le réseau tout seul quand la machine s'allume ? | Otherwise, you will have to start it by hand after each reboot — from this script’s menu. | yes |
Then comes a summary — network, address, e-mail, welcome channel, database, start with the machine, install folder — and one last question: Lancer l’installation ? (“start the install?”). Count 10 to 30 minutes depending on the machine and the connection. Until you say yes, nothing is installed.
What happens next, in six steps
1 · System dependencies
The packages of the site and of the IRC server are installed, then your distribution’s Node.js for OverCore. Without Node.js 14.14 or newer, the install stops and says so: a network without services is not a network.
2 · Website and network identity
The site archive is downloaded from this site, its checksum compared to the published one, then deployed. Your answers become the network’s identity: name, domain, addresses, welcome channel.
3 · IRC server
Overtchat-Hybrid, already compiled, is downloaded and checksum-verified, then configured with your network’s identity: a self-signed certificate for port 6697, an “admin” operator with a randomly drawn password. On a machine that cannot run it, UnrealIRCd is compiled instead, and the final summary says so.
4 · Network services
OverCore, the services written in Node.js — nickname and channel registration, moderation —, is configured and its link declared in the server. With UnrealIRCd, the Anope services are built instead, and left stopped: they are started from expert mode.
5 · Database
The tables of the site and of the services are created in the database, by replayable migrations: running them again erases nothing.
6 · System services
The systemd units are placed in /etc/systemd/system/, the system files too (sudoers, log rotation, Apache without enabling it), then the server, the site and OverCore are started — the script waits for OverCore’s link to be active, 150 seconds at most. If you answered yes to question 7, they are enabled: they will come back on their own when the machine boots.
Two passwords are created for you, and neither is shown. The database one is generated, proven by a real connection, then written to the database access file (IriX.json, readable by you alone). The IRC operator “admin” one is written to ~/.overtchat/oper-admin.txt, readable by you alone; the script gives its path at the end. An “irix” account already present in MariaDB is never overwritten: then choose 2 at question 6.
At the end
Votre réseau « … » est installé. (“your network is installed”). Then comes an eighth question: create your site administration account right away (owner level), through the Tools/panel-account.php tool — a login, then a password typed hidden, never shown. If refused, or if it fails, the command to do it later is given. Then the script gives the site’s address from this machine (http://127.0.0.1:8080) if its unit is running, and the path of the full log. If something could not be done — a database that doesn’t answer, a service that didn’t start —, the install ends with reservations: each is listed with the action that fixes it. If it is interrupted, what came before stays in place: run the script again, the simple install resumes.
Required packages, component by component
The names below are generic: the script translates them for your package manager. The simple install sets up the ones it needs; the Dependencies menu of expert mode shows, for each component, whether it is complete, and otherwise the list of what is missing.
| Component | Packages |
|---|---|
| Anope | build · gcc · make · cmake · ssl-dev |
| UnrealIRCd | build · gcc · make · ssl-dev · zlib-dev · pkgconfig · curl-dev · pcre2-dev · argon2-dev · sodium-dev |
| Overtchat-Hybrid (built from a copy of the repository) | build · gcc · make · ssl-dev · zlib-dev · autoconf · automake · libtool |
| Overtchat-Hybrid (binary served by the site) | openssl |
| Site and web panel | php · php-mysql · php-mbstring · php-gd · mysql-client · tar · curl · postfix |
| OverCore (the network services) | nodejs |
The Dependencies menu has two entries. Option 1, “Install all missing dependencies”, is itself locked if no elevation is possible — it can’t keep its promise without privileges. Option 2, “Show installation commands”, is always available and gives you the exact command to copy.
After installing
Where the files live, and how to open the web panel.
The directory tree
The project is gathered in your home directory, under the name chosen on the first run (here ~/MonReseau, the proposed name). Outside the home go only the systemd units, the sudoers, polkit and log-rotation rules, the installer’s log (/var/log), and — if you set them up from expert mode — the Apache site and the Postfix relay.
~/MonReseau/ Bootstrap/ # overtchat-setup.sh, the single entry point Config/ # JSON files — network identity and state Robots/ # OverCore, the network services Runtime/ # state, logs, runtime files Servers/ # the IRC server Web/ # the web panel and the public site ~/IriX/cmds/IriX.json # database access, readable by you alone
The website and the web panel
The site runs through the overtchat-web.service unit, started at the end of the install: http://127.0.0.1:8080 from the machine. The admin panel is at /admin.php; you enter it with the account created at question 8 — or, later, through entry 6 of the menu (“site accounts”), or php ~/MonReseau/Tools/panel-account.php create.
The web panel and the script’s menu don’t do the same thing. overtchat-setup.sh installs, starts, stops and updates the network’s elements; the web interface administers the network once it runs — members, channels, moderation. Neither replaces the other.
Controlling the services
Once OverCore is in place, the five service pseudo-clients answer by private message on IRC. Their full catalogue is detailed on the dedicated page.
Updating, without the menu
The same actions exist as commands, usable from a scheduled task: version, check (writes nothing), update, status, history, rollback. Every file is backed up before being replaced, and its checksum verified.
check and version return 0 when everything is up to date, 1 when an update is waiting, 2 on error. Only rollback asks a question (the backup to restore, then a confirmation): never from a scheduled task.
Symptoms and likely causes
The script almost always says the cause on screen, and the log keeps everything that scrolled by.
| Symptom | Likely cause and fix |
|---|---|
| sudo refused, or the sudo command doesn’t exist |
Your account is not allowed to use sudo. The script shows the commands to type once as root (su -): install sudo if missing, usermod -aG sudo your-account, then log out and back in. Nothing has been installed: run it again afterwards. |
| “Node.js missing or too old” | OverCore requires Node.js 14.14 or newer, taken from your distribution’s packages (never a third-party repository). Install it, then run the script again: the simple install resumes. |
| “An irix account already exists in MariaDB” | A database has already been prepared on this machine, maybe for another install. The script never overwrites that account: run it again and choose 2 at question 6, with its password. |
| Finished with reservations | Everything is in place, but something could not be done: each reservation is listed with the action that fixes it. Fix them, then check the state from your network’s menu. |
| Run again, the script asks for the installation name again |
It does not know which one to use: you have several installations in your home directory (before 24/10/2026, it did not even find a single one). Stop it (Ctrl+C), then run it again with --projet=NAME, the name of your installation’s folder. A ~/Service-Overtchat folder created by mistake, with only Config/ and Runtime/, can be removed. |
| An element shows as “failed” in the menu | Its systemd unit failed. Manage one element → View its log gives its last 50 lines; Restart starts it again. |
| The site shows, but nobody can enter the admin panel |
No site account has been created — you said no at question 8, or the install came from --auto. Entry 6 of the menu, “site accounts”, or php ~/MonReseau/Tools/panel-account.php create. |
| The script does something you can’t explain |
Run it again with --debug: the set -x trace shows every command executed. The installer’s log (entry 4 of the menu, last line) keeps everything that scrolled by: /var/log/overtchat-setup.log when it runs under sudo, ~/.local/state/overtchat/overtchat-setup.log otherwise. |
A refusal is never a bug. The script prefers to stop before writing, saying why, rather than install halfway. If an entry is grayed out, the answer is written between the angle brackets that follow it.