Detailed guide · v4.75.0

Install from scratch,
without guessing anything

Each step comes with the command to type, what the machine answers, and the sign that proves it worked. No knowledge of IRC is assumed. Allow an hour, half of it watching code compile. The installer’s own screens are still mostly in French: the messages quoted here appear as the script writes them, followed by a translation.

Overview

What you are installing, and why it takes several pieces

A chat network isn’t one program but a stack. Each layer only talks to its neighbor, and each is useless without the one below — which is why the installer enforces an order and refuses to skip it.

1 · The IRC server It carries the connections and the channels. Without it, nothing exists. 2 · OverCore The services: accounts, channels, moderation. 2 bis · Eggdrop + IriX Former path, only without a recent Node.js. 3 · The site and its panel Sign-up, web chat, administration. Optional — the network runs without it. Install from the bottom up An arrow reads “needs”. The wizard locks any step whose foundation is missing.

One server at a time. The installer offers six — Overtchat-Hybrid, UnrealIRCd, ircd-Hybrid, InspIRCd, Bahamut, ircu (Undernet) — but they compete for the same ports: 6667 and 6697. You pick one. The table on the Supported servers page says what each one allows afterwards; when in doubt, take the one offered by default.

Requirements

Before you start

A Linux machine

Debian, Ubuntu, Fedora, Rocky, Arch or openSUSE, with systemd. The installer recognizes their package managers and translates package names itself, as they differ from one family to another. Without systemd — Alpine, for instance —, it refuses to install.

An ordinary account

Definitely not root. The project installs into your home directory. The script will ask for occasional elevation for system packages, systemd units and a few system rules (sudoers, log rotation).

Room to compile

The server offered by default, Overtchat-Hybrid, comes ready-built and checked against its fingerprint; the other IRC servers are built on the spot. Allow 2 GB of free space — the script refuses below 512 MB — and a few minutes of CPU time.

Seven tools must be present first: jq, curl, git, openssl, tar, sha256sum and awk. The script checks them and offers to install them if you can elevate your rights. If it cannot, it shows the exact command for your distribution and stops there. It also refuses to start on a machine it knows to be incompatible: a system other than Linux, no systemd, an unknown package manager, an architecture other than x86_64 or aarch64, bash older than version 4, less than 512 MB of free space.

Step 1

Get the script, and check that it is intact

The script is served by this site. Download it, compare its checksum with the published one, make it executable.

# 1. download it to your home directory
cd ~
curl -fsSLO https://service-overtchat.hd.free.fr/dl/Bootstrap/overtchat-setup.sh

# 2. compute its checksum
sha256sum overtchat-setup.sh

# 3. compare it with the one the site publishes
curl -s https://service-overtchat.hd.free.fr/update

What you should see. Command 2 prints a long string of 64 characters. Command 3 returns structured text containing "sha256" followed by the same string. The two must be identical, character for character. If they differ, the file was altered on the way or the download was cut short: start over, run nothing.

# 4. make it executable
chmod +x overtchat-setup.sh

No output: chmod says nothing when it succeeds. To be sure, ls -l overtchat-setup.sh should show x in the permissions.

Looking for the full repository? It is private: neither its pages nor git clone answer without access. To install, the script alone is enough: it fetches the rest from this site.

Step 2

The first run

You run the script with no option at all. It then goes through seven checks before showing you anything — here they are in order, so that nothing scrolling by comes as a surprise.

./overtchat-setup.sh
1Logoidentity and version2Privilegesroot, sudo or plain3Distributionapt, dnf, pacman…4Contextwhat it detected5Toolsthe seven essentials6StateRuntime/state.json7Foldersits directories If any of these checks fails, the script stops and says which one — it never carries on halfway.

It announces which privileges it runs with

Three cases: root, your-name + sudo, or your-name (sans élévation) (“no elevation”). The third isn’t blocking: it will show you the commands to run yourself.

Even when run with sudo, it installs in your home directory and never in /root. Run as root without sudo, it refuses: the services never run as root. Name the account that will own the installation instead: OVERTCHAT_COMPTE=your-name.

It recognizes your distribution

By looking for the package manager. The “Distribution” line of the frame must name your system. If it says inconnu (unknown), the script refuses to install: without a recognized manager (apt, dnf, yum, pacman, zypper, apk), it would not know how to install its dependencies.

It checks the seven tools, and stops if one is missing

With elevation, it installs them. Without, it writes the exact command for your distribution and hands back control. Together with the refusal of an incompatible machine, it is the only deliberate stop along the way.

It creates its folders

Its directories, under the project folder — the name chosen at first launch, ~/MonReseau by default —, listed below in Where everything lands. It then checks that they really exist: a failed mkdir does not pass for a success.

Expected message: ✔ Arborescence validée (N dossiers) (“directory tree validated, N folders”)

It takes you into the wizard

After a [Entrée pour continuer] prompt (“press Enter to continue”). You’re in. No password is asked of you — see What is left to you: you haven’t missed anything.

Step 3

The wizard, and why some lines are grayed out

It is not a questionnaire: it is a list of six steps, some of which are locked until the previous one is done. A locked step stays displayed, greyed out, with the reason for the block — rather than disappearing and leaving you to search.

1System dependenciesalways available2IRC serveronce dependencies are in place3Eggdroponce a server is installed4IriXonce Eggdrop is installed5Anope / Leaonce a server is installed6System servicescan be run again anytime Step 5 is optional: a complete network works without it.

Take them in order, typing the number then Enter. Each installation downloads sources, compiles them, then checks that the resulting binary exists and starts. That last check is the one that counts: a build that finishes without errors has never proven that a program works.

StepWhat actually happensDuration
1 · Dependencies Compares the packages required by each of the eleven components with what is present, then installs the missing ones — or shows the commands if you don’t have the rights. 1–3 min
2 · IRC server For Overtchat-Hybrid, the server offered by default: downloads the ready-built binary and compares its fingerprint with the manifest’s. For the others: downloads the official archive, unpacks it, configures it and builds it. In both cases, the binary is tested before being declared installed. 3–10 min
3 · Eggdrop Same principle. The script also checks that the .so modules are present: without them the bot starts but can’t do anything. 2–5 min
4 · IriX Nothing is built: 31 files are downloaded from this site, each compared with its fingerprint published in the manifest and refused if it differs. Then you give the database details and the script writes the bot’s configuration. 1 min
5 · Anope / Lea Optional. Anope asks for the services server name, the host, the link port and a password — which cannot be empty. Lea cannot be installed outside the project: its sources are not public. 3–6 min
6 · System services Installs the project’s systemd units in /etc/systemd/system/ and enables the timers — backups, operators, watchdog. Without it, nothing runs on its own. —
Landmarks

Where everything lands

The project fits in a single folder, named at first launch (~/MonReseau by default). The installation also places things outside it: the ~/IriX instance, the systemd units, the sudoers, polkit and log-rotation rules, and — if you accept those steps — Apache and Postfix. To remove everything, use Tools/desinstaller.sh, which first shows what it would delete.

# ~/MonReseau — the root of everything
~/MonReseau/
├── Bootstrap/      the installer itself
├── Servers/        the compiled IRC servers
├── Components/
│   ├── Service/    eggdrop, anope, lea
│   └── Serveur/    binaries and local archives
├── IriX/           the services’ SOURCES
├── Config/         all the state files (.json)
├── Runtime/Logs/   the logs
└── Web/            the site and the panel, if installed

# and, separately:
~/IriX/            the bot’s INSTANCE — where it runs

Two IriX folders, and that’s not a mistake. ~/MonReseau/IriX holds the downloaded code, which updates replace. ~/IriX is the running instance, with its configuration and data — it belongs to you and is never overwritten.

Step 4 — optional

The site and the panel

Entry 12. Six questions, each with a default value: Enter is enough to accept it.

QuestionWhat it decidesDefault
Network nameThe title shown everywhere on the site.Mon réseau IRC
Short nameUsed in menus, where space is tight.MonReseau
DomainThe site’s address. Also used to build email addresses.irc.example.org
Sender addressThe sender of the site’s messages.contact@your-domain
Notification addressWho receives requests and alerts.same as above
Main channelThe channel the website’s chat opens first.#accueil

The site archive is downloaded, then its checksum is compared with the published one. If the manifest can’t be reached, the script explicitly asks for permission to continue without checking, and refuses by default — the archive unpacks over your installation folder, this is no formality.

One last question, further on, is about your provider’s SMTP relay (smtp.free.fr, ssl0.ovh.net…). Leaving it empty works, but messages will be sent directly — which most recipients refuse from a residential address.

Honesty

What the installer doesn’t do

Three things are beyond it. None is a defect, but ignoring them leads to blockers you can’t put a name to.

1 The MySQL server

It installs the client, never the server. IriX and the site need it. Install it yourself:

sudo apt install mariadb-server

Then create a database and a user before step 4.

2 The web panel account

The site installs without any account: nobody can sign in until you create one.

php ~/MonReseau/Tools/\
panel-account.php create

3 No password at first

The installer doesn’t ask for one on first run, and that’s on purpose: the accounts file doesn’t exist yet. It is created the first time you enter the Access Manager (entry 6). Until you have been there, anyone with access to the Unix account has access to the panel.

Next

Living with it: updates

Seven commands work without going through the menu, so also from a scheduled task.

# am I up to date?
./overtchat-setup.sh version

# what would an update change? (writes nothing)
./overtchat-setup.sh check

# apply it
./overtchat-setup.sh update

# roll back
./overtchat-setup.sh rollback

What you should see after version: a two-line box, « Installée » and « Publiée » (installed and published), followed by ✔ À jour. (“up to date”) or a warning naming the new version. If the second line says injoignable (“unreachable”), it’s the network or the site that isn’t responding, not your installation.

Every file is backed up before being replaced, and its checksum verified after download: a tampered archive is refused rather than installed. If an update fails, an email goes to the notification address with the details of what went wrong.

Troubleshooting

When things get stuck

What you seeWhat it meansWhat to do
Dépendances manquantes : … (“missing dependencies”) One of the seven basic tools is missing. Run the command shown, then run the script again.
A step stays gray What it builds on isn’t installed. Read the reason under the step: it names what is missing.
Distribution : inconnu (“unknown”) No recognized package manager. The script refuses to install: it would not know how to install its dependencies. Use a recognized distribution.
The build stops A development library is missing. Menu entry 2: it lists what’s missing per component.
The site shows up, but you can’t sign in No account exists. Create it — the panel account.
The panel can’t find the database MySQL isn’t installed or isn’t running. Install it — the MySQL server.

The session log lives in /var/log/overtchat-setup.log when the installer runs as root (through sudo), in ~/.local/state/overtchat/overtchat-setup.log otherwise, readable by you alone — and keeps everything that scrolled by, including what went past too fast. If you get stuck, it’s the first place to look — and the content to attach if you write to us from the contact page.