#!/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!"