BLACKLOG // package repository

RustDesk 1.4.9, preconfigured for help.blacklog.net  current: 1.4.9

Debian / Ubuntu (apt)

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

Fedora / RHEL (dnf)

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

Arch (pacman)

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.

NixOS

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.

Windows

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).

macOS

Install the dmg for your CPU, then run macos-configure.sh once.

Browse

downloads/ · apt/ · rpm/ · arch/ · signing key