ircu2/install-madrid.sh

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