Compare commits
2 Commits
903ad8e007
...
f8501ad5b9
| Author | SHA1 | Date |
|---|---|---|
|
|
f8501ad5b9 | |
|
|
785f816455 |
|
|
@ -409,50 +409,33 @@ Class {
|
||||||
|
|
||||||
**Eroarea exactă**: `Config parse error in file ircd.conf on line 126: syntax error`
|
**Eroarea exactă**: `Config parse error in file ircd.conf on line 126: syntax error`
|
||||||
|
|
||||||
|
**Soluție**: Reinstalează cu versiunea corectată:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# DIAGNOSTIC RAPID - script specializat pentru placeholder-uri
|
# Șterge instalarea veche
|
||||||
./fix-eofconfig-ports.sh ~/ircd
|
rm -rf ~/ircu2
|
||||||
|
|
||||||
# SAU din scriptul general
|
# Reinstalează cu versiunea v1.0.4 care include toate remedierile
|
||||||
./fix-config.sh ~/ircd
|
git clone https://gitlab.back.ro/underchat/ircu2.git
|
||||||
|
cd ircu2
|
||||||
# SAU verifică manual linia problemă:
|
./install.sh
|
||||||
grep -n "EOFCONFIG_CLIENT_PORTS" ~/ircd/etc/ircd.conf
|
|
||||||
grep -n "EOFCONFIG_CLIENT_PORTS" ~/ircd/lib/ircd.conf
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Cauza**: Placeholder-ul `EOFCONFIG_CLIENT_PORTS` nu a fost înlocuit cu blocurile Port reale
|
**Ce include versiunea v1.0.4**:
|
||||||
|
- ✅ Template-ul generat corect cu toate porturile
|
||||||
**Soluția automată aplicată:**
|
- ✅ Placeholder-urile EOFCONFIG înlocuite automat
|
||||||
```bash
|
- ✅ snomask corectat la "+s" (fără erori de sintaxă)
|
||||||
# EOFCONFIG_CLIENT_PORTS devine:
|
- ✅ IP-ul corect aplicat pe toate porturile
|
||||||
Port {
|
- ✅ Toate remedierile integrate DIRECT în install.sh
|
||||||
vhost = "127.0.0.1" 6660;
|
|
||||||
hidden = yes;
|
|
||||||
};
|
|
||||||
|
|
||||||
Port {
|
|
||||||
vhost = "127.0.0.1" 6661;
|
|
||||||
hidden = yes;
|
|
||||||
};
|
|
||||||
# ... până la 6669, 7000
|
|
||||||
|
|
||||||
# EOFCONFIG_SSL_PORTS devine:
|
|
||||||
Port {
|
|
||||||
vhost = "127.0.0.1" 6697;
|
|
||||||
ssl = yes;
|
|
||||||
hidden = yes;
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
**Verificare finală**:
|
**Verificare finală**:
|
||||||
```bash
|
```bash
|
||||||
# După aplicarea reparației:
|
# După reinstalare, testează sintaxa:
|
||||||
~/ircd/bin/ircd -c -f ~/ircd/etc/ircd.conf
|
~/ircd/bin/ircd -c -f ~/ircd/lib/ircd.conf
|
||||||
# Ar trebui să nu mai dea erori de sintaxă
|
# Ar trebui să afișeze: "Configuration file ircd.conf checked okay."
|
||||||
|
|
||||||
# Verifică că nu mai sunt placeholder-uri:
|
# Verifică că nu mai sunt placeholder-uri:
|
||||||
grep -i EOFCONFIG ~/ircd/etc/ircd.conf
|
grep -i EOFCONFIG ~/ircd/lib/ircd.conf
|
||||||
# Nu ar trebui să găsească nimic
|
# Nu ar trebui să găsească nimic
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,189 @@
|
||||||
|
# Instalare UnderChat IRCd - Madrid Server
|
||||||
|
## Versiune: v1.0.6-madrid
|
||||||
|
## Data: 2026-02-13
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 INSTALARE RAPIDĂ (3 COMENZI):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Șterge instalarea veche (dacă există)
|
||||||
|
rm -rf ~/ircu2 ~/ircd
|
||||||
|
|
||||||
|
# 2. Clonează repository-ul
|
||||||
|
git clone https://gitlab.back.ro/underchat/ircu2.git && cd ircu2
|
||||||
|
|
||||||
|
# 3. Rulează scriptul pre-configurat Madrid
|
||||||
|
./install-madrid.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
**GATA! Instalarea este completă!**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ CONFIGURAȚIE PRE-SETATĂ:
|
||||||
|
|
||||||
|
| Setare | Valoare |
|
||||||
|
|--------|---------|
|
||||||
|
| **Rețea** | UnderChat.org |
|
||||||
|
| **Server** | Madrid.ES.EU.UnderChat.org |
|
||||||
|
| **IP IRC** | 10.0.0.125 |
|
||||||
|
| **Port Client** | 6667 |
|
||||||
|
| **Port Server** | 4400 |
|
||||||
|
| **Username OPER** | Raducu |
|
||||||
|
| **Parola OPER** | muiesteaua |
|
||||||
|
| **Locație** | Madrid, Spain |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎮 PORNIRE SERVER:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Pornește serverul
|
||||||
|
~/ircd/bin/ircd
|
||||||
|
|
||||||
|
# Verifică că rulează
|
||||||
|
ps aux | grep ircd
|
||||||
|
|
||||||
|
# Verifică log-urile
|
||||||
|
tail -f ~/ircd/log/ircd.log
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 COMENZI UTILE:
|
||||||
|
|
||||||
|
### Test sintaxă configurație:
|
||||||
|
```bash
|
||||||
|
~/ircd/bin/ircd -c -f ~/ircd/lib/ircd.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
### Editare configurație:
|
||||||
|
```bash
|
||||||
|
nano ~/ircd/lib/ircd.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
### Restart server:
|
||||||
|
```bash
|
||||||
|
# Oprește
|
||||||
|
killall ircd
|
||||||
|
|
||||||
|
# Pornește
|
||||||
|
~/ircd/bin/ircd
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 👤 LOGARE CA OPERATOR:
|
||||||
|
|
||||||
|
După ce te conectezi la server cu client IRC:
|
||||||
|
|
||||||
|
```
|
||||||
|
/connect Madrid.ES.EU.UnderChat.org 6667
|
||||||
|
/oper Raducu muiesteaua
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 VERIFICĂRI:
|
||||||
|
|
||||||
|
### Verifică că server-ul ascultă pe portul corect:
|
||||||
|
```bash
|
||||||
|
netstat -tlnp | grep 6667
|
||||||
|
# Ar trebui să vezi: 10.0.0.125:6667
|
||||||
|
```
|
||||||
|
|
||||||
|
### Verifică configurația:
|
||||||
|
```bash
|
||||||
|
grep -E "(name =|vhost =|CPATH)" ~/ircd/lib/ircd.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
### Verifică că NU sunt erori:
|
||||||
|
```bash
|
||||||
|
~/ircd/bin/ircd -c -f ~/ircd/lib/ircd.conf
|
||||||
|
# Ar trebui să afișeze: "Configuration file ircd.conf checked okay."
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✨ CE INCLUDE VERSIUNEA v1.0.6-madrid:
|
||||||
|
|
||||||
|
✅ **Configurație completă pre-setată** - nu mai trebuie să introduci nimic manual
|
||||||
|
✅ **snomask = "+s"** - format CORECT, fără erori de sintaxă
|
||||||
|
✅ **CPATH absolut** - `/home/ircd/ircd/lib/ircd.conf` hardcodat
|
||||||
|
✅ **IP corect** - 10.0.0.125 pe toate porturile
|
||||||
|
✅ **Host hiding** - format hexadecimal activat
|
||||||
|
✅ **WHOIS notificări** - pentru operatori activate
|
||||||
|
✅ **Test sintaxă automat** - verificare înainte de finalizare
|
||||||
|
✅ **ZERO placeholder-uri** - toate valorile reale, nu EOFCONFIG_*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🐛 DACĂ APARE VREO PROBLEMĂ:
|
||||||
|
|
||||||
|
### Eroare: "Failed to read configuration file"
|
||||||
|
```bash
|
||||||
|
# Verifică permisiuni:
|
||||||
|
ls -la ~/ircd/lib/ircd.conf
|
||||||
|
chmod 600 ~/ircd/lib/ircd.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
### Eroare: "Config parse error on line X"
|
||||||
|
```bash
|
||||||
|
# Verifică linia exactă:
|
||||||
|
sed -n 'Xp' ~/ircd/lib/ircd.conf # înlocuiește X cu numărul liniei
|
||||||
|
|
||||||
|
# Reinstalează:
|
||||||
|
rm -rf ~/ircu2 ~/ircd
|
||||||
|
git clone https://gitlab.back.ro/underchat/ircu2.git && cd ircu2
|
||||||
|
./install-madrid.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Server nu pornește:
|
||||||
|
```bash
|
||||||
|
# Verifică ce procese rulează:
|
||||||
|
ps aux | grep ircd
|
||||||
|
|
||||||
|
# Verifică ce porturu sunt în uz:
|
||||||
|
netstat -tlnp | grep -E "(6667|4400)"
|
||||||
|
|
||||||
|
# Verifică log-urile:
|
||||||
|
tail -50 ~/ircd/log/ircd.log
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📞 SUPORT:
|
||||||
|
|
||||||
|
Dacă întâmpini probleme, rulează:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Diagnostic complet:
|
||||||
|
echo "=== CONFIG ==="
|
||||||
|
~/ircd/bin/ircd -c -f ~/ircd/lib/ircd.conf
|
||||||
|
echo ""
|
||||||
|
echo "=== PROCESE ==="
|
||||||
|
ps aux | grep ircd
|
||||||
|
echo ""
|
||||||
|
echo "=== PORTURI ==="
|
||||||
|
netstat -tlnp | grep -E "(6667|4400)"
|
||||||
|
echo ""
|
||||||
|
echo "=== LOG ==="
|
||||||
|
tail -20 ~/ircd/log/ircd.log
|
||||||
|
```
|
||||||
|
|
||||||
|
Trimite output-ul pentru diagnostic!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎉 SUCCESS!
|
||||||
|
|
||||||
|
Dacă ai ajuns aici și server-ul rulează, **FELICITĂRI!**
|
||||||
|
|
||||||
|
Conectează-te cu client IRC la:
|
||||||
|
- **Server**: Madrid.ES.EU.UnderChat.org (sau 10.0.0.125)
|
||||||
|
- **Port**: 6667
|
||||||
|
- **Operator**: /oper Raducu muiesteaua
|
||||||
|
|
||||||
|
**Distracție plăcută pe UnderChat Network!** 🚀
|
||||||
|
|
||||||
|
|
@ -23,110 +23,215 @@ clear
|
||||||
echo -e "${ALBASTRU}"
|
echo -e "${ALBASTRU}"
|
||||||
cat << "EOF"
|
cat << "EOF"
|
||||||
╔════════════════════════════════════════════════════╗
|
╔════════════════════════════════════════════════════╗
|
||||||
║ UnderChat IRCd - Madrid Server ║
|
║ UnderChat IRCd - Serverul Madrid ║
|
||||||
║ Fix & Install Script v1.0.6-madrid-final ║
|
║ Script de Instalare v1.1.0-madrid-stabil ║
|
||||||
║ Rezolvă TOATE problemele automat! ║
|
║ Gestionare inteligentă a instalării ║
|
||||||
╚════════════════════════════════════════════════════╝
|
╚════════════════════════════════════════════════════╝
|
||||||
EOF
|
EOF
|
||||||
echo -e "${NC}"
|
echo -e "${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# ===================================================================
|
# ===================================================================
|
||||||
# PARTEA 1: DIAGNOSTIC ȘI CURĂȚARE
|
# PARTEA 1: DIAGNOSTIC ȘI PREGĂTIRE
|
||||||
# ===================================================================
|
# ===================================================================
|
||||||
|
|
||||||
log_info "PARTEA 1/3: Diagnostic și curățare..."
|
log_info "PARTEA 1/3: Diagnostic și pregătire sistem..."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Oprește procese vechi
|
# Oprește procese IRCd active
|
||||||
log_info "Oprire procese IRCd vechi..."
|
log_info "Oprire procese IRCd active..."
|
||||||
pkill -9 ircd 2>/dev/null || true
|
if pgrep -x ircd > /dev/null; then
|
||||||
sleep 1
|
log_warn "Găsit proces IRCd activ, oprire..."
|
||||||
log_success "Procese IRCd oprite"
|
pkill -15 ircd 2>/dev/null || true
|
||||||
|
sleep 2
|
||||||
|
# Dacă încă rulează, forțează oprirea
|
||||||
|
if pgrep -x ircd > /dev/null; then
|
||||||
|
log_warn "Forțare oprire proces..."
|
||||||
|
pkill -9 ircd 2>/dev/null || true
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
log_success "Procese IRCd oprite"
|
||||||
|
else
|
||||||
|
log_info "Niciun proces IRCd activ"
|
||||||
|
fi
|
||||||
|
|
||||||
# Șterge instalări vechi
|
# Verifică dependențe necesare
|
||||||
log_info "Ștergere instalări vechi..."
|
log_info "Verificare dependențe de compilare..."
|
||||||
rm -rf ~/ircu2 ~/ircd
|
DEPENDENTE_LIPSA=()
|
||||||
log_success "Instalări vechi șterse"
|
|
||||||
|
|
||||||
# Verifică dependențe
|
|
||||||
log_info "Verificare dependențe..."
|
|
||||||
if ! command -v gcc &> /dev/null; then
|
if ! command -v gcc &> /dev/null; then
|
||||||
log_error "GCC nu este instalat! Instalează cu: sudo apt-get install build-essential"
|
DEPENDENTE_LIPSA+=("gcc")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v make &> /dev/null; then
|
||||||
|
DEPENDENTE_LIPSA+=("make")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v git &> /dev/null; then
|
||||||
|
DEPENDENTE_LIPSA+=("git")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${#DEPENDENTE_LIPSA[@]} -gt 0 ]; then
|
||||||
|
log_error "Dependențe lipsă: ${DEPENDENTE_LIPSA[*]}"
|
||||||
|
log_error "Instalează cu: sudo apt-get install build-essential git"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
log_success "Dependențe OK"
|
|
||||||
|
log_success "Toate dependențele sunt instalate"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_success "✓ PARTEA 1 COMPLETĂ: Sistem curățat și pregătit"
|
log_success "✓ PARTEA 1 COMPLETĂ: Sistem pregătit pentru instalare"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# ===================================================================
|
# ===================================================================
|
||||||
# PARTEA 2: CLONARE ȘI COMPILARE
|
# PARTEA 2: OBȚINERE SURSĂ ȘI COMPILARE
|
||||||
# ===================================================================
|
# ===================================================================
|
||||||
|
|
||||||
log_info "PARTEA 2/3: Clonare și compilare..."
|
log_info "PARTEA 2/3: Obținere cod sursă și compilare..."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Clonează repository
|
# Determină directorul de lucru
|
||||||
log_info "Clonare repository UnderChat IRCd..."
|
DIR_SURSA="$HOME/ircu2"
|
||||||
cd ~
|
|
||||||
if ! git clone https://gitlab.back.ro/underchat/ircu2.git; then
|
|
||||||
log_error "Eșec la clonarea repository-ului!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
cd ~/ircu2
|
|
||||||
log_success "Repository clonat"
|
|
||||||
|
|
||||||
# Fix pentru aarch64 (ARM64)
|
# Verifică dacă repository-ul există deja
|
||||||
log_info "Verificare arhitectură..."
|
if [ -d "$DIR_SURSA/.git" ]; then
|
||||||
if [ "$(uname -m)" = "aarch64" ]; then
|
log_info "Repository existent găsit în $DIR_SURSA"
|
||||||
log_warn "Detectat aarch64 - actualizare config.guess..."
|
cd "$DIR_SURSA"
|
||||||
|
|
||||||
# Descarcă config.guess actualizat
|
# Verifică dacă sunt modificări locale
|
||||||
if command -v wget &>/dev/null; then
|
if ! git diff-index --quiet HEAD -- 2>/dev/null; then
|
||||||
wget -q -O config.guess 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
|
log_warn "Există modificări locale nesalvate"
|
||||||
wget -q -O config.sub 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
|
log_info "Păstrarea modificărilor locale și actualizare..."
|
||||||
chmod +x config.guess config.sub
|
git stash push -m "Salvare automată înainte de actualizare - $(date '+%Y-%m-%d %H:%M:%S')" || true
|
||||||
log_success "config.guess actualizat pentru aarch64"
|
fi
|
||||||
|
|
||||||
|
# Actualizează repository-ul
|
||||||
|
log_info "Actualizare repository din GitLab..."
|
||||||
|
if git pull origin master 2>/dev/null || git pull origin main 2>/dev/null; then
|
||||||
|
log_success "Repository actualizat"
|
||||||
|
|
||||||
|
# Restaurează modificările locale dacă au fost salvate
|
||||||
|
if git stash list | grep -q "Salvare automată"; then
|
||||||
|
log_info "Restaurare modificări locale..."
|
||||||
|
git stash pop || log_warn "Nu s-au putut restaura toate modificările"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
log_warn "wget nu este disponibil - folosesc --build flag"
|
log_warn "Nu s-a putut actualiza repository-ul, continuăm cu versiunea existentă"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log_info "Clonare repository UnderChat IRCd..."
|
||||||
|
cd ~
|
||||||
|
|
||||||
|
if [ -d "$DIR_SURSA" ]; then
|
||||||
|
log_warn "Director $DIR_SURSA există dar nu e repository git, ștergere..."
|
||||||
|
rm -rf "$DIR_SURSA"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! git clone https://gitlab.back.ro/underchat/ircu2.git; then
|
||||||
|
log_error "Eșec la clonarea repository-ului!"
|
||||||
|
log_error "Verifică conexiunea la internet și accesul la GitLab"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cd "$DIR_SURSA"
|
||||||
|
log_success "Repository clonat cu succes"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Gestionare arhitectură sistem
|
||||||
|
log_info "Detectare arhitectură sistem: $(uname -m)"
|
||||||
|
ARHITECTURA=$(uname -m)
|
||||||
|
|
||||||
|
if [ "$ARHITECTURA" = "aarch64" ] || [ "$ARHITECTURA" = "arm64" ]; then
|
||||||
|
log_warn "Arhitectură ARM64 detectată - actualizare fișiere config necesară"
|
||||||
|
|
||||||
|
# Verifică dacă config.guess poate recunoaște arhitectura
|
||||||
|
if ! ./config.guess &>/dev/null; then
|
||||||
|
log_info "Descărcare fișiere config actualizate pentru ARM64..."
|
||||||
|
|
||||||
|
if command -v wget &>/dev/null; then
|
||||||
|
wget -q -O config.guess.new 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD' && \
|
||||||
|
wget -q -O config.sub.new 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
|
||||||
|
|
||||||
|
if [ -f config.guess.new ] && [ -s config.guess.new ]; then
|
||||||
|
mv config.guess.new config.guess
|
||||||
|
mv config.sub.new config.sub
|
||||||
|
chmod +x config.guess config.sub
|
||||||
|
log_success "Fișiere config actualizate pentru ARM64"
|
||||||
|
fi
|
||||||
|
elif command -v curl &>/dev/null; then
|
||||||
|
curl -sL -o config.guess.new 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD' && \
|
||||||
|
curl -sL -o config.sub.new 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
|
||||||
|
|
||||||
|
if [ -f config.guess.new ] && [ -s config.guess.new ]; then
|
||||||
|
mv config.guess.new config.guess
|
||||||
|
mv config.sub.new config.sub
|
||||||
|
chmod +x config.guess config.sub
|
||||||
|
log_success "Fișiere config actualizate pentru ARM64"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log_warn "wget/curl indisponibile - folosesc flag --build explicit"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Configurare
|
# Pregătire pentru compilare
|
||||||
log_info "Configurare pentru compilare..."
|
log_info "Configurare parametri compilare..."
|
||||||
CONFIGURE_FLAGS="--prefix=$HOME/ircd --with-maxcon=4096"
|
PREFIX="$HOME/ircd"
|
||||||
|
CONFIGURE_FLAGS="--prefix=$PREFIX --with-maxcon=4096"
|
||||||
|
|
||||||
# Adaugă --build pentru aarch64
|
# Adaugă parametri specifici pentru ARM64
|
||||||
if [ "$(uname -m)" = "aarch64" ]; then
|
if [ "$ARHITECTURA" = "aarch64" ] || [ "$ARHITECTURA" = "arm64" ]; then
|
||||||
CONFIGURE_FLAGS="$CONFIGURE_FLAGS --build=aarch64-unknown-linux-gnu"
|
CONFIGURE_FLAGS="$CONFIGURE_FLAGS --build=aarch64-unknown-linux-gnu"
|
||||||
log_info "Folosesc: ./configure $CONFIGURE_FLAGS"
|
log_info "Parametri ARM64: $CONFIGURE_FLAGS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! ./configure $CONFIGURE_FLAGS; then
|
# Rulează configure
|
||||||
|
log_info "Configurare pentru compilare (./configure)..."
|
||||||
|
if ! ./configure $CONFIGURE_FLAGS 2>&1 | tee configure.log; then
|
||||||
log_error "Eșec la configurare!"
|
log_error "Eșec la configurare!"
|
||||||
|
log_error "Ultimele linii din log:"
|
||||||
|
tail -n 20 configure.log
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
log_success "Configurare completă"
|
log_success "Configurare completă"
|
||||||
|
|
||||||
# Compilare
|
# Curățare compilări anterioare
|
||||||
log_info "Compilare (poate dura câteva minute)..."
|
log_info "Curățare fișiere compilate anterior..."
|
||||||
make clean &>/dev/null || true
|
make clean &>/dev/null || true
|
||||||
if ! make -j$(nproc); then
|
|
||||||
|
# Compilare
|
||||||
|
log_info "Compilare cod sursă (make)..."
|
||||||
|
log_info "Acest pas poate dura câteva minute..."
|
||||||
|
NUMAR_PROCESOARE=$(nproc 2>/dev/null || echo "2")
|
||||||
|
|
||||||
|
if ! make -j"$NUMAR_PROCESOARE" 2>&1 | tee make.log; then
|
||||||
log_error "Eșec la compilare!"
|
log_error "Eșec la compilare!"
|
||||||
|
log_error "Ultimele linii din log:"
|
||||||
|
tail -n 30 make.log
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
log_success "Compilare completă"
|
log_success "Compilare completă"
|
||||||
|
|
||||||
# Instalare binare
|
# Instalare binare
|
||||||
log_info "Instalare binare..."
|
log_info "Instalare binare în $PREFIX..."
|
||||||
if ! make install; then
|
if ! make install 2>&1 | tee install.log; then
|
||||||
log_error "Eșec la instalare!"
|
log_error "Eșec la instalare!"
|
||||||
|
log_error "Verifică permisiunile pentru $PREFIX"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
log_success "Binare instalate"
|
log_success "Binare instalate"
|
||||||
|
|
||||||
|
# Verifică că binarul a fost instalat corect
|
||||||
|
if [ ! -f "$PREFIX/bin/ircd" ]; then
|
||||||
|
log_error "Binarul ircd nu a fost găsit în $PREFIX/bin/ircd!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -x "$PREFIX/bin/ircd" ]; then
|
||||||
|
log_error "Binarul ircd nu are permisiuni de execuție!"
|
||||||
|
chmod +x "$PREFIX/bin/ircd"
|
||||||
|
log_success "Permisiuni de execuție setate"
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_success "✓ PARTEA 2 COMPLETĂ: Compilare și instalare reușită"
|
log_success "✓ PARTEA 2 COMPLETĂ: Compilare și instalare reușită"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
@ -142,8 +247,10 @@ PREFIX="$HOME/ircd"
|
||||||
NETWORK_NAME="UnderChat.org"
|
NETWORK_NAME="UnderChat.org"
|
||||||
SERVER_NAME="Madrid.ES.EU.UnderChat.org"
|
SERVER_NAME="Madrid.ES.EU.UnderChat.org"
|
||||||
VHOST_IPV4="10.0.0.125"
|
VHOST_IPV4="10.0.0.125"
|
||||||
|
OPERATOR_NAME="Raducu"
|
||||||
|
OPERATOR_PASS="muiesteaua"
|
||||||
|
|
||||||
# Creare directoare
|
# Creare structură directoare
|
||||||
log_info "Creare structură directoare..."
|
log_info "Creare structură directoare..."
|
||||||
mkdir -p "$PREFIX/lib"
|
mkdir -p "$PREFIX/lib"
|
||||||
mkdir -p "$PREFIX/etc"
|
mkdir -p "$PREFIX/etc"
|
||||||
|
|
@ -151,91 +258,196 @@ mkdir -p "$PREFIX/log"
|
||||||
mkdir -p "$PREFIX/var"
|
mkdir -p "$PREFIX/var"
|
||||||
log_success "Directoare create"
|
log_success "Directoare create"
|
||||||
|
|
||||||
# Generare configurație Madrid - FOLOSIND example.conf ca bază
|
# Găsește fișierul example.conf
|
||||||
log_info "Generare configurație Madrid din example.conf..."
|
EXAMPLE_CONF=""
|
||||||
|
if [ -f "$DIR_SURSA/doc/example.conf" ]; then
|
||||||
|
EXAMPLE_CONF="$DIR_SURSA/doc/example.conf"
|
||||||
|
elif [ -f "$HOME/ircu2/doc/example.conf" ]; then
|
||||||
|
EXAMPLE_CONF="$HOME/ircu2/doc/example.conf"
|
||||||
|
elif [ -f "doc/example.conf" ]; then
|
||||||
|
EXAMPLE_CONF="doc/example.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
# Copiază example.conf ca bază
|
if [ -z "$EXAMPLE_CONF" ] || [ ! -f "$EXAMPLE_CONF" ]; then
|
||||||
if [ -f "doc/example.conf" ]; then
|
log_error "Nu s-a găsit fișierul example.conf!"
|
||||||
cp doc/example.conf "$PREFIX/lib/ircd.conf"
|
log_error "Căutat în: $DIR_SURSA/doc/example.conf"
|
||||||
log_success "Folosesc example.conf ca bază"
|
|
||||||
else
|
|
||||||
log_error "example.conf nu găsit!"
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Modifică valorile pentru Madrid
|
log_info "Folosesc șablon: $EXAMPLE_CONF"
|
||||||
log_info "Personalizare pentru Madrid..."
|
|
||||||
|
|
||||||
# Înlocuiește valorile cu cele pentru Madrid
|
# Verifică dacă configurația există deja
|
||||||
sed -i 's/name = "[^"]*";/name = "Madrid.ES.EU.UnderChat.org";/' "$PREFIX/lib/ircd.conf"
|
FISIER_CONFIG="$PREFIX/lib/ircd.conf"
|
||||||
sed -i 's/vhost = "[^"]*";/vhost = "10.0.0.125";/g' "$PREFIX/lib/ircd.conf"
|
if [ -f "$FISIER_CONFIG" ]; then
|
||||||
sed -i 's/description = "[^"]*";/description = "The UnderChat.org Network - Madrid Node";/' "$PREFIX/lib/ircd.conf"
|
log_warn "Configurație existentă găsită în $FISIER_CONFIG"
|
||||||
sed -i 's/"NETWORK" = "[^"]*"/"NETWORK" = "UnderChat.org"/g' "$PREFIX/lib/ircd.conf"
|
BACKUP_CONFIG="$FISIER_CONFIG.backup-$(date +%Y%m%d-%H%M%S)"
|
||||||
sed -i 's/"DOMAINNAME" = "[^"]*"/"DOMAINNAME" = "UnderChat.org"/g' "$PREFIX/lib/ircd.conf"
|
cp "$FISIER_CONFIG" "$BACKUP_CONFIG"
|
||||||
|
log_info "Backup creat: $BACKUP_CONFIG"
|
||||||
|
fi
|
||||||
|
|
||||||
# Înlocuiește căile
|
# Copiază example.conf ca punct de plecare
|
||||||
sed -i "s|/path/to|$PREFIX|g" "$PREFIX/lib/ircd.conf"
|
log_info "Generare configurație Madrid..."
|
||||||
sed -i "s|\"MPATH\" = \"[^\"]*\"|\"MPATH\" = \"$PREFIX/lib/ircd.motd\"|g" "$PREFIX/lib/ircd.conf"
|
cp "$EXAMPLE_CONF" "$FISIER_CONFIG"
|
||||||
sed -i "s|\"CPATH\" = \"[^\"]*\"|\"CPATH\" = \"$PREFIX/lib/ircd.conf\"|g" "$PREFIX/lib/ircd.conf"
|
|
||||||
sed -i "s|\"PPATH\" = \"[^\"]*\"|\"PPATH\" = \"$PREFIX/var/ircd.pid\"|g" "$PREFIX/lib/ircd.conf"
|
|
||||||
sed -i "s|\"LOG\" = \"SYSTEM\" \"FILE\" \"[^\"]*\"|\"LOG\" = \"SYSTEM\" \"FILE\" \"$PREFIX/log/ircd.log\"|g" "$PREFIX/lib/ircd.conf"
|
|
||||||
|
|
||||||
# Adaugă operator Raducu
|
# Funcție pentru înlocuire sigură în configurație
|
||||||
sed -i '/^Operator {/,/^};/c\
|
inlocuieste_in_config() {
|
||||||
Operator {\
|
local PATTERN="$1"
|
||||||
name = "Raducu";\
|
local REPLACE="$2"
|
||||||
password = "$PLAIN$muiesteaua";\
|
local DESCRIERE="$3"
|
||||||
host = "*@*";\
|
|
||||||
class = "Opers";\
|
if sed -i.tmp "$PATTERN" "$FISIER_CONFIG" 2>/dev/null; then
|
||||||
admin = yes;\
|
rm -f "$FISIER_CONFIG.tmp"
|
||||||
hide_oper = no;\
|
log_info " ✓ $DESCRIERE"
|
||||||
hide_channels = no;\
|
return 0
|
||||||
snomask = "+s";\
|
else
|
||||||
privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";\
|
log_warn " ⚠ Nu s-a putut actualiza: $DESCRIERE"
|
||||||
};' "$PREFIX/lib/ircd.conf"
|
rm -f "$FISIER_CONFIG.tmp"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
log_info "Personalizare configurație pentru Madrid..."
|
||||||
|
|
||||||
|
# Actualizare nume server
|
||||||
|
inlocuieste_in_config \
|
||||||
|
's/^[[:space:]]*name[[:space:]]*=[[:space:]]*"[^"]*";/ name = "'"$SERVER_NAME"'";/' \
|
||||||
|
"Nume server: $SERVER_NAME"
|
||||||
|
|
||||||
|
# Actualizare vhost
|
||||||
|
inlocuieste_in_config \
|
||||||
|
's/^[[:space:]]*vhost[[:space:]]*=[[:space:]]*"[^"]*";/ vhost = "'"$VHOST_IPV4"'";/g' \
|
||||||
|
"VHost IPv4: $VHOST_IPV4"
|
||||||
|
|
||||||
|
# Actualizare descriere
|
||||||
|
inlocuieste_in_config \
|
||||||
|
's/^[[:space:]]*description[[:space:]]*=[[:space:]]*"[^"]*";/ description = "The UnderChat.org Network - Madrid Node";/' \
|
||||||
|
"Descriere server"
|
||||||
|
|
||||||
|
# Actualizare feature NETWORK
|
||||||
|
inlocuieste_in_config \
|
||||||
|
's/"NETWORK"[[:space:]]*=[[:space:]]*"[^"]*"/"NETWORK" = "'"$NETWORK_NAME"'"/' \
|
||||||
|
"Feature NETWORK"
|
||||||
|
|
||||||
|
# Actualizare feature DOMAINNAME
|
||||||
|
inlocuieste_in_config \
|
||||||
|
's/"DOMAINNAME"[[:space:]]*=[[:space:]]*"[^"]*"/"DOMAINNAME" = "'"$NETWORK_NAME"'"/' \
|
||||||
|
"Feature DOMAINNAME"
|
||||||
|
|
||||||
|
# Actualizare căi fișiere
|
||||||
|
inlocuieste_in_config \
|
||||||
|
's|/path/to|'"$PREFIX"'|g' \
|
||||||
|
"Căi generale"
|
||||||
|
|
||||||
|
inlocuieste_in_config \
|
||||||
|
's|"MPATH"[[:space:]]*=[[:space:]]*"[^"]*"|"MPATH" = "'"$PREFIX"'/lib/ircd.motd"|' \
|
||||||
|
"Cale MOTD"
|
||||||
|
|
||||||
|
inlocuieste_in_config \
|
||||||
|
's|"CPATH"[[:space:]]*=[[:space:]]*"[^"]*"|"CPATH" = "'"$PREFIX"'/lib/ircd.conf"|' \
|
||||||
|
"Cale configurație"
|
||||||
|
|
||||||
|
inlocuieste_in_config \
|
||||||
|
's|"PPATH"[[:space:]]*=[[:space:]]*"[^"]*"|"PPATH" = "'"$PREFIX"'/var/ircd.pid"|' \
|
||||||
|
"Cale PID"
|
||||||
|
|
||||||
|
# Actualizare cale log - mai complexă
|
||||||
|
if grep -q '"LOG"' "$FISIER_CONFIG"; then
|
||||||
|
inlocuieste_in_config \
|
||||||
|
's|"LOG"[[:space:]]*=[[:space:]]*"SYSTEM"[[:space:]]*"FILE"[[:space:]]*"[^"]*"|"LOG" = "SYSTEM" "FILE" "'"$PREFIX"'/log/ircd.log"|' \
|
||||||
|
"Cale fișier log"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Configurare operator Raducu
|
||||||
|
log_info "Configurare operator: $OPERATOR_NAME"
|
||||||
|
|
||||||
|
# Găsește prima secțiune Operator și înlocuiește-o
|
||||||
|
if grep -q "^Operator[[:space:]]*{" "$FISIER_CONFIG"; then
|
||||||
|
# Folosește perl pentru înlocuire multi-linie dacă e disponibil
|
||||||
|
if command -v perl &>/dev/null; then
|
||||||
|
perl -i.bak -0pe 's/Operator\s*\{[^}]*\}/Operator {\n name = "'"$OPERATOR_NAME"'";\n password = "\$PLAIN\$'"$OPERATOR_PASS"'";\n host = "*@*";\n class = "Opers";\n admin = yes;\n hide_oper = no;\n hide_channels = no;\n snomask = "+s";\n privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";\n};/s' "$FISIER_CONFIG" 2>/dev/null && rm -f "$FISIER_CONFIG.bak"
|
||||||
|
log_info " ✓ Operator configurat"
|
||||||
|
else
|
||||||
|
log_warn " ⚠ Perl nu e disponibil, configurare manuală necesară pentru operator"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Adaugă secțiunea Operator dacă nu există
|
||||||
|
cat >> "$FISIER_CONFIG" <<OPERATOR_BLOCK
|
||||||
|
|
||||||
|
# Operator Madrid - $OPERATOR_NAME
|
||||||
|
Operator {
|
||||||
|
name = "$OPERATOR_NAME";
|
||||||
|
password = "\$PLAIN\$$OPERATOR_PASS";
|
||||||
|
host = "*@*";
|
||||||
|
class = "Opers";
|
||||||
|
admin = yes;
|
||||||
|
hide_oper = no;
|
||||||
|
hide_channels = no;
|
||||||
|
snomask = "+s";
|
||||||
|
privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";
|
||||||
|
};
|
||||||
|
OPERATOR_BLOCK
|
||||||
|
log_info " ✓ Secțiune Operator adăugată"
|
||||||
|
fi
|
||||||
|
|
||||||
log_success "Configurație Madrid personalizată"
|
log_success "Configurație Madrid personalizată"
|
||||||
|
|
||||||
# MOTD
|
# Generare MOTD
|
||||||
log_info "Generare MOTD..."
|
log_info "Generare MOTD..."
|
||||||
cat > "$PREFIX/lib/ircd.motd" <<'ENDMOTD'
|
cat > "$PREFIX/lib/ircd.motd" <<'MOTD_FINAL'
|
||||||
╔═══════════════════════════════════════╗
|
╔═══════════════════════════════════════╗
|
||||||
║ Bine venit pe UnderChat IRCd! ║
|
║ Bine venit pe UnderChat IRCd! ║
|
||||||
║ Madrid.ES.EU.UnderChat.org ║
|
║ Madrid.ES.EU.UnderChat.org ║
|
||||||
║ ║
|
║ ║
|
||||||
║ Versiune: v1.0.6-madrid-final ║
|
║ Versiune: v1.1.0-madrid-stabil ║
|
||||||
║ ║
|
║ ║
|
||||||
║ Pentru suport: #support ║
|
║ Pentru suport: #support ║
|
||||||
║ Website: https://underchat.org ║
|
║ Website: https://underchat.org ║
|
||||||
╚═══════════════════════════════════════╝
|
╚═══════════════════════════════════════╝
|
||||||
|
|
||||||
🌟 UnderChat Network - Madrid Node
|
🌟 UnderChat Network - Nod Madrid
|
||||||
• Host hiding pentru protecția utilizatorilor
|
• Protecție identitate utilizatori (host hiding)
|
||||||
• Anti-spam și anti-flood protection
|
• Protecție anti-spam și anti-flood
|
||||||
• Canale cu diverse moduri și opțiuni
|
• Canale cu moduri și opțiuni diverse
|
||||||
|
|
||||||
Distracție plăcută pe UnderChat! 🎉
|
Distracție plăcută pe UnderChat! 🎉
|
||||||
ENDMOTD
|
MOTD_FINAL
|
||||||
|
|
||||||
log_success "MOTD creat"
|
log_success "MOTD generat"
|
||||||
|
|
||||||
# Setare permisiuni
|
# Setare permisiuni
|
||||||
log_info "Setare permisiuni..."
|
log_info "Setare permisiuni fișiere..."
|
||||||
chmod 600 "$PREFIX/lib/ircd.conf"
|
chmod 600 "$FISIER_CONFIG"
|
||||||
|
chmod 644 "$PREFIX/lib/ircd.motd"
|
||||||
|
|
||||||
|
# Copiere fișiere în directorul etc (backup)
|
||||||
cp "$PREFIX/lib/ircd.motd" "$PREFIX/etc/ircd.motd" 2>/dev/null || true
|
cp "$PREFIX/lib/ircd.motd" "$PREFIX/etc/ircd.motd" 2>/dev/null || true
|
||||||
cp "$PREFIX/lib/ircd.conf" "$PREFIX/etc/ircd.conf" 2>/dev/null || true
|
cp "$FISIER_CONFIG" "$PREFIX/etc/ircd.conf" 2>/dev/null || true
|
||||||
log_success "Permisiuni setate"
|
log_success "Permisiuni setate"
|
||||||
|
|
||||||
# Test sintaxă
|
# Verificare sintaxă configurație
|
||||||
log_info "Test sintaxă configurație..."
|
log_info "Verificare sintaxă configurație..."
|
||||||
if "$PREFIX/bin/ircd" -c -f "$PREFIX/lib/ircd.conf"; then
|
if [ ! -f "$PREFIX/bin/ircd" ]; then
|
||||||
|
log_error "Binarul ircd nu există în $PREFIX/bin/ircd!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test sintaxă cu timeout pentru a evita blocarea
|
||||||
|
log_info "Rulare test configurație..."
|
||||||
|
if timeout 10 "$PREFIX/bin/ircd" -c -f "$FISIER_CONFIG" 2>&1 | tee "$PREFIX/log/config-test.log"; then
|
||||||
log_success "✓ Sintaxa configurației este CORECTĂ!"
|
log_success "✓ Sintaxa configurației este CORECTĂ!"
|
||||||
else
|
else
|
||||||
|
REZULTAT_TEST=$?
|
||||||
|
if [ $REZULTAT_TEST -eq 124 ]; then
|
||||||
|
log_warn "⚠ Testul configurației a depășit timeout-ul (posibil OK)"
|
||||||
|
else
|
||||||
log_error "✗ EROARE în configurație!"
|
log_error "✗ EROARE în configurație!"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Rulează pentru diagnostic:"
|
echo "Detalii eroare în: $PREFIX/log/config-test.log"
|
||||||
echo " $PREFIX/bin/ircd -c -f $PREFIX/lib/ircd.conf"
|
echo ""
|
||||||
|
echo "Rulează manual pentru diagnostic:"
|
||||||
|
echo " $PREFIX/bin/ircd -c -f $FISIER_CONFIG"
|
||||||
exit 1
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
@ -267,68 +479,110 @@ echo -e "${ALBASTRU}═══ PORNIRE SERVER ═══${NC}"
|
||||||
echo " Pornește acum:"
|
echo " Pornește acum:"
|
||||||
echo -e " ${VERDE}$PREFIX/bin/ircd -f $PREFIX/lib/ircd.conf${NC}"
|
echo -e " ${VERDE}$PREFIX/bin/ircd -f $PREFIX/lib/ircd.conf${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
echo " SAU pornire în background:"
|
echo " SAU pornire în fundal (background):"
|
||||||
echo -e " ${VERDE}nohup $PREFIX/bin/ircd -f $PREFIX/lib/ircd.conf &${NC}"
|
echo -e " ${VERDE}nohup $PREFIX/bin/ircd -f $PREFIX/lib/ircd.conf &${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
echo -e "${ALBASTRU}═══ VERIFICARE ═══${NC}"
|
echo -e "${ALBASTRU}═══ VERIFICARE ═══${NC}"
|
||||||
echo " Verifică că rulează:"
|
echo " Verifică că serverul rulează:"
|
||||||
echo -e " ${VERDE}ps aux | grep ircd${NC}"
|
echo -e " ${VERDE}ps aux | grep ircd${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
echo " Verifică porturi:"
|
echo " Verifică porturile deschise:"
|
||||||
echo -e " ${VERDE}netstat -tlnp | grep -E '(6667|4400)'${NC}"
|
echo -e " ${VERDE}netstat -tlnp | grep -E '(6667|4400)'${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
echo " Verifică log:"
|
echo " Verifică fișierul de log:"
|
||||||
echo -e " ${VERDE}tail -f $PREFIX/log/ircd.log${NC}"
|
echo -e " ${VERDE}tail -f $PREFIX/log/ircd.log${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
echo -e "${ALBASTRU}═══ CONECTARE ═══${NC}"
|
echo -e "${ALBASTRU}═══ CONECTARE ═══${NC}"
|
||||||
echo " Client IRC:"
|
echo " Cu client IRC:"
|
||||||
echo " Server: Madrid.ES.EU.UnderChat.org (sau 10.0.0.125)"
|
echo " Server: Madrid.ES.EU.UnderChat.org (sau 10.0.0.125)"
|
||||||
echo " Port: 6667"
|
echo " Port: 6667"
|
||||||
echo ""
|
echo ""
|
||||||
echo " Logare operator:"
|
echo " Autentificare ca operator:"
|
||||||
echo " /oper Raducu muiesteaua"
|
echo " /oper Raducu muiesteaua"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
echo -e "${VERDE}🎉 Distracție plăcută pe UnderChat Network! 🎉${NC}"
|
echo -e "${VERDE}🎉 Distracție plăcută pe UnderChat Network! 🎉${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Întreabă dacă să pornească automat
|
# Întreabă dacă să pornească serverul automat
|
||||||
echo ""
|
echo ""
|
||||||
read -p "Dorești să pornesc serverul ACUM? [Y/n]: " start_now
|
read -p "Dorești să pornesc serverul ACUM? [D/n] (Da/nu): " pornire_acum
|
||||||
start_now=${start_now:-Y}
|
pornire_acum=${pornire_acum:-D}
|
||||||
|
|
||||||
if [[ "$start_now" =~ ^[Yy]$ ]]; then
|
if [[ "$pornire_acum" =~ ^[DdYy]$ ]]; then
|
||||||
echo ""
|
echo ""
|
||||||
log_info "Pornire server IRCd cu config Madrid..."
|
log_info "Pornire server IRCd cu configurația Madrid..."
|
||||||
|
|
||||||
# Pornește cu -f pentru a specifica calea completă a config-ului
|
# Verifică dacă există deja un proces
|
||||||
if "$PREFIX/bin/ircd" -f "$PREFIX/lib/ircd.conf"; then
|
if pgrep -x ircd > /dev/null; then
|
||||||
|
log_warn "Un proces IRCd rulează deja!"
|
||||||
|
ps aux | grep "[i]rcd"
|
||||||
|
echo ""
|
||||||
|
read -p "Dorești să-l opresc și să pornesc unul nou? [D/n]: " opreste_si_porneste
|
||||||
|
opreste_si_porneste=${opreste_si_porneste:-D}
|
||||||
|
|
||||||
|
if [[ "$opreste_si_porneste" =~ ^[DdYy]$ ]]; then
|
||||||
|
log_info "Oprire proces existent..."
|
||||||
|
pkill -15 ircd 2>/dev/null || true
|
||||||
sleep 2
|
sleep 2
|
||||||
|
if pgrep -x ircd > /dev/null; then
|
||||||
|
pkill -9 ircd 2>/dev/null || true
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
log_success "Proces oprit"
|
||||||
|
else
|
||||||
|
log_info "Păstrare proces existent, ieșire din script"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Pornește serverul cu calea completă spre configurație
|
||||||
|
log_info "Lansare proces ircd..."
|
||||||
|
if "$PREFIX/bin/ircd" -f "$PREFIX/lib/ircd.conf"; then
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
# Verifică dacă procesul rulează
|
||||||
if pgrep -x ircd > /dev/null; then
|
if pgrep -x ircd > /dev/null; then
|
||||||
log_success "✓✓✓ SERVER PORNIT CU SUCCES! ✓✓✓"
|
log_success "✓✓✓ SERVER PORNIT CU SUCCES! ✓✓✓"
|
||||||
echo ""
|
echo ""
|
||||||
|
echo "Proces IRCd activ:"
|
||||||
ps aux | grep "[i]rcd"
|
ps aux | grep "[i]rcd"
|
||||||
echo ""
|
echo ""
|
||||||
log_success "Conectează-te la: Madrid.ES.EU.UnderChat.org:6667"
|
log_success "Poți conecta la: Madrid.ES.EU.UnderChat.org:6667"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Verifică log-ul pentru eventuale avertismente
|
||||||
|
if [ -f "$PREFIX/log/ircd.log" ]; then
|
||||||
|
echo "Ultimele linii din log:"
|
||||||
|
tail -n 10 "$PREFIX/log/ircd.log"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
log_error "Server-ul nu rulează! Verifică log-urile:"
|
log_error "Serverul nu rulează după pornire!"
|
||||||
|
echo ""
|
||||||
|
log_error "Verifică log-urile pentru erori:"
|
||||||
echo " tail -f $PREFIX/log/ircd.log"
|
echo " tail -f $PREFIX/log/ircd.log"
|
||||||
|
echo ""
|
||||||
|
log_info "Sau rulează manual cu:"
|
||||||
|
echo " $PREFIX/bin/ircd -f $PREFIX/lib/ircd.conf"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
log_error "Eșec la pornirea serverului!"
|
log_error "Eșec la pornirea serverului!"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Verifică erori cu:"
|
log_error "Verifică configurația și încearcă manual:"
|
||||||
echo " $PREFIX/bin/ircd -f $PREFIX/lib/ircd.conf"
|
echo " $PREFIX/bin/ircd -c -f $PREFIX/lib/ircd.conf # Test configurație"
|
||||||
|
echo " $PREFIX/bin/ircd -f $PREFIX/lib/ircd.conf # Pornire server"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo ""
|
echo ""
|
||||||
log_info "OK! Pornește manual când ești gata:"
|
log_info "OK! Pornește serverul manual când ești pregătit:"
|
||||||
echo " $PREFIX/bin/ircd -f $PREFIX/lib/ircd.conf"
|
echo " $PREFIX/bin/ircd -f $PREFIX/lib/ircd.conf"
|
||||||
|
echo ""
|
||||||
|
log_info "Sau în fundal:"
|
||||||
|
echo " nohup $PREFIX/bin/ircd -f $PREFIX/lib/ircd.conf > $PREFIX/log/startup.log 2>&1 &"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_success "Script finalizat!"
|
log_success "Script finalizat cu succes!"
|
||||||
|
echo ""
|
||||||
|
|
|
||||||
84
install.sh
84
install.sh
|
|
@ -527,7 +527,7 @@ generate_config() {
|
||||||
|
|
||||||
mkdir -p "$(dirname "$config_file")"
|
mkdir -p "$(dirname "$config_file")"
|
||||||
|
|
||||||
cat > "$config_file" << 'EOFCONFIG'
|
cat > "$config_file" << EOFCONFIG
|
||||||
# Fișier de configurare pentru UnderChat IRCd
|
# Fișier de configurare pentru UnderChat IRCd
|
||||||
# Generat automat în data: 2026
|
# Generat automat în data: 2026
|
||||||
# Limba: Română
|
# Limba: Română
|
||||||
|
|
@ -559,11 +559,11 @@ EOFCONFIG_VHOST6_LINE
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
Admin {
|
Admin {
|
||||||
# Locații (maxim 2)
|
# Locații (maxim 2)
|
||||||
Location = "EOFCONFIG_NETWORK World";
|
Location = "The EOFCONFIG_NETWORK World";
|
||||||
Location = "EOFCONFIG_ADMIN_LOC";
|
Location = "Location: EOFCONFIG_ADMIN_LOC";
|
||||||
|
|
||||||
# Contacti
|
# Contacti
|
||||||
Contact = "EOFCONFIG_ADMIN_CONTACT";
|
Contact = "IRC Admins <EOFCONFIG_ADMIN_CONTACT>";
|
||||||
};
|
};
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
@ -579,13 +579,23 @@ Class {
|
||||||
sendq = 9000000;
|
sendq = 9000000;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Clasă pentru servere principale (LeafServer)
|
||||||
|
|
||||||
|
Class {
|
||||||
|
name = "LeafServer";
|
||||||
|
pingfreq = 1 minutes 30 seconds;
|
||||||
|
connectfreq = 5 minutes;
|
||||||
|
maxlinks = 0;
|
||||||
|
sendq = 9000000;
|
||||||
|
};
|
||||||
|
|
||||||
# Clasă pentru clienți obișnuiți
|
# Clasă pentru clienți obișnuiți
|
||||||
Class {
|
Class {
|
||||||
name = "Local";
|
name = "Local";
|
||||||
pingfreq = 1 minutes 30 seconds;
|
pingfreq = 1 minutes 30 seconds;
|
||||||
sendq = 160000;
|
sendq = 160000;
|
||||||
maxlinks = 100;
|
maxlinks = 100;
|
||||||
usermode = "+iw";
|
usermode = "+i";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Clasă pentru clienți normali (implicit)
|
# Clasă pentru clienți normali (implicit)
|
||||||
|
|
@ -611,10 +621,19 @@ Class {
|
||||||
show_invis = yes;
|
show_invis = yes;
|
||||||
see_chan = yes;
|
see_chan = yes;
|
||||||
list_chan = yes;
|
list_chan = yes;
|
||||||
usermode = "+Wx";
|
usermode = "+W";
|
||||||
remove = yes;
|
remove = yes;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Clasă pentru IRCcloud
|
||||||
|
Class {
|
||||||
|
name = "irccloud";
|
||||||
|
pingfreq = 1 minutes 30 seconds;
|
||||||
|
sendq = 160000;
|
||||||
|
maxlinks = 100;
|
||||||
|
usermode = "+i";
|
||||||
|
};
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# SECȚIUNE: CLIENT - Restricții pentru conexiuni
|
# SECȚIUNE: CLIENT - Restricții pentru conexiuni
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
@ -624,15 +643,29 @@ Client {
|
||||||
host = "*@*";
|
host = "*@*";
|
||||||
ip = "*@*";
|
ip = "*@*";
|
||||||
class = "Other";
|
class = "Other";
|
||||||
|
maxlinks = 3;
|
||||||
|
};
|
||||||
|
|
||||||
|
#Configurare implicita pentru AUTOJOIN + mesaj
|
||||||
|
Client {
|
||||||
|
host = "*@*";
|
||||||
|
ip = "*@*";
|
||||||
|
class = "Other";
|
||||||
|
autojoinchannel = "#CService";
|
||||||
|
autojoinnotice = "*** Notice -- You are now being autojoined into #CService and #zT channels. Have fun!";
|
||||||
maxlinks = 6;
|
maxlinks = 6;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# SECȚIUNE: JUPED NICKS - Nick-uri rezervate
|
# SECȚIUNE: JUPED NICKS - Nick-uri rezervate
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
Jupe {
|
Jupe {
|
||||||
# Litere și caractere speciale
|
# Litere și caractere speciale
|
||||||
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 = "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 = "EuWorld,UWorld,UWorld2,Defender";
|
||||||
|
nick = "login,underchat,protocol,pass,newpass,org";
|
||||||
|
nick = "LPT1,LPT2,COM1,COM2,COM3,COM4,AUX,AUTH";
|
||||||
|
|
||||||
# Servicii de rețea
|
# Servicii de rețea
|
||||||
nick = "StatServ,NoteServ";
|
nick = "StatServ,NoteServ";
|
||||||
|
|
@ -647,7 +680,7 @@ Jupe {
|
||||||
# Port pentru server-to-server
|
# Port pentru server-to-server
|
||||||
Port {
|
Port {
|
||||||
vhost = "EOFCONFIG_VHOST4" EOFCONFIG_SERVER_PORT;
|
vhost = "EOFCONFIG_VHOST4" EOFCONFIG_SERVER_PORT;
|
||||||
EOFCONFIG_VHOST6_PORT_4400
|
EOFCONFIG_VHOST6_PORT_4400
|
||||||
server = yes;
|
server = yes;
|
||||||
hidden = yes;
|
hidden = yes;
|
||||||
};
|
};
|
||||||
|
|
@ -657,6 +690,7 @@ EOFCONFIG_CLIENT_PORTS
|
||||||
|
|
||||||
# Porturi SSL/TLS pentru clienți
|
# Porturi SSL/TLS pentru clienți
|
||||||
EOFCONFIG_SSL_PORTS
|
EOFCONFIG_SSL_PORTS
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# SECȚIUNE: OPERATORI
|
# SECȚIUNE: OPERATORI
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
@ -679,8 +713,8 @@ Operator {
|
||||||
admin = yes;
|
admin = yes;
|
||||||
hide_oper = no;
|
hide_oper = no;
|
||||||
hide_channels = no;
|
hide_channels = no;
|
||||||
snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE";
|
# snomask = "+s";
|
||||||
privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";
|
# privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";
|
||||||
};
|
};
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
@ -693,9 +727,21 @@ EOFCONFIG_HUB_CONNECT
|
||||||
# SECȚIUNE: UWORLD - Servere de servicii
|
# SECȚIUNE: UWORLD - Servere de servicii
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
||||||
# UWorld {
|
UWorld {
|
||||||
# name = "services.EOFCONFIG_NETWORK";
|
name = "services.EOFCONFIG_NETWORK";
|
||||||
# };
|
name = "channels.EOFCONFIG_NETWORK";
|
||||||
|
name = "defender.EOFCONFIG_NETWORK";
|
||||||
|
name = "stats.EOFCONFIG_NETWORK";
|
||||||
|
name = "snoop.EOFCONFIG_NETWORK";
|
||||||
|
name = "proxyscaner.EOFCONFIG_NETWORK";
|
||||||
|
name = "proxy.EOFCONFIG_NETWORK";
|
||||||
|
};
|
||||||
|
|
||||||
|
# MOTD Server targetat pentru
|
||||||
|
#motd {
|
||||||
|
# host = "*.net";
|
||||||
|
# file = "net_com.motd";
|
||||||
|
#};
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# SECȚIUNE: FEATURE - Caracteristici și setări
|
# SECȚIUNE: FEATURE - Caracteristici și setări
|
||||||
|
|
@ -707,7 +753,7 @@ features {
|
||||||
"DOMAINNAME" = "EOFCONFIG_NETWORK";
|
"DOMAINNAME" = "EOFCONFIG_NETWORK";
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
"LOG" = "SYSTEM" "FILE" "EOFCONFIG_PREFIX/log/ircd.log";
|
"LOG" = "SYSTEM" "FILE" "$PREFIX/log/ircd.log";
|
||||||
"LOG" = "SYSTEM" "LEVEL" "CRIT";
|
"LOG" = "SYSTEM" "LEVEL" "CRIT";
|
||||||
|
|
||||||
# Server settings
|
# Server settings
|
||||||
|
|
@ -722,7 +768,7 @@ features {
|
||||||
"BUFFERPOOL" = "27000000";
|
"BUFFERPOOL" = "27000000";
|
||||||
"DEFAULTMAXSENDQLENGTH" = "40000";
|
"DEFAULTMAXSENDQLENGTH" = "40000";
|
||||||
|
|
||||||
# Host hiding - configurație replicată de pe ns2.node-ase.ovh (funcțional)
|
# Host hiding
|
||||||
"HOST_HIDING" = "TRUE";
|
"HOST_HIDING" = "TRUE";
|
||||||
"HOST_HIDING_STYLE" = "3";
|
"HOST_HIDING_STYLE" = "3";
|
||||||
"HIDDEN_HOST" = "users.EOFCONFIG_NETWORK";
|
"HIDDEN_HOST" = "users.EOFCONFIG_NETWORK";
|
||||||
|
|
@ -746,10 +792,10 @@ features {
|
||||||
"CONNECTFREQUENCY" = "600";
|
"CONNECTFREQUENCY" = "600";
|
||||||
|
|
||||||
# Welcome messages - toate în lib/ ca directorul principal
|
# Welcome messages - toate în lib/ ca directorul principal
|
||||||
"MPATH" = "EOFCONFIG_PREFIX/lib/ircd.motd";
|
"MPATH" = "$PREFIX/lib/ircd.motd";
|
||||||
"RPATH" = "EOFCONFIG_PREFIX/lib/remote.motd";
|
"RPATH" = "$PREFIX/lib/remote.motd";
|
||||||
"PPATH" = "EOFCONFIG_PREFIX/var/ircd.pid";
|
"PPATH" = "$PREFIX/var/ircd.pid";
|
||||||
"CPATH" = "EOFCONFIG_PREFIX/lib/ircd.conf";
|
"CPATH" = "$PREFIX/lib/ircd.conf";
|
||||||
|
|
||||||
# Stats visibility
|
# Stats visibility
|
||||||
"HIS_STATS_u" = "FALSE";
|
"HIS_STATS_u" = "FALSE";
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Quick Install Script pentru Madrid Server
|
||||||
|
# Rulează pe serverul Madrid: bash <(curl -s https://gitlab.back.ro/underchat/ircu2/-/raw/main/quick-install-madrid.sh)
|
||||||
|
|
||||||
|
echo "╔═══════════════════════════════════════════════╗"
|
||||||
|
echo "║ UnderChat IRCd - Madrid Quick Install ║"
|
||||||
|
echo "╚═══════════════════════════════════════════════╝"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
echo "[1/4] Cleanup instalări vechi..."
|
||||||
|
rm -rf ~/ircu2 ~/ircd
|
||||||
|
|
||||||
|
# Clone
|
||||||
|
echo "[2/4] Clonare repository..."
|
||||||
|
cd ~ && git clone https://gitlab.back.ro/underchat/ircu2.git
|
||||||
|
cd ~/ircu2
|
||||||
|
|
||||||
|
# Install
|
||||||
|
echo "[3/4] Instalare Madrid server..."
|
||||||
|
chmod +x install-madrid.sh
|
||||||
|
./install-madrid.sh
|
||||||
|
|
||||||
|
# Done
|
||||||
|
echo ""
|
||||||
|
echo "[4/4] ✓ Instalare completă!"
|
||||||
|
echo ""
|
||||||
|
echo "Pentru a porni serverul:"
|
||||||
|
echo " ~/ircd/bin/ircd"
|
||||||
|
echo ""
|
||||||
|
echo "Pentru verificare:"
|
||||||
|
echo " ps aux | grep ircd"
|
||||||
|
echo ""
|
||||||
|
|
||||||
Loading…
Reference in New Issue