New
- Release ID. The device page has a Release ID button. It frees the device's ID on the bundled ID server, so a reinstalled machine can register the same ID again. Before, that meant editing hbbs's database with the server stopped. Needs write access to devices. Each release goes in the audit log. (cortendesk-server #19, requested by @shahidullahr)
- Server key from a Docker secret.
CORTENDESK_PRIVATE_KEY_FILE=/run/secrets/rustdesk_keyinstalls that private key on every start. The public key is derived from it. (#138) - Direct UDP and IPv6 connections. The bundled CortenDesk Server 1.4.0 supports UDP hole punching and IPv6 peer-to-peer for RustDesk 1.5 clients with
enable-udp-punchorenable-ipv6-punchon. Publish UDP 21116 for it.UDP_PUNCH=N/IPV6_PUNCH=Nturn them off.
Fixes
- The public key is always derived from the private key. A stale or mismatched
id_ed25519.pubis rewritten at start with a warning, and Settings → Server shows the bundled server's real key, read-only. Before, a stale.pubcould make the console hand out the wrong key, and clients got "Key mismatch". (#137) - The web client only sends address-book sign-in requests to the console's own origin.
Notes
- Bundles CortenDesk Server 1.4.0: key exchange version 1 for RustDesk 1.5, per-IP registration limits as settings (
MAX_NEW_IDS_PER_IP,MAX_REGISTER_BURST_PER_IP), relay and memory fixes. See its release notes. - The bundled hbbs now stops with an error if
id_ed25519exists but can't be read or isn't a valid key. Before, it made a new public key and every client failed with "Key mismatch". - No migrations.
docker pull marcpope/cortendesk:1.20.0
docker pull ghcr.io/marcpope/cortendesk:1.20.0Feeling generous? Sponsor this project: https://github.com/sponsors/marcpope/