nixos-configs/hardware/alrest/solanum.nix

214 lines
7.7 KiB
Nix

{config, pkgs, lib, ...}:
let
metadata = pkgs.callPackage ../../../ops/metadata/peers.nix { };
info = metadata.raw."${config.networking.hostName}".solanum;
in {
services.solanum = {
enable = true;
motd = ''
NmmN Nmmmd.:mm
NmmmN NmmydmmmmmN
Nm/:mN Nmms /mmmmm
Nmm:-dm NmmmmdsdmmmmN
mmmmmmmN NmmdhhddhhmNN Nmy:hmmmmmmmm
Nm++mmmmN mdyo/::.........-:/sdN Nmmms`smmmmmmmN
md.-dmmmm mhs/-....................-+dN Nmmmmmmmmmmmmmm
Nmmmmmmmmho:-...........................:sN NmmmmmmmmmmmmmmmN Nmdd
Nmd+ydhs/-.................................-sNmmmmmmmmmmmmmmmdhyssss
NNh+`........................................:dmmmmmmmmmmmmmmmyssssss
NNdhy+:-...........................................+dmmmmmmmmmmmmmmmdsssssss
N+-...............................................-smmmmmmmmmmmmmmmmmysyyhdmN
Nho:::-.--::-.......................----------..:hmmmmmmmmmmmmmmmmmmmN
NNNmmdo:......................--------------:ymmmmmmmmmmmmmmmmmmm
ds+........................-----------------+dmmmmmmmmmmmmmmmmm
h+........................--------------------:smmmmmmmmmmmmmmN
Ny/........................-------------::--------/hmmmmmmmmmmmN Nmd
d/........................--------------so----------odmmmmmmmm Nmdhhysss
m/........................--------------+mh-----------:ymmmmdhhyysssssssss
o.......................---------------:dmmo------------+dmdysssssssssssss
yhdmNh:......................---------------:dmmmm+------------:sssssssssssyhhdm
sssssy.......................--------------:hmmmmmmos++:---------/sssyyhdmN
ssssso......................--------------:hmmmNNN Ndddysso:------:yNN
ysssss.....................--------------/dmNyy/m d``d/------------sN
Nmdhy-...................--------------ommmh`o/N /. smh+-----------:yN
N+...................------------/hmmss: `-//-.smmmmd+----------:h
d:..................----------:smmmmhy+oosyysdmmy+:. `.--------/d
h-................---------:smmmmmmmmmmmmmmmh/` `/s:-------s
ms:...............-------/ymmmmmmmmmmmmmmmd/ :d Ny/-----+m
myss/..............------ommmmmmmmmmmmmmmmd. :y Ns:---+m
Ndssssso-............----..odmmmmmmmmmmmmmmh:.` .sN d/--s
mysssssssh/................` -odmmmmmmmmmh+. `om h/+m
Ndyssssssym Ny-.............. `/sssso+:. `+m dN
NhssssssshN No:............/.` `+d
ysssssssd m+-..........+ddy/.` -om
ssssssym h/.........-oN Nmy+--` `-+dN
ssssydN Ny:........-h Nmdm
sssym m+....-..:h
symN No.../-/d
dN h:.:hyN
'';
config = ''
loadmodule "extensions/chm_adminonly";
loadmodule "extensions/chm_nonotice";
loadmodule "extensions/chm_operonly";
loadmodule "extensions/chm_sslonly";
#loadmodule "extensions/chm_operpeace";
#loadmodule "extensions/createauthonly";
loadmodule "extensions/extb_account";
loadmodule "extensions/extb_canjoin";
loadmodule "extensions/extb_channel";
loadmodule "extensions/extb_combi";
loadmodule "extensions/extb_extgecos";
loadmodule "extensions/extb_hostmask";
loadmodule "extensions/extb_oper";
loadmodule "extensions/extb_realname";
loadmodule "extensions/extb_server";
loadmodule "extensions/extb_ssl";
loadmodule "extensions/extb_usermode";
#loadmodule "extensions/helpops";
#loadmodule "extensions/hurt";
loadmodule "extensions/ip_cloaking_4.0";
#loadmodule "extensions/ip_cloaking";
#loadmodule "extensions/m_extendchans";
#loadmodule "extensions/m_findforwards";
#loadmodule "extensions/m_identify";
#loadmodule "extensions/m_locops";
#loadmodule "extensions/no_oper_invis";
loadmodule "extensions/sno_farconnect";
loadmodule "extensions/sno_globalnickchange";
loadmodule "extensions/sno_globaloper";
#loadmodule "extensions/sno_whois";
loadmodule "extensions/override";
loadmodule "extensions/no_kill_services";
serverinfo {
name = "${config.networking.hostName}.alrest";
sid = "${info.sid}";
description = "${info.description}";
network_name = "akua";
};
listen {
host = "0.0.0.0";
port = 6667;
};
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 = 420;
sendq = 4 megabytes;
};
auth {
user = "*@*";
class = "users";
flags = exceed_limit;
};
channel {
default_split_user_count = 0;
};
privset "local_op" {
privs = oper:general, oper:privs, oper:testline, oper:kill, oper:operwall, oper:message,
usermode:servnotice, auspex:oper, auspex:hostname, auspex:umodes, auspex:cmodes;
};
privset "server_bot" {
/* extends: a privset to inherit in this privset */
extends = "local_op";
privs = oper:kline, oper:remoteban, snomask:nick_changes;
};
privset "global_op" {
extends = "local_op";
privs = oper:routing, oper:kline, oper:unkline, oper:xline,
oper:resv, oper:cmodes, oper:mass_notice, oper:wallops,
oper:remoteban;
};
privset "admin" {
extends = "global_op";
privs = oper:admin, oper:die, oper:rehash, oper:spy, oper:grant, oper:privs;
};
operator "Mara" {
user = "*@*";
password = "L/b5FCMZ1DUc2";
snomask = "+Zbfkrsuy";
flags = encrypted;
privset = "admin";
};
connect "kos-mos.alrest" {
host = "100.72.50.9";
send_password = "hunter2";
accept_password = "hunter2";
port = 6667;
class = "server";
flags = topicburst, autoconn;
};
connect "logos.alrest" {
host = "100.106.69.58";
send_password = "hunter2";
accept_password = "hunter2";
port = 6667;
class = "server";
flags = topicburst, autoconn;
};
connect "ontos.alrest" {
host = "100.66.226.109";
send_password = "hunter2";
accept_password = "hunter2";
port = 6667;
class = "server";
flags = topicburst, autoconn;
};
connect "pneuma.alrest" {
host = "100.120.235.118";
send_password = "hunter2";
accept_password = "hunter2";
port = 6667;
class = "server";
flags = topicburst, autoconn;
};
connect "services." {
host = "100.67.184.57";
send_password = "hunter2";
accept_password = "hunter2";
class = "server";
};
service {
name = "services.";
};
'';
openFilesLimit = 65536;
};
}