{ 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" "AAAAC3NzaC1lZDI1NTE5AAAAIIPztDjwgB3xCza5+p5z1jpGVYoVQNl3fqD69pPCm0NA" ]; }; signal = { enable = true; relayHosts = [ "rustdesk.blunkall.us:21117" ]; extraArgs = [ "-k" "AAAAC3NzaC1lZDI1NTE5AAAAIIPztDjwgB3xCza5+p5z1jpGVYoVQNl3fqD69pPCm0NA" ]; }; }; system.stateVersion = "24.05"; }; }; }; }