Files
Olympus/system-config/services/containers/rustdesk/default.nix
2025-04-06 14:26:14 -05:00

72 lines
2.0 KiB
Nix

{ config, lib, ... }: {
options.sysconfig.opts.virtualization.rustdesk.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.sysconfig.opts.virtualization.rustdesk.enable {
networking = {
firewall.allowedTCPPorts = [ 21115 21116 21117 ];
firewall.allowedUDPPorts = [ 21116 ];
};
containers.rustdesk = {
autoStart = true;
privateNetwork = true;
hostAddress = "192.168.100.10";
localAddress = "192.168.100.21";
forwardPorts = [
{
containerPort = 21115;
hostPort = 21115;
}
{
containerPort = 21116;
hostPort = 21116;
}
{
containerPort = 21117;
hostPort = 21117;
}
];
bindMounts = {
"/var/lib/key" = {
hostPath = "/ssd1/Rustdesk/key";
isReadOnly = false;
};
};
config = {
services.rustdesk-server = {
enable = true;
openFirewall = true;
relay = {
enable = true;
extraArgs = [
"-k"
"$(cat /var/lib/key/id_ed25519.pub)"
];
};
signal = {
enable = true;
relayHosts = [ "rustdesk.blunkall.us:21117" ];
extraArgs = [
"-k"
"$(cat /var/lib/key/id_ed25519.pub)"
];
};
};
system.stateVersion = "24.05";
};
};
};
}