305 lines
7.7 KiB
Bash
305 lines
7.7 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Script de instalare automată UnderChat IRCd pentru Madrid.ES.EU.UnderChat.org
|
|
# Pre-configurat cu toate setările corecte
|
|
# Versiune: v1.0.6-madrid
|
|
#
|
|
|
|
set -e
|
|
|
|
# Culori
|
|
ROSU='\033[0;31m'
|
|
VERDE='\033[0;32m'
|
|
GALBEN='\033[1;33m'
|
|
ALBASTRU='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
log_info() { echo -e "${VERDE}[INFO]${NC} $1"; }
|
|
log_success() { echo -e "${VERDE}[SUCCES]${NC} $1"; }
|
|
log_warn() { echo -e "${GALBEN}[AVERTIZARE]${NC} $1"; }
|
|
log_error() { echo -e "${ROSU}[EROARE]${NC} $1"; }
|
|
|
|
echo -e "${ALBASTRU}"
|
|
echo "═══════════════════════════════════════════════"
|
|
echo " Instalare UnderChat IRCd - Madrid Server"
|
|
echo "═══════════════════════════════════════════════"
|
|
echo -e "${NC}"
|
|
|
|
# Setări pre-configurate pentru Madrid
|
|
PREFIX="$HOME/ircd"
|
|
MAXCON=4096
|
|
NETWORK_NAME="UnderChat.org"
|
|
SERVER_NAME="Madrid.ES.EU.UnderChat.org"
|
|
SERVER_DESC="The UnderChat.org Network - Madrid Node"
|
|
VHOST_IPV4="10.0.0.125"
|
|
SERVER_NUMERIC=1
|
|
ADMIN_LOCATION="Madrid, Spain"
|
|
ADMIN_CONTACT="admin@UnderChat.org"
|
|
OPER_USERNAME="Raducu"
|
|
OPER_PASSWORD="muiesteaua"
|
|
CLIENT_PORTS="6667"
|
|
SERVER_PORT=4400
|
|
|
|
log_info "Configurație Madrid:"
|
|
echo " → Rețea: $NETWORK_NAME"
|
|
echo " → Server: $SERVER_NAME"
|
|
echo " → IP: $VHOST_IPV4"
|
|
echo " → Port client: $CLIENT_PORTS"
|
|
echo " → Operator: $OPER_USERNAME"
|
|
echo ""
|
|
|
|
# Verifică dacă suntem în directorul corect
|
|
if [ ! -f "./configure" ]; then
|
|
log_error "Nu sunt în directorul ircu2! Rulează din directorul unde ai clonat repository-ul."
|
|
exit 1
|
|
fi
|
|
|
|
# Compilare
|
|
log_info "Pas 1/5: Configurare..."
|
|
./configure --prefix="$PREFIX" --with-maxcon=$MAXCON
|
|
|
|
log_info "Pas 2/5: Compilare..."
|
|
make clean
|
|
make
|
|
|
|
log_info "Pas 3/5: Instalare..."
|
|
make install
|
|
|
|
# Creare directoare
|
|
log_info "Pas 4/5: Creare structură directoare..."
|
|
mkdir -p "$PREFIX/lib"
|
|
mkdir -p "$PREFIX/etc"
|
|
mkdir -p "$PREFIX/log"
|
|
mkdir -p "$PREFIX/var"
|
|
|
|
# Generare configurație DIRECT fără placeholder-uri
|
|
log_info "Pas 5/5: Generare configurație Madrid..."
|
|
|
|
cat > "$PREFIX/lib/ircd.conf" << EOF
|
|
# Configurație UnderChat IRCd - Madrid.ES.EU.UnderChat.org
|
|
# Generat automat: $(date)
|
|
# Versiune: v1.0.6-madrid
|
|
|
|
General {
|
|
name = "$SERVER_NAME";
|
|
vhost = "$VHOST_IPV4";
|
|
description = "$SERVER_DESC";
|
|
numeric = $SERVER_NUMERIC;
|
|
dns server = "8.8.8.8";
|
|
dns server = "1.1.1.1";
|
|
};
|
|
|
|
Admin {
|
|
Location = "$NETWORK_NAME World";
|
|
Location = "$ADMIN_LOCATION";
|
|
Contact = "$ADMIN_CONTACT";
|
|
};
|
|
|
|
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;
|
|
mode_lchan = yes;
|
|
deop_lchan = yes;
|
|
walk_lchan = yes;
|
|
show_invis = yes;
|
|
see_chan = yes;
|
|
list_chan = yes;
|
|
usermode = "+Wx";
|
|
remove = yes;
|
|
};
|
|
|
|
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 = "StatServ,NoteServ";
|
|
nick = "ChanServ,ChanSaver";
|
|
nick = "NickServ,NickSaver";
|
|
};
|
|
|
|
Port {
|
|
vhost = "$VHOST_IPV4" $SERVER_PORT;
|
|
server = yes;
|
|
hidden = yes;
|
|
};
|
|
|
|
Port {
|
|
vhost = "$VHOST_IPV4" $CLIENT_PORTS;
|
|
hidden = yes;
|
|
};
|
|
|
|
Operator {
|
|
name = "$OPER_USERNAME";
|
|
password = "\$PLAIN\$$OPER_PASSWORD";
|
|
host = "*@*";
|
|
class = "Opers";
|
|
admin = yes;
|
|
hide_oper = no;
|
|
hide_channels = no;
|
|
snomask = "+s";
|
|
privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";
|
|
};
|
|
|
|
features {
|
|
"NETWORK" = "$NETWORK_NAME";
|
|
"DOMAINNAME" = "$NETWORK_NAME";
|
|
|
|
"LOG" = "SYSTEM" "FILE" "$PREFIX/log/ircd.log";
|
|
"LOG" = "SYSTEM" "LEVEL" "CRIT";
|
|
|
|
"HUB" = "FALSE";
|
|
"RELIABLE_CLOCK" = "FALSE";
|
|
"WALLOPS_OPER_ONLY" = "TRUE";
|
|
"NODNS" = "FALSE";
|
|
"NOIDENT" = "FALSE";
|
|
|
|
"CLIENT_FLOOD" = "1024";
|
|
"BUFFERPOOL" = "27000000";
|
|
"DEFAULTMAXSENDQLENGTH" = "40000";
|
|
|
|
"HOST_HIDING" = "TRUE";
|
|
"HOST_HIDING_STYLE" = "3";
|
|
"HIDDEN_HOST" = "users.$NETWORK_NAME";
|
|
"HIDDEN_IP" = "127.0.0.1";
|
|
"HIDDEN_HOSTTYPE" = "3";
|
|
|
|
"MAXCHANNELSPERUSER" = "60";
|
|
"CHANNELLEN" = "200";
|
|
"MAXBANS" = "50";
|
|
|
|
"NICKLEN" = "12";
|
|
"NICKNAMEHISTORYLENGTH" = "800";
|
|
|
|
"HANGONGOODLINK" = "300";
|
|
"HANGONRETRYDELAY" = "10";
|
|
"CONNECTTIMEOUT" = "90";
|
|
"PINGFREQUENCY" = "120";
|
|
"CONNECTFREQUENCY" = "600";
|
|
|
|
"MPATH" = "$PREFIX/lib/ircd.motd";
|
|
"RPATH" = "$PREFIX/lib/remote.motd";
|
|
"PPATH" = "$PREFIX/var/ircd.pid";
|
|
"CPATH" = "$PREFIX/lib/ircd.conf";
|
|
|
|
"HIS_STATS_u" = "FALSE";
|
|
"HIS_STATS_U" = "TRUE";
|
|
|
|
"HIS_WHOIS_SERVERNAME" = "TRUE";
|
|
"HIS_WHOIS_IDLETIME" = "TRUE";
|
|
"HIS_WHOIS_LOCALCHAN" = "TRUE";
|
|
|
|
"HIS_WHO_SERVERNAME" = "TRUE";
|
|
"HIS_WHO_HOPCOUNT" = "TRUE";
|
|
|
|
"HIS_NETSPLIT" = "TRUE";
|
|
"HIS_SERVERNAME" = "*.$NETWORK_NAME";
|
|
"HIS_SERVERINFO" = "The $NETWORK_NAME World";
|
|
|
|
"CHECK" = "TRUE";
|
|
"CHECK_EXTENDED" = "TRUE";
|
|
"MAX_CHECK_OUTPUT" = "1000";
|
|
"OPER_WHOIS_PARANOIA" = "TRUE";
|
|
|
|
"SETHOST" = "TRUE";
|
|
"NETWORK_REHASH" = "TRUE";
|
|
|
|
"HALFOPS" = "TRUE";
|
|
|
|
"CTCP_VERSIONING" = "FALSE";
|
|
|
|
"WHOIS_NOTICE" = "TRUE";
|
|
"SPY_WHOIS" = "TRUE";
|
|
"SNOMASK_OPERDEFAULT" = "1024";
|
|
"SNOMASK_DEFAULT" = "1024";
|
|
};
|
|
EOF
|
|
|
|
# MOTD
|
|
cat > "$PREFIX/lib/ircd.motd" << 'EOFMOTD'
|
|
╔═══════════════════════════════════════╗
|
|
║ Bine venit pe UnderChat IRCd! ║
|
|
║ Madrid.ES.EU.UnderChat.org ║
|
|
║ ║
|
|
║ Versiune: v1.0.6-madrid ║
|
|
║ ║
|
|
║ Pentru suport: #support ║
|
|
║ Website: https://underchat.org ║
|
|
╚═══════════════════════════════════════╝
|
|
|
|
🌟 UnderChat Network - Madrid Node
|
|
• Host hiding pentru protecția utilizatorilor
|
|
• Anti-spam și anti-flood protection
|
|
• Canale cu diverse moduri și opțiuni
|
|
|
|
Distracție plăcută pe UnderChat! 🎉
|
|
EOFMOTD
|
|
|
|
# Setare permisiuni
|
|
chmod 600 "$PREFIX/lib/ircd.conf"
|
|
cp "$PREFIX/lib/ircd.motd" "$PREFIX/etc/ircd.motd"
|
|
cp "$PREFIX/lib/ircd.conf" "$PREFIX/etc/ircd.conf"
|
|
|
|
# Test sintaxă
|
|
log_info "Test sintaxă configurație..."
|
|
if "$PREFIX/bin/ircd" -c -f "$PREFIX/lib/ircd.conf"; then
|
|
log_success "✓ Configurația este validă!"
|
|
else
|
|
log_error "✗ Erori în configurație - verifică manual"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${VERDE}"
|
|
echo "═══════════════════════════════════════════════"
|
|
echo " ✓ INSTALARE COMPLETĂ - Madrid Server!"
|
|
echo "═══════════════════════════════════════════════"
|
|
echo -e "${NC}"
|
|
echo ""
|
|
echo -e "${GALBEN}Configurație Madrid:${NC}"
|
|
echo " Server: $SERVER_NAME"
|
|
echo " IP: $VHOST_IPV4"
|
|
echo " Port: $CLIENT_PORTS"
|
|
echo " Config: $PREFIX/lib/ircd.conf"
|
|
echo ""
|
|
echo -e "${GALBEN}Pentru a porni serverul:${NC}"
|
|
echo " $PREFIX/bin/ircd"
|
|
echo ""
|
|
echo -e "${GALBEN}Pentru a te loga ca operator:${NC}"
|
|
echo " /oper $OPER_USERNAME $OPER_PASSWORD"
|
|
echo ""
|
|
log_success "Instalare Madrid completă! Pornește serverul acum!"
|
|
|