serverinfo { name = "your-assigned-name.chatnet.gg"; sid = "SID given to you by the ChatNet admin, e.g. 43B"; description = "short description of your server"; network_name = "ChatNet"; default_max_clients = 1024; nicklen = 30; /* Required even without real TLS listeners -- without a cert file * present, solanum's ssld helper aborts startup on some builds. */ ssl_cert = "etc/ssl.pem"; ssl_dh_params = "etc/dh.pem"; ssld_count = 1; }; admin { name = "your name/handle"; description = "your server's description"; email = "your contact email"; }; log { fname_userlog = "logs/userlog"; fname_operlog = "logs/operlog"; fname_serverlog = "logs/serverlog"; fname_killlog = "logs/killlog"; fname_operspylog = "logs/operspylog"; }; class "users" { ping_time = 2 minutes; number_per_ident = 10; number_per_ip = 10; number_per_ip_global = 50; cidr_ipv4_bitlen = 24; cidr_ipv6_bitlen = 64; number_per_cidr = 200; max_number = 3000; sendq = 400 kbytes; }; class "opers" { ping_time = 5 minutes; number_per_ip = 10; max_number = 1000; sendq = 1 megabyte; }; class "server" { ping_time = 5 minutes; connectfreq = 5 minutes; max_number = 1; sendq = 4 megabytes; }; /* Only needed if you want real users connecting directly to YOUR * server. Omit entirely if this leaf only exists to extend the * network topology, with no local users. */ listen { defer_accept = yes; port = 6667; }; auth { user = "*@*"; class = "users"; flags = exceed_limit; }; /* ChatNet's public entry point, irc.chatnet.gg -- NOT the network's * internal hub. Your server dials OUT to it (flags = autoconn), it * only accepts the connection. */ connect "irc.chatnet.gg" { host = "irc.chatnet.gg's public IP, given to you by the ChatNet admin"; send_password = "password given to you by the ChatNet admin"; accept_password = "same password"; port = 7000; class = "server"; flags = autoconn; }; /* Marks ChatNet's own services (K9/NickServ/etc) as a trusted network * service on YOUR server too. Every server in the network must * declare this identically. */ service { name = "services.chatnet.gg"; }; /* Same short command aliases as the rest of the network. */ alias "NickServ" { target = "NickServ"; }; alias "OperServ" { target = "OperServ"; }; alias "MemoServ" { target = "MemoServ"; }; alias "GroupServ" { target = "GroupServ"; }; alias "HostServ" { target = "HostServ"; }; alias "BotServ" { target = "BotServ"; }; alias "InfoServ" { target = "InfoServ"; }; alias "NS" { target = "NickServ"; }; alias "CS" { target = "K9"; }; alias "K9" { target = "K9"; }; alias "OS" { target = "OperServ"; }; alias "MS" { target = "MemoServ"; }; alias "GS" { target = "GroupServ"; }; alias "HS" { target = "HostServ"; }; alias "BS" { target = "BotServ"; }; /* Local IRCop on YOUR server only -- grants nothing network-wide. * Pick your own password, not shared with the ChatNet admin. */ operator "your local oper name" { user = "*@*"; password = "choose your own password"; flags = ~encrypted; }; /* Copied verbatim from the network -- keep these identical so * channel/nick behavior feels consistent regardless of which server * a user happens to be connected to. */ channel { use_invex = yes; use_except = yes; use_forward = yes; use_knock = yes; knock_delay = 5 minutes; knock_delay_channel = 1 minute; max_chans_per_user = 15; max_bans = 100; default_split_user_count = 0; default_split_server_count = 0; no_create_on_split = no; no_join_on_split = no; burst_topicwho = yes; autochanmodes = "+nt"; }; serverhide { flatten_links = yes; links_delay = 5 minutes; hidden = no; disable_hidden = no; }; general { hide_error_messages = opers; hide_spoof_ips = yes; default_umodes = "+i"; default_operstring = "is an IRC Operator"; default_adminstring = "is a Server Administrator"; servicestring = "is a Network Service"; sasl_service = "SaslServ"; disable_fake_channels = no; tkline_expire_notices = no; default_floodcount = 10; failed_oper_notice = yes; dots_in_ident = 2; min_nonwildcard = 4; min_nonwildcard_simple = 3; max_accept = 100; max_monitor = 100; anti_nick_flood = yes; max_nick_time = 20 seconds; max_nick_changes = 5; anti_spam_exit_message_time = 5 minutes; ts_warn_delta = 30 seconds; ts_max_delta = 5 minutes; client_exit = yes; collision_fnc = yes; resv_fnc = yes; global_snotices = yes; dline_with_reason = yes; kline_with_reason = yes; kline_reason = "K-Lined"; identify_service = "NickServ@services.chatnet.gg"; identify_command = "IDENTIFY"; non_redundant_klines = yes; warn_no_nline = yes; use_propagated_bans = yes; stats_o_oper_only = yes; stats_i_oper_only = masked; stats_k_oper_only = masked; map_oper_only = yes; caller_id_wait = 1 minute; pace_wait_simple = 1 second; pace_wait = 10 seconds; short_motd = no; ping_cookie = no; connect_timeout = 30 seconds; default_ident_timeout = 5; disable_auth = no; no_oper_flood = yes; max_targets = 4; client_flood_max_lines = 20; oper_only_umodes = operwall, servnotice; oper_umodes = servnotice, operwall, wallop; oper_snomask = "+s"; burst_away = yes; nick_delay = 0 seconds; reject_ban_time = 1 minute; reject_after_count = 3; reject_duration = 5 minutes; throttle_duration = 60; throttle_count = 4; max_ratelimit_tokens = 30; away_interval = 30; hide_opers_in_whois = no; }; modules { path = "modules"; path = "modules/autoload"; };