Smooth, hardware-accelerated video
Screen capture goes straight into the Mac’s hardware H.264 encoder (VideoToolbox), with an OpenH264 software fallback. Adaptive bitrate reacts to your network so the picture stays fluid when the connection isn’t.
OnaDesk streams your screen to any browser over end-to-end encrypted WebRTC, through a server you run. No accounts. No vendor in the middle. Nothing leaves your own server.
$ docker compose up -d ✔ caddy started ✔ server healthy ✔ coturn started $
Built from the ground up in Rust and Angular around one idea: the connection is between you and your machine, and nobody else needs to be involved.
Screen capture goes straight into the Mac’s hardware H.264 encoder (VideoToolbox), with an OpenH264 software fallback. Adaptive bitrate reacts to your network so the picture stays fluid when the connection isn’t.
Mouse and full keyboard injected on the host, so shortcuts and typing land where you expect.
Copy on one side, paste on the other. One switch turns it off.
Drop files onto the session. Names sanitized, no overwrites, written atomically, size-limited.
Peer-to-peer when possible, TURN relay (coturn, included) when networks get in the way.
The viewer is a web app, so there’s nothing to install on the controlling side: open a browser on a laptop, tablet or phone and enter a device ID. The same UI ships inside the native desktop app, which also hosts your Mac from the menu bar, starts at login and shows a clear “Connected” indicator.
The signaling server only introduces the two sides. Video, input, clipboard and files travel directly between them, encrypted, and the server never sees any of it.
Install the desktop app or run ondesk-agent. It generates an Ed25519 identity, registers a device ID and creates an access password.
Browse to your own OnaDesk address from anywhere. Enter the device ID and password. The password never crosses the wire.
Optionally require someone at the device to click Allow. Then the encrypted stream starts, peer-to-peer if the network allows.
Defense in depth, documented honestly, including the gaps, in a public threat model.
WebRTC DTLS-SRTP between host and viewer. The signaling server never touches your screen, keystrokes, clipboard or files.
Each host has an Ed25519 key. The server binds a device ID to the first key that registers it and refuses any other, so nobody can impersonate your machine.
HMAC challenge-response with single-use nonces, plus per-source lockout with exponential backoff so one attacker can’t lock you out.
An optional approval gate: a correct password isn’t enough. A native dialog at the device must be accepted, or it’s denied after 45 seconds.
A “Connected” indicator in the menu bar and a local activity log of connections, wrong passwords, lockouts and approvals.
Handshakes, sockets, connect attempts and registrations are limited per IP, so scanning for device IDs goes nowhere fast.
OnaDesk hasn’t had an independent security review yet. The full threat model, including known limitations, is shared with every early-access user. Read it before exposing OnaDesk to the internet.
Early-access users receive a Docker Compose bundle with Caddy (automatic TLS), the signaling server and coturn. A 2 vCPU / 2 GB VPS is plenty, and nothing runs on our infrastructure.
/metrics, status at /status, JSON logs/iceONADESK_* environment variables# from the bundle you receive with early access $ cd onadesk-deploy $ docker compose up -d caddy ✔ server ✔ coturn ✔ # then open your own address and connect https://desk.yourdomain.com
OnaDesk works and is tested on one Mac. It isn’t production-ready yet, and we’d rather tell you exactly why.
Like RustDesk, OnaDesk is self-hosted. The difference is scope and stack: a small Rust host, a viewer that runs in a plain browser, and a deliberately short list of security-sensitive moving parts. Unlike the commercial tools, there’s no company account or relay between you and your machine.
No. There are no “our servers”. You run the signaling server. Media is end-to-end encrypted between host and viewer and goes direct, or through your own TURN relay when needed.
The host currently runs on macOS (hardware H.264 encoding, with a software fallback). The viewer works in any modern browser, including phones and tablets. Windows is next; Linux follows.
It’s built with that in mind (device-bound keys, challenge-response auth, rate limits, optional approval) but it hasn’t had an independent audit, and it has so far only had limited testing on real networks (one deployment, one host). Put it behind TLS, use a long password and turn on approval for attended machines.
Early-access pricing and licence terms haven’t been set yet and will be shared when early access opens. Because you run it on your own server, there’s no hosted service of ours in the loop, and a small VPS is all the infrastructure you need.
Run your own remote desktop. Your server, your keys, your screen.