ircu2/INSTALL_AUTO.md

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:

  1. ✓ Verifica dependențele
  2. ✓ Ruleaza ./configure cu setări optime
  3. ✓ Compilează codul sursă
  4. ✓ Instalează binare și biblioteci
  5. ✓ Cere informații de bază și generează ircd.conf
  6. ✓ 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