{ 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; } ]; config = { services.rustdesk-server = { enable = true; openFirewall = true; relay = { enable = true; #extraArgs = [ "" ]; }; signal = { enable = true; relayHosts = [ "rustdesk.blunkall.us:21117" ]; }; }; }; system.stateVersion = "24.05"; }; }; }