8.6 KiB
Instalare Automată UnderChat IRCd 🚀
Această pagină descrie cum să instalezi și configurezi automat UnderChat IRCd folosind scripturile furnizate.
📋 Cerințe
Înainte de a rula scripturile de instalare, asigură-te că ai următoarele pachete instalate:
Debian/Ubuntu
sudo apt-get update
sudo apt-get install -y build-essential autoconf automake libtool libssl-dev perl
RHEL/CentOS/Fedora
sudo yum install -y gcc make autoconf automake libtool openssl-devel perl
macOS
xcode-select --install
brew install autoconf automake libtool openssl
🚀 Instalare Rapidă
Opțiunea 1: Instalare Automată Standard
Cea mai simplă metodă - lase script-ul să facă totul:
# Clonează repository-ul
git clone https://gitlab.back.ro/underchat/ircu2.git
cd ircu2
# Execută instalarea automată
./install.sh
Script-ul va:
- ✓ Verifica dependențele
- ✓ Ruleaza
./configurecu setări optime - ✓ Compilează codul sursă
- ✓ Instalează binare și biblioteci
- ✓ Cere informații de bază și generează
ircd.conf - ✓ Creează structura de directoare necesară
Opțiunea 2: Instalare cu Configurare Interactivă
Pentru control complet asupra setărilor:
./install.sh # Instalare standard
./configure-interactive.sh # Configurare avansată
Script-ul interactiv te va ghida prin:
- Setări generale (nume, descriere, numeric)
- Informații administrator
- Configurare porturi
- Clase de conexiuni
- Setări operatori
- Caracteristici avansate
⚙️ Opțiuni de Instalare
Instalare Customizată
# Instalare cu prefix personalizat
./install.sh --prefix /opt/ircd
# Instalare cu maxim conexiuni diferit
./install.sh --maxcon 8192
# Instalare cu debug activat
./install.sh --debug
# Dezactivare SSL/TLS
./install.sh --no-ssl
# Setare versiune la build
./install.sh --version 1.0.3
# Combinatie de optiuni
./install.sh --prefix /opt/ircd --maxcon 16384 --debug
Toate Opțiunile Disponibile
Usage: ./install.sh [OPTIONS]
OPTIONS:
-h, --help Afiseaza mesajul de ajutor
-p, --prefix PATH Calea de instalare (implicit: $HOME/ircd)
-m, --maxcon NUM Numarul maxim de conexiuni (implicit: 4096)
-d, --debug Activeaza modul de debug
-s, --no-ssl Dezactiveaza suportul SSL/TLS
-c, --config FILE Fisier de configurare initial
-V, --version VER Seteaza versiunea in PATCHLEVEL (ex: 1.0.3)
📁 Structura Directoarelor Post-Instalare
După instalare, vei avea:
~/ircd/ (prefix implicit)
├── bin/
│ ├── ircd # Executable principal
│ ├── umkpasswd # Generator de parole
│ └── ...
├── lib/
│ ├── libircd.a # Biblioteci compilate
│ └── ...
├── etc/
│ ├── ircd.conf # Fișier configurare principal
│ ├── ircd.motd # Message of the Day
│ └── ircd.opermotd # Operator MOTD
├── log/
│ └── ircd.log # Fișier de log
└── var/
└── ...
🔧 Pornirea Serverului
Pornire Standard
# Folosind fișierul de configurare implicit
~/ircd/bin/ircd
# Sau specificând fișierul de configurare
~/ircd/bin/ircd -f ~/ircd/etc/ircd.conf
Opțiuni de Pornire
# Pornire în background
nohup ~/ircd/bin/ircd &
# Pornire cu debugging
~/ircd/bin/ircd -d
# Verificare sintaxă configurare
~/ircd/bin/ircd -c
# Afișare versiune
~/ircd/bin/ircd -v
🔐 Setare Parola Operator
Pentru a folosi comenzi de operator, ai nevoie de o parola hash:
# Generează parola
~/ircd/bin/umkpasswd
# Output exemplu:
# Introdu parola: ****
# Repeta parola: ****
# Hash: $2a$04$NTy1i.X/8pXekNBNbMRlOu1JAjIiMfPGIe1sZf0Xqq.2jzqPMfN/G
# Copiază hash-ul în ~/ircd/etc/ircd.conf
nano ~/ircd/etc/ircd.conf
# Cauta secțiunea Operator { } și înlocuiește password = "..."
📝 Editare Configurare
Fișierul de configurare este generat automat, dar poți să-l editezi:
nano ~/ircd/etc/ircd.conf
Secțiuni Importante
General - Setări server
General {
name = "irc.example.com";
description = "My IRC Server";
numeric = 1;
};
Operator - Definire operatori
Operator {
nick = "root";
password = "$2a$04$..."; # Hash bcrypt
privileges = "+all";
host = "127.0.0.1";
};
Port - Configurare porturi
Port {
port = 6667;
mask = 0.0.0.0;
};
Class - Clase de conexiuni
Class {
name = "clients";
pingfreq = 120;
maxlinks = 10;
sendq = 40000;
};
🌐 Conectare la Server
După pornire, poți să te conectezi cu un client IRC:
Server: localhost
Port: 6667 (sau 6697 pentru SSL)
Nick: nickname
🔍 Verificare Status
Log-uri
# Afișare log-uri live
tail -f ~/ircd/log/ircd.log
# Ultimi 50 de rânduri
tail -50 ~/ircd/log/ircd.log
# Căutare erori
grep ERROR ~/ircd/log/ircd.log
Procese Active
# Verifică dacă ircd rulează
ps aux | grep ircd
# Procese pe port
netstat -tlnp | grep 6667
🐛 Rezolvare Probleme
"Check on CPATH (ircd.conf) failed: No such file or directory"
Aceasta este problema nr. 1 din lista ta. Server-ul nu găsește configurația:
# Verifică locația config-ului
ls -la ~/ircd/etc/ircd.conf
# Dacă nu există, rulează remediere automată
./fix-config.sh
# Sau din admin.sh
./admin.sh
# → Opțiunea 9) Remediere probleme configurare
Cauza: Configurația e în lib/ în loc de etc/ sau CPATH e setat greșit.
"Config parse error on line X: syntax error"
Problema nr. 2 - erori de sintaxă în configurație:
# Test sintaxă detaliat
./admin.sh
# → Opțiunea 8) Test sintaxă configurare
# Remediere automată
./fix-config.sh ~/ircd
# Verificare manuală cu context
nano +126 ~/ircd/etc/ircd.conf # înlocuiește 126 cu linia ta
Cauze comune:
- Ghilimele neînchise:
"text neinchis - Acolade nepotrivite:
{ fără } - Virgulă lipsă:
setting = "value" missing;
Host hiding nu funcționează (problema nr. 2)
# În ircd.conf, verifică:
features {
"HOST_HIDING" = "TRUE";
"HOST_HIDING_STYLE" = "1";
"HIDDEN_HOST" = "users.underchat.org";
"HIDDEN_IP" = "127.0.0.1";
};
# Restart server după modificări
./admin.sh → opțiunea 3) Restart
Operatorii nu primesc +W (problema nr. 3)
# În ircd.conf, verifică clasa Opers:
Class {
name = "Opers";
usermode = "+Wx"; # Nu doar +W
# ...alte setări...
};
# Verifică features pentru WHOIS notifications:
features {
"WHOIS_NOTICE" = "TRUE";
"OPER_WHOIS_PARANOIA" = "TRUE";
};
"Permission denied" la ./configure
# Verifică permisiunile
ls -la configure
# Dacă nu are +x, corecteaza:
chmod +x configure
chmod +x install-sh config.guess config.sub
"Compilation failed"
# Verifica logul de compilare
make 2>&1 | tail -50
# Curața și încearcă din nou
make clean
./configure --enable-debug
make
"Port already in use"
# Verifică ce folosește portul
lsof -i :6667
# Schimbă portul în configurare
nano ~/ircd/etc/ircd.conf
# Cauta Port { port = 6667; }
Errori SSL/TLS
Dacă ai probleme cu SSL:
# Reinstalează fără SSL
./install.sh --no-ssl
# Sau instalează openssl-dev
sudo apt-get install libssl-dev
Script de Remediere Automată
Pentru remedierea rapidă a problemelor comune:
# Descarcă și rulează scriptul de remediere
./fix-config.sh ~/ircd
# Sau din meniul admin
./admin.sh
# → Opțiunea 9) Remediere probleme configurare
Scriptul remediază:
- ✅ Configurația în directorul greșit (lib vs etc)
- ✅ Permisiuni incorecte pe fișiere
- ✅ Acolade și ghilimele nepotrivite
- ✅ CPATH și DPATH setate greșit
- ✅ Host hiding incomplet
- ✅ Moduri operatori (+W, +x)
- ✅ Configurație minimă dacă lipsește
🛠️ Troubleshooting Avansat
Debug Mode pentru Dezvoltatori
# Compilare cu debugging
./install.sh --debug
# Pornire cu verbose output
~/ircd/bin/ircd -d -f ~/ircd/etc/ircd.conf
# Urmărire log-uri în timp real
tail -f ~/ircd/log/ircd.log
Verificare Configurație Completă
# Validare sintaxă
~/ircd/bin/ircd -c -f ~/ircd/etc/ircd.conf
# Check cu output detaliat
~/ircd/bin/ircd -k -f ~/ircd/etc/ircd.conf 2>&1 | head -20
# Backup și regenerare
cp ~/ircd/etc/ircd.conf ~/ircd/etc/ircd.conf.backup
./install.sh --config ~/ircd/etc/ircd.conf.backup