Skip to content

Repository files navigation

OpenDesk

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.

Lab 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.pub

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

Development

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 run

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

Documents

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages