RustDesk 1.4.9, preconfigured for help.blacklog.net current: 1.4.9
curl -fsSL https://pkgs.blacklog.net/blacklog-repo.key | sudo tee /etc/apt/keyrings/blacklog.asc echo "deb [signed-by=/etc/apt/keyrings/blacklog.asc] https://pkgs.blacklog.net/apt stable main" | sudo tee /etc/apt/sources.list.d/blacklog.list sudo apt update && sudo apt install rustdesk rustdesk-blacklog-config
sudo tee /etc/yum.repos.d/blacklog.repo <<'EOF' [blacklog] name=Blacklog RustDesk baseurl=https://pkgs.blacklog.net/rpm enabled=1 gpgcheck=0 repo_gpgcheck=1 gpgkey=https://pkgs.blacklog.net/blacklog-repo.key EOF sudo dnf install rustdesk rustdesk-blacklog-config
sudo tee -a /etc/pacman.conf <<'EOF' [blacklog] SigLevel = Optional TrustAll Server = https://pkgs.blacklog.net/arch EOF sudo pacman -Sy rustdesk rustdesk-blacklog-config
If no rustdesk package is listed for a release, upstream skipped the Arch build — install rustdesk-bin from the AUR and just add rustdesk-blacklog-config.
No package repo needed — rustdesk-flutter is in nixpkgs (the variant the binary cache carries). Point it at the Blacklog server either once from the shell:
environment.systemPackages = [ pkgs.rustdesk-flutter ]; # configuration.nix, then nixos-rebuild switch rustdesk --option custom-rendezvous-server help.blacklog.net rustdesk --option relay-server help.blacklog.net rustdesk --option key kbvqsWFhZphFNcNOerLRtDCGVgD2ccSsTkE23JVXvxo=
…or fully declaratively (unattended-access daemon + seeded config for every user), as a NixOS module:
{ pkgs, lib, ... }:
let
cfg = pkgs.writeText "RustDesk2.toml" ''
rendezvous_server = 'help.blacklog.net'
nat_type = 1
serial = 0
[options]
custom-rendezvous-server = 'help.blacklog.net'
relay-server = 'help.blacklog.net'
api-server = 'https://help.blacklog.net'
key = 'kbvqsWFhZphFNcNOerLRtDCGVgD2ccSsTkE23JVXvxo='
'';
users = [ "alice" ]; # who gets the seeded client config
in {
environment.systemPackages = [ pkgs.rustdesk-flutter ];
systemd.services.rustdesk = {
description = "RustDesk remote desktop service";
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.rustdesk-flutter}/bin/rustdesk --service";
Restart = "on-failure";
PIDFile = "/run/rustdesk.pid";
};
};
# tmpfiles `C` copies only if the file does not exist yet, so later GUI
# changes are kept.
systemd.tmpfiles.rules = [
"d /root/.config/rustdesk 0700 root root -"
"C /root/.config/rustdesk/RustDesk2.toml 0600 root root - ${cfg}"
] ++ lib.concatMap (u: [
"d /home/${u}/.config/rustdesk 0700 ${u} ${u} -"
"C /home/${u}/.config/rustdesk/RustDesk2.toml 0600 ${u} ${u} - ${cfg}"
]) users;
}
On a Wayland desktop, incoming control works once a user is logged in (PipeWire portal); the login screen is not reachable.
Self-configuring installer (the server address is embedded in the filename — do not rename it):
rustdesk-host=help.blacklog.net,key=….exe
Fleet deployment: install-blacklog-rustdesk.ps1 (silent install + config, run as admin).
Install the dmg for your CPU, then run macos-configure.sh once.
downloads/ · apt/ · rpm/ · arch/ · signing key