# irc.nix { config, pkgs, ... }: { services.ngircd = { enable = true; package = pkgs.ngircd.overrideAttrs (oldAttrs: { configureFlags = builtins.filter (f: f != "--with-pam") oldAttrs.configureFlags; buildInputs = builtins.filter (i: i != pkgs.pam) oldAttrs.buildInputs; }); # This becomes ngircd.conf verbatim. config = '' [Global] Name = irc.local AdminInfo1 = Test IRC AdminInfo2 = Local instance MaxNickLength = 16 Listen = 127.0.0.1 Ports = 6667 [Channel] Name = #linux Topic = Local test ''; }; services.thelounge = { enable = true; port = 9000; extraConfig = { public = false; reverseProxy = false; # no nginx for local testing defaults = { name = "localnet"; host = "127.0.0.1"; port = 6667; tls = false; nick = "test%%%"; # <= 9 chars incl. suffix join = "#linux"; }; lockNetwork = true; }; }; networking.firewall.allowedTCPPorts = [9000 6667]; }