# 🔐 Configurare Operatori și HUB Linking - Ghid Complet

> **Data**: 13 februarie 2026  
> **Limbă**: Română  
> **Feature**: Operator + HUB Linking Automată

---

## 🎯 Noile Funcționalități

Scriptul `install.sh` cere acum automat:

1. **Username operator** - Cere cum vrei să-i spui operatorului
2. **Parola operator** - Cere parola și o criptează automat
3. **Este HUB?** - Cere dacă serverul e HUB sau nu
4. **HUB Linking** - Dacă e HUB, cere date pentru conectare la HUB principal

---

## 📋 Flux Instalare Nou

```bash
./install.sh

# 1. Cereri Configurare Server (anterior)
Domeniu rețea [underchat.org]: 
Nume server [ns1.underchat.org]:
Etc...

# 2. ✨ NOUĂ: Cereri Configurare Operator
═══════════════════════════════════════
CONFIGURARE OPERATOR
═══════════════════════════════════════

Username operator [AdminRoot]: 
Parola operator: ••••••••••
Repetă parola: ••••••••••
[INFO] Generare hash parola...
[SUCCES] Parola operator criptată

# 3. ✨ NOUĂ: Cereri Configurare HUB
═══════════════════════════════════════
CONFIGURARE HUB
═══════════════════════════════════════

Este aceasta un server HUB? (y/n) [n]: y

[INFO] Configurare LINK la HUB principal

Nume HUB [hub.underchat.org]: 
IP/Host HUB [192.168.1.100]: 
Port HUB [4400]: 
Parola linking: •••••••••••

# Generator ircd.conf cu toți parametrii

GATA! Server ready!
```

---

## 🔐 Configurare Operatori

### Ce se întâmplă automat:

1. **Cere username operator** (ex: AdminRoot, root, operator)
2. **Cere parola** (2x, cu validare)
3. **Generează hash** $PLAIN$password
4. **Adaugă în ircd.conf** secțiune Operator completă

### Exemplu config generat:

```
Operator {
    # Nickname-ul operatorului
    name = "AdminRoot";
    
    # Password-ul (hash auto-generat)
    password = "$PLAIN$mypassword123";
    
    # Host-uri permise
    host = "*@*";
    
    # Clasă
    class = "Opers";
    
    # Permisiuni
    admin = yes;
    hide_oper = no;
    hide_channels = no;
};
```

### Validare Parola:

- ✅ Minim 4 caractere
- ✅ Repetă pentru confirmare
- ✅ Cript automat
- ✅ Format ready pentru ircd

---

## 🌐 Configurare HUB Linking

### Dacă răspunzi "y" la "Este aceasta un server HUB?":

Script-ul cere:

```
1. Nume HUB              (hub.underchat.org)
2. IP/Host HUB           (192.168.1.100)
3. Port HUB              (4400)
4. Parola linking        (secret_password)
```

### Exemplu config generat (dacă e HUB):

```
# ============================================================================
# SECȚIUNE: CONNECT - Legări cu alte servere
# ============================================================================

# Conectare la HUB principal
Connect {
    name = "hub.underchat.org";
    host = "192.168.1.100";
    password = "secret_password";
    port = 4400;
    class = "Server";
    autoconnect = yes;
    hub;
};
```

### Exemplu config generat (dacă NU e HUB):

```
# ============================================================================
# SECȚIUNE: CONNECT - Legări cu alte servere
# ============================================================================

# Server nu este HUB - fără connect
```

### Feature "HUB" și în features secțiune:

**Dacă e HUB:**
```
"HUB" = "TRUE";
```

**Dacă NU e HUB:**
```
"HUB" = "FALSE";
```

---

## 🚀 Flux Complet Instalare

```bash
# 1. Clone și update
cd ~/underchat-ircd
git pull origin main

# 2. Lansare install
./install.sh

# 3. Răspunde la toate întrebările (inclusiv operator + HUB)
# - Domeniu: underchat.org
# - Nume server: ns1.underchat.org
# - ...alte setări...
# - Username operator: AdminRoot
# - Parola: ••••••••••
# - E HUB? y
# - Nume HUB: hub.underchat.org
# - IP HUB: 192.168.1.100
# - Port HUB: 4400
# - Parola linking: secret123

# 4. Script-ul generează ircd.conf complet cu:
#    - Server config
#    - Admin info
#    - Operatori cu parola
#    - HUB Connect (dacă e HUB)
#    - Features (HUB=TRUE/FALSE)

# 5. Verifică și pornește
./admin.sh
# → 4) Verifica status
# → 1) Pornire server
```

---

## 📝 Exemplu: Server Leaf (NU e HUB)

```bash
./install.sh

# Output:
Domeniu rețea [underchat.org]: underchat.org
Nume server [ns1.underchat.org]: leaf.underchat.org
...
Username operator [AdminRoot]: MyOperator
Parola operator: mypass123
Repetă parola: mypass123
[SUCCES] Parola operator criptată

Este aceasta un server HUB? (y/n) [n]: n
# (Nu cere info HUB)
```

**ircd.conf generat:**
```
features {
    "HUB" = "FALSE";
    ...
};

# ============================================================================
# SECȚIUNE: CONNECT
# ============================================================================

# Server nu este HUB - fără connect
```

---

## 📝 Exemplu: Server HUB

```bash
./install.sh

# Output:
Domeniu rețea [underchat.org]: underchat.org
Nume server [ns1.underchat.org]: hub1.underchat.org
...
Username operator [AdminRoot]: HubAdmin
Parola operator: hubpass456
Repetă parola: hubpass456
[SUCCES] Parola operator criptată

Este aceasta un server HUB? (y/n) [n]: y

[INFO] Configurare LINK la HUB principal

Nume HUB [hub.underchat.org]: hub2.underchat.org
IP/Host HUB [192.168.1.100]: 10.0.0.100
Port HUB [4400]: 4400
Parola linking: linkpass789
```

**ircd.conf generat:**
```
Operator {
    name = "HubAdmin";
    password = "$PLAIN$hubpass456";
    ...
};

features {
    "HUB" = "TRUE";
    ...
};

Connect {
    name = "hub2.underchat.org";
    host = "10.0.0.100";
    password = "linkpass789";
    port = 4400;
    class = "Server";
    autoconnect = yes;
    hub;
};
```

---

## 🔍 Validare Parolă

### Ce verifică script-ul:

✅ Lungime minim 4 caractere  
✅ Potrivire pe confirm  
✅ Criptare automat  
✅ Format $PLAIN$password  

### Erori posibile:

```
[EROARE] Parola prea scurtă! Minim 4 caractere.
→ Încearcă din nou cu parola mai lungă

[EROARE] Parolele nu se potrivesc!
→ Re-introdu parolele, trebuie identice
```

---

## 🎛️ Parametri Operator Generați

În fișierul ircd.conf:

```
name          = "AdminRoot"        # Username operator
password      = "$PLAIN$parola"    # Hash parola
host          = "*@*"              # Orice host
class         = "Opers"            # Clasa de operatori
admin         = yes/no             # Administrator complet?
hide_oper     = yes/no             # Ascunde status oper
hide_channels = yes/no             # Ascunde canale
```

---

## 🎛️ Parametri HUB Generați

În fișierul ircd.conf:

```
Connect {
    name          = "hub.underchat.org"  # Nume HUB
    host          = "192.168.1.100"      # IP/Host HUB
    password      = "secret_password"    # Parola linking
    port          = 4400                 # Port HUB
    class         = "Server"             # Clasa server
    autoconnect   = yes                  # Conectare automată
    hub;                                 # Este HUB
};
```

---

## 🚀 Comenzi După Instalare

```bash
# Verifică operatori în config
grep -A 5 "^Operator" ~/ircd/etc/ircd.conf

# Verifică Connect block (HUB)
grep -A 8 "^Connect" ~/ircd/etc/ircd.conf

# Verifică feature HUB
grep "HUB" ~/ircd/etc/ircd.conf

# Pornire server
./admin.sh → 1) Pornire server

# Login operator
/OPER AdminRoot mypass123

# Verifică status operator
/STATS u
```

---

## 📊 Fișiere Actualizate

- ✅ **install.sh** - +23 linii, funcții noi, cereri interactive
- ✅ Nicio modificare alte fișiere
- ✅ Backward compatible cu versiunile vechi

---

## 🆘 Troubleshooting

### Q: "Parola prea scurtă"
A: Parola trebuie minim 4 caractere

### Q: "Parolele nu se potrivesc"
A: Introdu aceeași parola de 2 ori

### Q: "Script nu acceptă parola"
A: Asigură-te că ai introdus corect

### Q: "HUB nu se conectează"
A: Verifică:
- Nume HUB corect
- IP/Host corect
- Port corect (implicit 4400)
- Parola potrivită

### Q: "Operator nu funcționează"
A: Verifică:
- Username corect în config
- Parola potrivită
- Host matching (*@*)

---

## 📚 Documentație Suplimentară

- **CONFIGURARE_PROFESIONALA.md** - Descriere completă secțiuni
- **INSTALL_AUTO.md** - Ghid instalare detaliat
- **admin.sh** - Meniu administrare

---

## ✨ Status

✅ Cereri operatori implementate  
✅ Parole criptate automat  
✅ HUB linking configurat  
✅ Validare intrări completă  
✅ Documentație în limba română  
✅ Push pe Gitea  

---

**Data**: 13 februarie 2026  
**Feature**: Operator + HUB Linking  
**Status**: ✅ Production Ready

