From e35ebc37af18c5057ddbc9ce3c1fb7b5a19c2925 Mon Sep 17 00:00:00 2001 From: mihaiitdata Date: Fri, 13 Feb 2026 11:24:50 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20Ad=C4=83ugare=20pauze=20=C3=AEn=20admin.?= =?UTF-8?q?sh=20pentru=20vizualizare=20output=20=C8=99i=20erori?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AUTO_FIX_DEPENDENCIES.md | 234 +++++++++++++++++++++++++++++++++++++ QUICKSTART.md | 2 +- README.md | 6 +- admin.sh | 241 +++++++++++++++++++++++++++++++++++++-- configure-interactive.sh | 6 +- install.sh | 10 ++ 6 files changed, 483 insertions(+), 16 deletions(-) diff --git a/AUTO_FIX_DEPENDENCIES.md b/AUTO_FIX_DEPENDENCIES.md index e69de29..44cb7d3 100644 --- a/AUTO_FIX_DEPENDENCIES.md +++ b/AUTO_FIX_DEPENDENCIES.md @@ -0,0 +1,234 @@ +# ⚡ AUTO-FIX: install.sh Acum Instalează Automat Dependențe + +> **Feature**: Auto-detection și fix automat al dependențelor +> **Data**: 13 februarie 2026 +> **Status**: ✅ IMPLEMENTAT + +--- + +## 🎯 Noua Comportare + +Cand rulezi `./install.sh` și lipsesc dependențe obligatorii, script-ul: + +1. **Detectează ce lipsește** (gcc, make, etc.) +2. **Oferă 3 opțiuni:** + - ✅ Instalare automată cu `install-deps.sh` (Recomandată) + - ⚠️ Continuă pe propria răspundere + - ❌ Anulare +3. **Dacă alegi opțiunea 1:** + - Rulează `install-deps.sh` automat + - Instaleaza dependențele + - Revenine și verifică din nou + - Continuă instalarea + +--- + +## 📋 Flux Nou + +### Înainte (Manual) +```bash +./install.sh +[EROARE] GCC/CC nu este instalat! +[EROARE] Lipsesc dependențe! Instalează-le și încearcă din nou. +# Tu trebuia să rulezi manual install-deps.sh +``` + +### Acum (Automat) +```bash +./install.sh + +# Detectează lipsuri +[INFO] Verificare dependențe... +[EROARE] GCC/CC nu este instalat! +[EROARE] Make nu este instalat! + +═══════════════════════════════════════ +LIPSESC DEPENDENȚE OBLIGATORII! +═══════════════════════════════════════ +Dependențe lipsă: + - build-essential (GCC/CC) + - make + +Opțiuni: + 1) Instalare automată cu install-deps.sh (recomandat) + 2) Instalare manuală (tu ești responsabil) + 3) Anulare + +Alege opțiune [1-3]: 1 + +# Rulează automat install-deps.sh +[INFO] Lansare install-deps.sh... +═══════════════════════════════════════ + Instalare Dependențe Nefarious IRCd +═══════════════════════════════════════ + +Distribuzione detectată: ubuntu +[INFO] Instalare pachete pe Ubuntu/Debian... +# ... instalează dependențele ... +[SUCCES] Toate dependențele obligatorii sunt instalate! + +# Revenire și verificare din nou +[SUCCES] Dependențe instalate cu succes! +[INFO] Relansare verificare dependențe... + +# Continuă cu compilarea +[INFO] Configurare Nefarious IRCd... +# ... rest instalare ... +``` + +--- + +## 🎯 Opțiuni Disponibile + +### Opțiunea 1: Instalare Automată (Recomandată) +``` +✅ Script-ul face totul +✅ Auto-detect OS +✅ Instaleaza autoconf, automake, libtool, gcc, make, ssl-dev +✅ Revine și continuă instalare +✅ Zero manual input după aceasta +``` + +### Opțiunea 2: Manual +``` +⚠️ Tu ești responsabil +⚠️ Script continua și sperează că vei instala dependențele +⚠️ Daca lipsesc, compilarea va eșua mai târziu +``` + +### Opțiunea 3: Anulare +``` +❌ Ieșire din script +❌ Tu instalezi manual dependențele +❌ Relansezi ./install.sh +``` + +--- + +## 📝 Exemplu Complet + +```bash +ircd@stream05-radio-com-ro:~$ cd ircu2 +ircd@stream05-radio-com-ro:~/ircu2$ git pull origin main +ircd@stream05-radio-com-ro:~/ircu2$ ./install.sh + +[INFO] Verificare dependențe... +[SUCCES] Compilator C găsit +[SUCCES] Make găsit +[SUCCES] Autoconf găsit +[SUCCES] OpenSSL găsit + +# Daca nu gaseste ceva: + +[ERROR] GCC/CC nu este instalat! +[ERROR] Make nu este instalat! + +═══════════════════════════════════════ +LIPSESC DEPENDENȚE OBLIGATORII! +═══════════════════════════════════════ +Dependențe lipsă: + - build-essential (GCC/CC) + - make + +Opțiuni: + 1) Instalare automată cu install-deps.sh (recomandat) + 2) Instalare manuală (tu ești responsabil) + 3) Anulare + +Alege opțiune [1-3]: 1 + +# ... install-deps.sh se execută ... +# ... dependențe se instalează ... +# ... script revine și continuă ... + +[SUCCES] Dependențe instalate cu succes! +[INFO] Relansare verificare dependențe... +[SUCCES] Compilator C găsit +[SUCCES] Make găsit + +[INFO] Configurare Nefarious IRCd... +# ... rest instalare ... + +GATA! Server pornit pe localhost:6667 +``` + +--- + +## ✨ Avantaje + +``` +✅ Zero manual input dacă alegi opțiunea 1 +✅ Auto-detect OS și dependențe +✅ Instalare completă fără interruption +✅ Script relansează de unde a rămas +✅ User-friendly (3 opțiuni simple) +✅ Siguranță (oferă control utilizatorului) +``` + +--- + +## 🔄 Flow Diagram + +``` +./install.sh + ↓ +Verificare dependențe + ↓ +Lipsesc dependențe? + ├─ NU → Continuă cu compilare + └─ DA → Oferă 3 opțiuni + ├─ Opțiunea 1 → Rulează install-deps.sh → Reverificare → Continuă + ├─ Opțiunea 2 → Continuă (pe propria răspundere) + └─ Opțiunea 3 → Anulare +``` + +--- + +## 📊 Fișiere Modificate + +**install.sh** - Funcția `check_dependencies()` expandată cu: +- ✅ Detectare mai detaliată a dependențelor +- ✅ Meniu de opțiuni (1-2-3) +- ✅ Lansare automată install-deps.sh +- ✅ Reverificare după instalare +- ✅ Relansare recursivă check_dependencies + +--- + +## 🚀 Utilizare + +```bash +# Pe server, pur și simplu: +cd ~/ircu2 +./install.sh + +# Alege opțiunea 1 dacă apare meniu +# Gata! Script-ul face totul automat +``` + +--- + +## ✅ Status + +``` +✓ Auto-detection dependențe +✓ Meniu opțiuni (1-2-3) +✓ Auto-run install-deps.sh +✓ Relansare recursivă +✓ Continuare automată +✓ Push pe repository +✓ Production ready +``` + +--- + +## 📝 Commit + +``` +c41a771 - Modifica check_dependencies pentru a rula automat install-deps.sh și a relansa +``` + +--- + +**Acum instalarea e cu adevărat automată!** 🚀 + diff --git a/QUICKSTART.md b/QUICKSTART.md index e4bb34a..aaf26bd 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -1,4 +1,4 @@ -# 🚀 Quick Start - Instalare Rapidă Nefarious IRCd +# 🚀 Quick Start - Instalare Rapidă UnderChat IRCd ## ⚡ Instalare în 3 Comenzi diff --git a/README.md b/README.md index 756fa96..f245dec 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# 🚀 Underchat IRCU2 - Nefarious IRCd +# 🚀 Underchat IRCU2 - UnderChat IRCd > **Repository**: https://gitlab.back.ro/underchat/ircu2.git > **Limbă**: Română 🇷🇴 @@ -9,7 +9,7 @@ ## 📖 Descriere -**Underchat IRCU2** este o distribuție profesională a **Nefarious IRCd** - un server IRC avansat bazat pe protocolul P10. Include scripturi de instalare automată, configurare interactivă, și administrare completă a serverului. +**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. --- @@ -353,7 +353,7 @@ nano ~/ircd/etc/ircd.conf ## 📜 Licență -Nefarious IRCd este sub **GNU General Public License**. +UnderChat IRCd este sub **GNU General Public License**. Toate scripturile și documentația adăugate sunt sub aceeași licență. diff --git a/admin.sh b/admin.sh index 1400d7f..19c0b94 100755 --- a/admin.sh +++ b/admin.sh @@ -20,6 +20,29 @@ LOG_FILE="${PREFIX}/log/ircd.log" # Meniu principal show_menu() { clear + + # Verifică dacă config există + if [ ! -f "$CONFIG_FILE" ]; then + echo -e "${ROSU}" + echo "╔════════════════════════════════════════╗" + echo "║ AVERTISMENT: Config nu găsit! ║" + echo "╚════════════════════════════════════════╝" + echo -e "${NC}" + echo "" + echo -e "${GALBEN}Fișierul de configurare nu există la:${NC}" + echo " $CONFIG_FILE" + echo "" + echo -e "${GALBEN}Opțiuni:${NC}" + echo " 1) Creare automat config standard" + echo " 2) Continue fără config (recomandă-se fix 1)" + echo "" + read -p "Alege [1-2]: " config_choice + + if [ "$config_choice" = "1" ]; then + create_default_config + fi + fi + echo -e "${ALBASTRU}" echo "╔════════════════════════════════════════╗" echo "║ Administrator UnderChat IRCd ║" @@ -41,18 +64,162 @@ show_menu() { echo -n -e "${GALBEN}Alege opțiune [1-9]:${NC} " } +# Funcție pentru creare config standard +create_default_config() { + echo -e "${ALBASTRU}[+] Creare config standard...${NC}" + + # Crează directoarele dacă nu există + mkdir -p "$(dirname "$CONFIG_FILE")" + mkdir -p "$PREFIX/log" + mkdir -p "$PREFIX/var" + + # Crează un config de bază + cat > "$CONFIG_FILE" << 'EOFCONFIG' +# UnderChat IRCd - Configurare Standard +# Generated automat - Please customize! + +General { + name = "irc.underchat.org"; + vhost = "127.0.0.1"; + description = "UnderChat IRCd Server"; + numeric = 1; + dns server = "8.8.8.8"; + dns server = "1.1.1.1"; +}; + +Admin { + Location = "UnderChat Network"; + Location = "Underchat Edition"; + Contact = "admin@underchat.org"; +}; + +Class { + name = "Server"; + pingfreq = 1 minutes 30 seconds; + connectfreq = 5 minutes; + maxlinks = 1; + sendq = 9000000; +}; + +Class { + name = "Local"; + pingfreq = 1 minutes 30 seconds; + sendq = 160000; + maxlinks = 100; + usermode = "+iw"; +}; + +Class { + name = "Other"; + pingfreq = 1 minutes 30 seconds; + sendq = 160000; + maxlinks = 2048; + usermode = "+ix"; +}; + +Class { + name = "Opers"; + pingfreq = 1 minutes 30 seconds; + sendq = 160000; + maxlinks = 20; + local = no; + freeform = yes; + show_invis = yes; + see_chan = yes; + usermode = "+W"; +}; + +Client { + host = "*@*"; + ip = "*@*"; + class = "Other"; + maxlinks = 6; +}; + +Jupe { + nick = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"; + nick = "ChanServ,NickServ"; +}; + +Port { + vhost = "127.0.0.1" 4400; + server = yes; + hidden = yes; +}; + +Port { + vhost = "127.0.0.1" 6667; + hidden = yes; +}; + +Port { + vhost = "127.0.0.1" 6697; + ssl = yes; + hidden = yes; +}; + +Operator { + name = "root"; + password = "$PLAIN$password"; + host = "*@*"; + class = "Opers"; + admin = yes; +}; + +features { + "NETWORK" = "underchat.org"; + "DOMAINNAME" = "underchat.org"; + "LOG" = "SYSTEM" "FILE" "EOFCONFIG_PREFIX/log/ircd.log"; + "LOG" = "SYSTEM" "LEVEL" "CRIT"; + "HUB" = "FALSE"; + "RELIABLE_CLOCK" = "FALSE"; + "WALLOPS_OPER_ONLY" = "TRUE"; + "HOST_HIDING" = "TRUE"; + "HIDDEN_HOST" = "users.underchat.org"; + "MAXCHANNELSPERUSER" = "60"; + "NICKLEN" = "12"; + "PINGFREQUENCY" = "120"; + "SETHOST" = "TRUE"; +}; +EOFCONFIG + + # Setează permisiuni + chmod 600 "$CONFIG_FILE" + + echo -e "${VERDE}[+] Config standard creat: $CONFIG_FILE${NC}" + echo -e "${GALBEN}[!] IMPORTANT: Editează config și schimbă parola operator!${NC}" + echo -e "${GALBEN} 1. Deschide config: nano $CONFIG_FILE${NC}" + echo -e "${GALBEN} 2. Schimbă parola: $PREFIX/bin/umkpasswd${NC}" +} + # Pornire server start_server() { echo -e "${VERDE}[+] Pornire server...${NC}" + # Verifica dacă config există + if [ ! -f "$CONFIG_FILE" ]; then + echo -e "${ROSU}[-] Config nu găsit!${NC}" + echo -e "${GALBEN}[!] Creează config cu admin.sh opțiune 5${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read + return 1 + fi + if ! [ -x "$IRCD_BIN" ]; then echo -e "${ROSU}[-] Executabil ircd nu găsit la: $IRCD_BIN${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 1 fi # Verifica dacă e deja pornit if pgrep -f "$IRCD_BIN" > /dev/null; then echo -e "${ROSU}[-] Server deja pornit!${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 1 fi @@ -63,10 +230,18 @@ start_server() { if pgrep -f "$IRCD_BIN" > /dev/null; then echo -e "${VERDE}[+] Server pornit cu succes (PID: $(pgrep -f "$IRCD_BIN"))${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 0 else echo -e "${ROSU}[-] Eșec la pornirea serverului!${NC}" + echo "" + echo -e "${GALBEN}Ultimele 10 rânduri din log:${NC}" tail -10 "$LOG_FILE" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 1 fi } @@ -79,6 +254,9 @@ stop_server() { if [ -z "$pid" ]; then echo -e "${ROSU}[-] Server nu este pornit!${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 1 fi @@ -88,12 +266,18 @@ stop_server() { if ! pgrep -f "$IRCD_BIN" > /dev/null; then echo -e "${VERDE}[+] Server oprit cu succes${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 0 else echo -e "${GALBEN}[*] Forțare oprire...${NC}" kill -9 "$pid" sleep 1 echo -e "${VERDE}[+] Server oprit forțat${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 0 fi } @@ -105,6 +289,8 @@ restart_server() { stop_server sleep 2 start_server + + # Pauza este gestionată deja de funcțiile stop_server și start_server } # Status server @@ -116,6 +302,9 @@ check_status() { if [ -z "$pid" ]; then echo -e "${ROSU}Status: OPRIT${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 1 fi @@ -137,6 +326,9 @@ check_status() { echo -e "${GALBEN}Ultimele intrări în log:${NC}" tail -5 "$LOG_FILE" | sed 's/^/ /' + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 0 } @@ -146,6 +338,9 @@ edit_config() { if [ ! -f "$CONFIG_FILE" ]; then echo -e "${ROSU}[-] Fișier configurare nu găsit: $CONFIG_FILE${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 1 fi @@ -167,6 +362,9 @@ edit_config() { echo " cp ${CONFIG_FILE}.bak.* $CONFIG_FILE" fi + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 0 } @@ -186,30 +384,38 @@ view_logs() { echo "" echo -e "${ALBASTRU}Ultimele 20 de rânduri:${NC}" tail -20 "$LOG_FILE" + echo "" + echo -n "Apasa Enter pentru a continua..." + read ;; 2) echo "" echo -e "${ALBASTRU}Urmărire live (apasa Ctrl+C pentru ieșire):${NC}" tail -f "$LOG_FILE" + echo "" + echo -n "Apasa Enter pentru a continua..." + read ;; 3) echo "" - read -p -e "${GALBEN}Cuvânt cheie de căutare:${NC} " search_term + read -p "$(echo -e ${GALBEN}Cuvânt cheie de căutare:${NC} )" search_term echo "" echo -e "${ALBASTRU}Rezultate:${NC}" grep -i "$search_term" "$LOG_FILE" | tail -20 + echo "" + echo -n "Apasa Enter pentru a continua..." + read ;; 4) return 0 ;; *) echo -e "${ROSU}Opțiune necunoscută!${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read ;; esac - - echo "" - echo -n "Apasa Enter pentru a continua..." - read } # Generare parola @@ -220,6 +426,9 @@ generate_password() { if [ ! -x "$UMKPASSWD_BIN" ]; then echo -e "${ROSU}[-] Utilitar umkpasswd nu găsit!${NC}" echo -e "${GALBEN}[*] Asigură-te că ai rulat install.sh${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 1 fi @@ -231,6 +440,9 @@ generate_password() { echo " nano $CONFIG_FILE" echo " # Cauta secțiunea Operator și înlocuiește password" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 0 } @@ -241,11 +453,17 @@ test_config() { if [ ! -f "$CONFIG_FILE" ]; then echo -e "${ROSU}[-] Fișier configurare nu găsit: $CONFIG_FILE${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 1 fi if [ ! -x "$IRCD_BIN" ]; then echo -e "${ROSU}[-] Executabil ircd nu găsit!${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 1 fi @@ -255,10 +473,16 @@ test_config() { if "$IRCD_BIN" -c -f "$CONFIG_FILE" 2>&1; then echo "" echo -e "${VERDE}[+] Configurare validă!${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 0 else echo "" echo -e "${ROSU}[-] Erori în configurare detectate!${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read return 1 fi } @@ -300,12 +524,11 @@ main() { ;; *) echo -e "${ROSU}Opțiune necunoscută!${NC}" + echo "" + echo -n "Apasa Enter pentru a continua..." + read ;; esac - - echo "" - echo -n "Apasa Enter pentru a continua..." - read done } diff --git a/configure-interactive.sh b/configure-interactive.sh index 51236d9..cdb7bdd 100755 --- a/configure-interactive.sh +++ b/configure-interactive.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Script de configurare interactivă avansată pentru Nefarious IRCd +# Script de configurare interactivă avansată pentru UnderChat IRCd # Limba: Română # @@ -280,7 +280,7 @@ generate_config_file() { cat > "$CONFIG_FILE" << EOFCONFIG # ============================================================================ -# Fișier de configurare Nefarious IRCd +# Fișier de configurare UnderChat IRCd # Generat automat la: $(date) # Script: configure-interactive.sh # Model: Professional IRC Server @@ -502,7 +502,7 @@ main() { echo -e "${MOVE}" echo "╔════════════════════════════════════════╗" - echo "║ Configurator Nefarious IRCd ║" + echo "║ Configurator UnderChat IRCd ║" echo "║ Limba: Română ║" echo "║ Versiune: 1.0 ║" echo "╚════════════════════════════════════════╝" diff --git a/install.sh b/install.sh index f605633..c2f1962 100755 --- a/install.sh +++ b/install.sh @@ -805,6 +805,16 @@ main() { exit 1 fi + # Verifica dacă fișierul de config a fost creat + if [ ! -f "$conf_file" ]; then + log_error "Fișierul de configurare nu a fost creat!" + exit 1 + fi + + # Setează permisiuni pe config + chmod 600 "$conf_file" + log_success "Permisiuni setate pe configurare: 600" + # Creare directoare log_info "Creare structură de directoare..." mkdir -p "$PREFIX/log"