OpenDesk is a self-hosted control plane around official RustDesk clients and
OSS hbbs/hbbr. It provides the admin console, inventory, address books,
enrollment, deployment scripts, health probes, backups, and audit log. RustDesk
still owns transport. OpenDesk dashboard roles do not grant or deny sessions.
Use official signed RustDesk apps. This repository does not vendor RustDesk server or client source. Organization-signed Windows installers are optional; see Install.
Docker, same host, plain HTTP. Do not publish this on the internet. The first build can take several minutes.
git clone https://github.com/lazerusrm/OpenDesk.git
cd OpenDesk
bash scripts/fetch-rustdesk-server.sh --yes --start
docker compose --profile rustdesk-server exec hbbs cat /root/id_ed25519.pubOpen http://127.0.0.1:8080/setup. Username is admin.
- Public URL and API:
http://127.0.0.1:8080 - ID server and relay:
127.0.0.1 - Paste the public key (or leave it empty and add it later under Settings)
Without --yes, the fetch script asks whether to pull official hbbs/hbbr
(AGPL, from RustDesk, not this tree). Default is no. Compose without
--profile rustdesk-server starts OpenDesk only.
A client-token HMAC key is written next to SQLite when
OPENDESK_CLIENT_TOKEN_HMAC_KEY is unset. Rotating it invalidates official-client
login tokens.
Production (loopback + TLS + public relay hostname) is in Install OpenDesk.
Toolchain is Rust 1.88 (rust-toolchain.toml). Server-rendered UI (Axum,
Askama, SQLite).
export OPENDESK_COOKIE_SECURE=false
OPENDESK_LISTEN_ADDR=127.0.0.1:8080 cargo runcargo test is the developer suite, not part of install.
Report-only migration review uses opendesk-migration-dry-run. It accepts a
sanitized JSON export and never imports or mutates state. See the
operations runbook.