nix-config/configs/nixos/soju.nix

35 lines
936 B
Nix

{
inputs,
config,
pkgs,
lib,
...
}: let
domain = "irc.venberg.xyz";
port = 6697;
certDir = config.security.acme.certs.${domain}.directory;
in {
security.acme.certs.${domain} = {
reloadServices = ["soju.service"];
group = config.services.nginx.group;
};
# webserver for http challenge
services.nginx.virtualHosts.${domain} = {
forceSSL = true;
useACMEHost = domain;
locations."/.well-known/".root = "/var/lib/acme/acme-challenge/";
};
networking.firewall.allowedTCPPorts = [port 80];
services.soju = {
enable = true;
hostName = domain;
listen = [":${builtins.toString port}"];
tlsCertificate = "/run/credentials/soju.service/cert.pem";
tlsCertificateKey = "/run/credentials/soju.service/key.pem";
enableMessageLogging = true;
};
systemd.services.soju.serviceConfig.LoadCredential = [
"cert.pem:${certDir}/cert.pem"
"key.pem:${certDir}/key.pem"
];
}