# 🚀 Underchat IRCU2 - UnderChat IRCd

> **Repository**: https://gitlab.back.ro/underchat/ircu2.git  
> **Limbă**: Română 🇷🇴  
> **Data**: 13 februarie 2026  
> **Versiune**: v1.0.1  
> **Status**: ✅ Production Ready

---

## 📖 Descriere

**Underchat IRCU2** este o distribuție profesională a **UnderChat IRCd** - un server IRC avansat bazat pe protocolul P10. Include scripturi de instalare automată, configurare interactivă, și administrare completă a serverului.

---

## ✨ Caracteristici Principale

### 🚀 Instalare Automată
- ✅ Script `install.sh` - Complet automatizat
- ✅ Verificare dependențe automate
- ✅ Compilare și instalare
- ✅ Suport aarch64 (ARM 64-bit)

### ⚙️ Configurare Profesională
- ✅ Model bazat pe node-ase.ovh
- ✅ 8 secțiuni configurare
- ✅ 40+ features avansate
- ✅ Domeniu underchat.org preconfiguarat

### 👥 Managementul Operatorilor
- ✅ Cerere interactivă username
- ✅ Parola cu validare și criptare automată
- ✅ Format hash $PLAIN$ ready

### 🌐 HUB Linking
- ✅ Detectare automată HUB vs Leaf
- ✅ Configurare linking interactivă
- ✅ Connect block generat dinamic

### 🛠️ Administrare
- ✅ Meniu TUI `admin.sh`
- ✅ Pornire/oprire/restart
- ✅ Editare config cu backup
- ✅ Monitorizare status și log-uri

### 📖 Documentație Completă
- ✅ 9+ ghiduri în limba română
- ✅ Exemple practice
- ✅ Troubleshooting complet
- ✅ Quick start (5 minute)

---

## 🚀 Quick Start

### 1. Clone Repository
```bash
git clone https://gitlab.back.ro/underchat/ircu2.git
cd ircu2
```

### 2. Instalare (3 comenzi)
```bash
./install.sh
# Răspunde la întrebări (Server, Admin, Operator, HUB)
# Script generează config automat
```

### 3. Administrare
```bash
./admin.sh
# Meniu pentru:
# - Pornire/oprire server
# - Editare configurare
# - Monitorizare status
# - Log viewing
```

### 4. Conectare
```
Server: localhost
Port: 6667 (normal) sau 6697 (SSL)
Nick: nickname
```

---

## 📋 Scripturi Incluse

### install.sh (Instalare Automată)
```bash
./install.sh
# - Verifică dependențe (gcc, make, SSL)
# - Detectează platformă (Linux, BSD, macOS, aarch64)
# - Configureaza și compileaza
# - Cere date server (domeniu, nume, numeric)
# - Cere date operator (username, parola)
# - Cere tip server (HUB/Leaf)
# - Dacă HUB, cere info linking
# - Generează ircd.conf complet
```

### configure-interactive.sh (Configurare Avansată)
```bash
./configure-interactive.sh
# 6 etape interactive:
# 1. Setări generale
# 2. Informații admin
# 3. Configurare porturi
# 4. Clase de conexiuni
# 5. Operatori
# 6. Caracteristici avansate
```

### admin.sh (Meniu Administrare)
```bash
./admin.sh
# Opțiuni:
# 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ă
```

### fix-aarch64.sh (Fix ARM 64-bit)
```bash
./fix-aarch64.sh
# Fixare automată config.guess pentru aarch64
# Backup config
# Patch dinamic
# Test validare
```

---

## 📖 Documentație

### Ghiduri Rapide
- **QUICKSTART.md** - Start în 5 minute
- **CONFIGURARE_PROFESIONALA.md** - Model profesional

### Referințe Detaliate
- **INSTALL_AUTO.md** - Instalare completă
- **OPERATORI_HUB_LINKING.md** - Operatori + HUB
- **FIX_AARCH64.md** - Support ARM

### Overview & Index
- **INDEX.md** - Roadmap complet
- **README_SCRIPTS.md** - Descriere scripturi
- **CLAUDE.md** - Detalii tehnice

---

## 🌍 Platforme Suportate

| OS | Status | Note |
|----|--------|------|
| **Ubuntu/Debian** | ✅ Full | Testat |
| **RHEL/CentOS** | ✅ Full | Instrucțiuni |
| **macOS** | ✅ Full | Instrucțiuni |
| **FreeBSD** | ✅ Full | Instrucțiuni |
| **Oracle Linux ARM** | ✅ Full | Fix aarch64 |
| **Solaris** | ⚠️ Legacy | Instrucțiuni |

---

## 🔧 Opțiuni Instalare

### Standard
```bash
./install.sh
```

### Custom Path
```bash
./install.sh --prefix /opt/ircd
```

### Cu Maxim Conexiuni
```bash
./install.sh --maxcon 8192
```

### Cu Debug
```bash
./install.sh --debug
```

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

---

## 📁 Structură După Instalare

```
~/ircd/
├── bin/
│   ├── ircd                 ← Server main
│   ├── umkpasswd           ← Password generator
│   └── ...
├── etc/
│   ├── ircd.conf           ← Configurare
│   ├── ircd.motd           ← Message of the Day
│   └── ircd.opermotd       ← Operator MOTD
├── log/
│   └── ircd.log            ← Log file
└── var/
    └── ...
```

---

## 🎯 Exemple Utilizare

### Server Leaf (NU e HUB)
```bash
./install.sh
# Răspunzi: domain, server name, operator, NO la HUB
# → Generates leaf server config
```

### Server HUB
```bash
./install.sh
# Răspunzi: domain, server name, operator, YES la HUB
# Cereri: HUB name, IP, port, password
# → Generates HUB config cu Connect block
```

### Dezvoltare/Testing
```bash
./install.sh --prefix /tmp/test --debug --maxcon 100
```

---

## 🔐 Securitate

După instalare:
1. ✅ Schimbă parola operator
2. ✅ Securizează config: `chmod 600 ~/ircd/etc/ircd.conf`
3. ✅ Backup config: `cp ~/ircd/etc/ircd.conf ~/ircd/etc/ircd.conf.backup`
4. ✅ Firewall rules: `ufw allow 6667/tcp`
5. ✅ Monitorizează log-uri: `tail -f ~/ircd/log/ircd.log`

---

## 📊 Features

### Server
- ✅ Protocol P10
- ✅ Event engines (epoll, kqueue, /dev/poll)
- ✅ SSL/TLS support
- ✅ IPv4 și IPv6 ready
- ✅ Host hiding
- ✅ Dynamic configuration

### Clienți
- ✅ Maxim customizable conexiuni
- ✅ Auto-join channels
- ✅ CTCP versioning
- ✅ GeoIP support
- ✅ Account persistence

### Servere
- ✅ Hub linking
- ✅ Network synchronization
- ✅ Server-to-server encryption
- ✅ Custom routing rules

---

## 🆘 Troubleshooting

### Instalare
```bash
# Check dependencies
./install.sh --help

# Manual fix config.guess (aarch64)
./fix-aarch64.sh

# Revert la backup
git checkout -- config.guess config.sub
```

### Server
```bash
# Verifică config sintaxă
~/ircd/bin/ircd -c

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

# Check logs
tail -f ~/ircd/log/ircd.log
```

### Networking
```bash
# Port deja în uz
lsof -i :6667

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

# Restart
./admin.sh → 3) Restart
```

---

## 📚 Referințe

### Documentație Proiect
- doc/example.conf - Config detaliat
- doc/p10.txt - Protocol P10
- doc/readme.features - Features

### Comenzi IRC
```
/OPER username password   - Login operator
/STATS u                  - Uptime
/STATS c                  - Conexiuni
/LUSERS                   - Utilizatori
/WALLOPS "mesaj"          - Operator message
```

---

## 📞 Support

### Probleme Instalare
→ Citește **INSTALL_AUTO.md** secțiunea Troubleshooting

### Probleme Configurare
→ Citește **CONFIGURARE_PROFESIONALA.md**

### Probleme aarch64
→ Citește **FIX_AARCH64.md**

### Probleme Operatori
→ Citește **OPERATORI_HUB_LINKING.md**

---

## 📝 Changelog

### [v1.0.1] - 13 februarie 2026
- ✅ **Fix**: Adăugare pauze în `admin.sh` pentru vizualizare output
- ✅ Utilizatorul poate acum vedea erorile și mesajele înainte de revenirea la meniu
- ✅ Fiecare funcție din `admin.sh` așteaptă apăsarea Enter după execuție
- ✅ Îmbunătățire experiență utilizator în troubleshooting

### [v1.0.0] - 13 februarie 2026
- ✅ Release inițial
- ✅ Instalare automată completă
- ✅ Configurare profesională
- ✅ Suport operatori și HUB linking
- ✅ Documentație în limba română

---

## 📜 Licență

UnderChat IRCd este sub **GNU General Public License**.

Toate scripturile și documentația adăugate sunt sub aceeași licență.

---

## 🎉 Status

```
✅ Instalare automată
✅ Configurare profesională
✅ Managementul operatorilor
✅ HUB linking automat
✅ Suport aarch64
✅ Documentație completă
✅ Limba română
✅ Production ready
```

---

## 🚀 Gata?

```bash
# Clone
git clone https://gitlab.back.ro/underchat/ircu2.git
cd ircu2

# Install
./install.sh

# Admin
./admin.sh
```

**Succes!** 🎉

---

**Repository**: https://gitlab.back.ro/underchat/ircu2.git  
**Data**: 13 februarie 2026  
**Versiune**: v1.0.1  
**Status**: ✅ Production Ready

