# 🚀 Quick Start - Instalare Rapidă UnderChat IRCd

## ⚡ Instalare în 3 Comenzi

```bash
# 1. Clonează repository-ul
git clone https://gitlab.back.ro/itdata/underchat-ircd.git
cd underchat-ircd

# 2. Execută instalarea (va cere informații)
./install.sh

# 3. Pornește serverul
~/ircd/bin/ircd
```

**Gata!** 🎉 Serverul tău IRC e pornit pe `localhost:6667`

---

## 📋 Ce face Script-ul Automat

```
✓ Verifică dependențele (gcc, make, SSL)
✓ Configureaza proiectul cu setări optime
✓ Compilează codul sursă C
✓ Instaleaza binare și biblioteci
✓ Cere date de bază (nume, admin, porturi)
✓ Generează fișierul ircd.conf
✓ Creează structura de directoare
```

---

## 🎮 Opțiuni de Instalare

### Standard (Recomandat)
```bash
./install.sh
```

### Cu Configurare Interactivă Avansată
```bash
./install.sh
./configure-interactive.sh        # Pentru setări detaliate
```

### Customizat
```bash
# Prefix diferit
./install.sh --prefix /opt/ircd

# Maxim conexiuni mai mare
./install.sh --maxcon 8192

# Cu debug
./install.sh --debug

# Fără SSL
./install.sh --no-ssl

# Combinație
./install.sh --prefix /var/ircd --maxcon 16384 --debug
```

---

## 🔑 Setare Parola Operator

După instalare, generează parola pentru operator:

```bash
# Generează hash
~/ircd/bin/umkpasswd
# Introdu parola 2x
# Copiază hash-ul

# Editează config și înlocuiește password
nano ~/ircd/etc/ircd.conf
# Cauta: Operator { password = "..."; }
```

---

## 🖥️ Administrare Server

Am inclus o interfață de administrare complet automată:

```bash
./admin.sh
```

**Meniu opciuni:**
1. Pornire server
2. Oprire server  
3. Restart server
4. Verifica status
5. Editare configurare
6. Vizionare log-uri
7. Generare parola operator
8. Test sintaxă configurare

---

## 📁 După Instalare - Directoare

```
~/ircd/
├── bin/
│   ├── ircd                  ← Executable principal
│   ├── umkpasswd             ← Generator parole
│   └── ...
├── etc/
│   ├── ircd.conf             ← EDITEAZĂ ASTA
│   ├── ircd.motd
│   └── ircd.opermotd
├── log/
│   └── ircd.log              ← Log-uri server
└── var/
```

---

## 🌐 Conectare la Server

Folosind orice IRC client:

```
Server: localhost
Port: 6667 (normal) sau 6697 (SSL)
Nick: nickname_ales
```

Sau cu comanda:
```bash
irc://localhost:6667
```

---

## 🔍 Comenzi Útile

### Status Server
```bash
# Verifica dacă e pornit
ps aux | grep ircd

# Porturi ascultate
netstat -tlnp | grep ircd

# Log-uri live
tail -f ~/ircd/log/ircd.log
```

### Control Server
```bash
# Restart
~/ircd/bin/ircd -r

# Cu debug
~/ircd/bin/ircd -d

# Verifica config
~/ircd/bin/ircd -c
```

### Administrator
```
/OPER root password         ← Login operator
/STATS c                    ← Statistici
/LUSERS                     ← Lista utilizatori
/WALLOPS "mesaj"            ← Mesaj operatori
/KILL nick razlog           ← Ban utilizator
```

---

## 📚 Documentație Completă

Pentru detalii complete, citește:

- **INSTALL_AUTO.md** - Documentație instalare detaliată
- **CLAUDE.md** - Documentație tehnică
- **doc/example.conf** - Exemplu complet configurare
- **doc/readme.features** - Lista caracteristici

---

## ⚙️ Configurare Avansată

### Conectare la alte servere (Linking)

```bash
nano ~/ircd/etc/ircd.conf

# Adaugă în config:
Connect {
    name = "server2.example.com";
    host = "192.168.1.100";
    port = 6666;
    password = "link_password_hash";
    class = "servers";
};

# Restart
./admin.sh  # Alege opțiunea 3 (Restart)
```

### Porturi Personalizate

```bash
nano ~/ircd/etc/ircd.conf

# Cauta Port { } și modifică:
Port {
    port = 6668;      ← Schimbă portul
    mask = 0.0.0.0;
};
```

### SSL/TLS Certificat

```bash
# Generează certificat auto-semnat (testing)
openssl req -x509 -newkey rsa:2048 -keyout ircd.pem -out ircd.pem -days 365 -nodes

# Mută în directorul config
mv ircd.pem ~/ircd/etc/

# Editează config pentru SSL
nano ~/ircd/etc/ircd.conf
# Setează certificate path
```

---

## 🔒 Securitate

### Schimbă Parola Operator
```bash
./admin.sh
# Alege: 7) Generare parola operator
# Editează config cu noua parola
```

### Restricționează Acces
```bash
# Restricționer port (firewall)
sudo ufw allow 6667/tcp
sudo ufw allow 6697/tcp

# Sau cu iptables
sudo iptables -A INPUT -p tcp --dport 6667 -j ACCEPT
```

### Backupuri
```bash
# Backup configurare
cp ~/ircd/etc/ircd.conf ~/ircd/etc/ircd.conf.backup

# Backup complet
tar -czf ircd_backup_$(date +%Y%m%d).tar.gz ~/ircd/
```

---

## 🐛 Troubleshooting

### Server nu pornește
```bash
# Verifică erori
tail -20 ~/ircd/log/ircd.log

# Testează config
~/ircd/bin/ircd -c

# Debug mode
~/ircd/bin/ircd -d
```

### Port deja folosit
```bash
# Verifică ce folosește portul
lsof -i :6667

# Schimbă portul în config
nano ~/ircd/etc/ircd.conf
```

### Probleme compilare
```bash
# Curață și recompilează
cd underchat-ircd
make clean
./configure --enable-debug
make
make install
```

---

## 📞 Ajutor Rapid

**Ne.test rapid:**
```bash
./install.sh && ./admin.sh
```

**Doar configurare:**
```bash
./configure-interactive.sh
```

**Update repository:**
```bash
cd underchat-ircd
git pull origin main
```

---

## ✨ Sfaturi Finale

1. **Testează local prima dată** - `localhost:6667`
2. **Citește INSTALL_AUTO.md** - Pentru detalii complete
3. **Inspectează log-urile** - `tail -f ~/ircd/log/ircd.log`
4. **Backup configurarea** - Înainte de editări mari
5. **Urmărește comunitatea** - Pentru updates și tips

---

**Data**: 13 februarie 2026  
**Limbă**: Română 🇷🇴  
**Versiune**: 1.0  
**Support**: Citește documentația din `doc/`

---

## 🎯 Gata? Start!

```bash
# Clone
git clone https://gitlab.back.ro/itdata/underchat-ircd.git && cd underchat-ircd

# Install
./install.sh

# Start
~/ircd/bin/ircd

# Admin
./admin.sh
```

**Succes!** 🚀

