2022-07-30 15:38:22 +02:00
|
|
|
# Have a good quality voice chat
|
2024-07-28 21:08:02 +02:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
2022-07-30 15:38:22 +02:00
|
|
|
let
|
|
|
|
cfg = config.my.services.mumble-server;
|
2025-01-26 00:34:16 +01:00
|
|
|
inherit (config.networking) domain;
|
2022-07-30 15:38:22 +02:00
|
|
|
in
|
|
|
|
{
|
|
|
|
options.my.services.mumble-server = {
|
2025-01-26 00:34:16 +01:00
|
|
|
enable = lib.mkEnableOption "mumble server service";
|
2022-07-30 15:38:22 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
|
|
services.murmur = {
|
|
|
|
enable = true;
|
2023-01-08 00:53:21 +01:00
|
|
|
openFirewall = true;
|
2022-07-30 15:38:22 +02:00
|
|
|
welcometext = "Welcome to the Mumble-Server!";
|
2025-01-26 00:34:16 +01:00
|
|
|
sslCert = "${config.security.acme.certs.${domain}.directory}/fullchain.pem";
|
|
|
|
sslKey = "${config.security.acme.certs.${domain}.directory}/key.pem";
|
2022-07-30 15:38:22 +02:00
|
|
|
};
|
|
|
|
|
2025-01-26 00:34:16 +01:00
|
|
|
# create a separate certificate for the mumble server
|
|
|
|
security.acme = {
|
|
|
|
certs.${domain} = {
|
|
|
|
reloadServices = [ "murmur" ];
|
|
|
|
group = "caddyandmurmur";
|
|
|
|
};
|
2022-07-30 15:38:22 +02:00
|
|
|
};
|
2025-01-26 00:34:16 +01:00
|
|
|
users.groups.caddyandmurmur.members = [
|
|
|
|
"caddy"
|
2024-07-28 21:08:02 +02:00
|
|
|
"murmur"
|
|
|
|
];
|
2023-06-19 21:58:45 +02:00
|
|
|
|
2025-01-26 00:34:16 +01:00
|
|
|
my.services = {
|
|
|
|
acme.enable = true;
|
|
|
|
prometheus.rules = {
|
|
|
|
mumble_not_running = {
|
|
|
|
condition = ''systemd_unit_state{name="murmur.service", state!="active"} > 0'';
|
|
|
|
description = "{{$labels.host}} should have a running {{$labels.name}}";
|
|
|
|
};
|
2023-06-19 21:58:45 +02:00
|
|
|
};
|
|
|
|
};
|
2022-07-30 15:38:22 +02:00
|
|
|
};
|
|
|
|
}
|