__________________________________________ ( How to setup Undernet IRCu with GNUWorld ) ------------------------------------------ \ \ _-%%==-_ \ %@* #@@= \ @@* *@. \ .@* *@+, \ #@ *@ @@ =@%*#@@**, =@@**%@@= #@ @% .@ @@*@* *%-__@. @# %. --==*@ @*==- #* @# @ __##@@@##__, @ @ %@ __+%@@@@@@%%#@#=*^ ^**=:+@##*==__, ..@@@** *@@:. ,=@#* ___=+%+. ___--=+. __-=+-, *#. *@# .+@** .@ =@:___%@# .@##: @%: =, @ @. .@+ #_=* @ *=@* @ .@ @ @ %. *@ + @= .@ .@ :@ # ,= @ .@ @ # #. % ,@# .@. @ .@.%@% @, @ **==__# @ #= @__=@@* ^*:*###@@@@. @ *@=__@: %@:=@# @. ,@ -# =========== =========== @ ^*= # *_ @ @ @ @ @ @ @ # # .@ .@ *#=-* @*^ @ #*^ @ # @ #@-%* @ @ @ @. @ ,* @ @ @ # @ *@@@+ *@@@* @+*%@ @ ^# @ @ @ @ @^--* %. .* *. .# @. ^*_*^ @ @ ^*-# *#=_ _,@@%* *#%@_ ^:@=___ ___==#@ @ @*@ @ * ^*-----*^ @ : % _:@*@:_ @ @__ # # __=@ ^* @ @ *^ ^*=--++++--**^ * #. @ * @ % @ ^# ^* == As it turns out, this was how the Underground Youkai Network was born, more or less. == Last three weeks or so ago I practically went insane with my personal forks of Bahamut and Undernet IRCu, named 'Satori' and 'Koishi', but that's besides the point. == Step 1 - Checkout the source tree of Koishi (which is a barely modified IRCu) from this location: https://git.mentality.rip/novaburst/koishi - Use the autogen wrapper script, it sets up everything for you (you need Autotools however) - Run `make`, then `make install` as root, with whatever suits you best == Step 2 Read the following sample config file throughly, this was used for the network I run, so if you want to go ahead and join the network, just ask me or something and we can arrange it. ``` # $YakumoLabs$ # vim: ts=2 # [General] # Some information about the server General { name = ""; description = ""; numeric = ; }; # [Admin] # This sets information that can be retrieved with the /ADMIN command. # It should contain at least an admin Email contact address. Admin { Location = ""; Location = ""; Contact = ""; }; # [Class] # All connections to the server are associated with a certain "connection # class", be they incoming or outgoing (initiated by the server), be they # clients or servers. Class { name = "Server"; pingfreq = 1 minutes 30 seconds; connectfreq = 5 minutes; maxlinks = 1; sendq = 9000000; }; Class { name = "LeafServer"; pingfreq = 1 minutes 30 seconds; connectfreq = 5 minutes; maxlinks = 0; sendq = 9000000; }; Class { name = "Users"; pingfreq = 1 minutes 30 seconds; sendq = 160000; maxlinks = 100; usermode = "+ixw"; }; Class { name = "Opers"; pingfreq = 1 minutes 30 seconds; sendq = 160000; maxflood = 8096; maxlinks = 10; local = no; }; # [Client] # To allow clients to connect, they need authorization. # This can be done based on hostmask, address mask and/or # with a password. Client { host = "*@*"; ip = "*@*"; class = "Users"; maxlinks = 2; }; # [UWorld] # This is equivalent to U-lined servers in most networks, # commonly used for Services, but never to be used with # regular nodes UWorld { oper = "services.youkai.network"; }; 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 = "EuWorld,UWorld,UWorld2"; nick = "login,undernet,protocol,pass,newpass,org"; nick = "StatServ,NoteServ"; nick = "ChanSvr,ChanSaver,ChanServ"; nick = "NickSvr,NickSaver,NickServ"; nick = "LPT1,LPT2,COM1,COM2,COM3,COM4,AUX"; }; # [Operator] # Oper status grants some special privileges to a user, like the power to make the # server break or (try to) establish a connection with another server, # and to "kill" users off IRC. # # More than one host = "mask"; entry may be present in one block # The password field must contain a hash generated by umkpasswd(1) # As for the name field, it can be your nickname, or anything else as long as # it doesn't have spaces Operator { host = "*@*"; password = ""; name = ""; class = "Opers"; }; # [Port] # When your server gets more full, you will notice delays when trying to # connect to your server's primary listening port. It is possible via the # Port lines to specify additional ports for the ircd to listen to. # De facto ports are: 6667 - standard; 6660-6669 - additional client # ports; # # On this network we used the port 6670 for all client connections # and 4400 for server connections. Port { server = yes; port = 4400; }; Port { port = 6670; }; # This is a server-implemented alias to send a message to a service. # The string after Pseudo is the command name; the name entry inside # is the service name, used for error messages. More than one nick # entry can be provided; the last one listed has highest priority. Pseudo "ChanServ" { name = "X"; nick = "X@services.youkai.network"; }; Pseudo "NickServ" { name = "NS"; nick = "NS@services.youkai.network"; }; # The IPCheck block can be used to exempt IP addresses or netblocks from # the connection rate-limiting code that gives messages like: # "Your host is trying to (re)connect too fast -- throttled" IPCheck { except "::1"; }; features { # Logging settings # ircd.log is relative to DPATH "LOG" = "SYSTEM" "FILE" "ircd.log"; "LOG" = "SYSTEM" "LEVEL" "CRIT"; # Only set this to TRUE if your system clock is reliable # Most aren't "RELIABLE_CLOCK"="FALSE"; # Default port for server linking "SERVER_PORT"="4400"; # Do not send the MOTD on the get-go "NODEFAULTMOTD"="FALSE"; # Set this to FALSE if you are a leaf server "HUB"="TRUE"; # Set this to a randomly generated string # openssl rand -base64 48 "RANDOM_SEED"=""; # Network name "NETWORK"="YoukaiNET"; # Controls the IP cloaking "HOST_HIDING"="TRUE"; "HIDDEN_HOST"="youkai.network"; "HIDDEN_IP"="127.0.0.1"; # Length of nicknames # Cannot be higher than what the IRCd supports at build-time "NICKLEN" = "15"; # Number of seconds to wait for a client registration to complete "CONNECTTIMEOUT" = "90"; # How many seconds before the connection closes "PINGFREQUENCY" = "120"; # Message of the Day # Relative to DPATH "MPATH" = "ircd.motd"; "RPATH" = "remote.motd"; # File storing the process ID # Relative to DPATH "PPATH" = "ircd.pid"; # Whether to allow users to create local channels "LOCAL_CHANNELS" = "FALSE"; # IRCv3 capabilities "CAP_ACCOUNTNOTIFY" = "TRUE"; "CAP_AWAYNOTIFY" = "TRUE"; "CAP_CHGHOST" = "TRUE"; "CAP_ECHOMESSAGE" = "TRUE"; "CAP_EXTJOIN" = "TRUE"; "CAP_INVITENOTIFY" = "TRUE"; # Head-in-Sand "HIS_SERVERNAME" = "*.youkai.network"; "HIS_SERVERINFO" = "Underground Youkai Network"; }; ``` I'll elaborate about the Services server in another note.