2024-01-31 21:59:11 +01:00
|
|
|
{ config, ... }:
|
2024-01-31 23:22:55 +01:00
|
|
|
let
|
|
|
|
user = config.services.pounce.user;
|
|
|
|
|
|
|
|
# Helper template for networks
|
|
|
|
makeNetworkConfig = host: port: join: secret: {
|
|
|
|
content = ''
|
|
|
|
sasl-plain = prescientmoon:${config.sops.placeholder.${secret}}
|
|
|
|
nick = prescientmoon
|
|
|
|
host = ${host}
|
|
|
|
port = ${toString port}
|
|
|
|
join = ${join}
|
|
|
|
'';
|
|
|
|
owner = user;
|
|
|
|
};
|
2024-01-31 21:59:11 +01:00
|
|
|
in
|
|
|
|
{
|
2024-01-31 23:22:55 +01:00
|
|
|
# Generate cert
|
2024-01-31 21:59:11 +01:00
|
|
|
security.acme.certs."wildcard-irc.moonythm.dev" = {
|
2024-02-24 08:26:09 +01:00
|
|
|
owner = user;
|
2024-01-31 23:22:55 +01:00
|
|
|
group = user;
|
2024-01-31 21:59:11 +01:00
|
|
|
domain = "*.irc.moonythm.dev";
|
|
|
|
};
|
|
|
|
|
2024-01-31 23:22:55 +01:00
|
|
|
# Handle secrets using sops
|
2024-01-31 21:59:11 +01:00
|
|
|
sops.secrets.tilde_irc_pass.sopsFile = ../secrets.yaml;
|
|
|
|
sops.templates."pounce-tilde.cfg" = makeNetworkConfig "eu.tilde.chat" 6697 "#meta" "tilde_irc_pass";
|
2024-01-31 23:22:55 +01:00
|
|
|
|
|
|
|
# Configure pounce
|
2024-01-31 22:09:04 +01:00
|
|
|
services.pounce = {
|
|
|
|
enable = true;
|
|
|
|
externalHost = "irc.moonythm.dev";
|
2024-01-31 22:39:13 +01:00
|
|
|
bindHost = "irc.moonythm.dev";
|
2024-01-31 22:09:04 +01:00
|
|
|
certDir = "/var/lib/acme/wildcard-irc.moonythm.dev";
|
|
|
|
networks.tilde.config = config.sops.templates."pounce-tilde.cfg".path;
|
|
|
|
};
|
2024-01-31 21:59:11 +01:00
|
|
|
}
|