Self-host CortenDesk
v1.15.0RustDesk console with bundled server and browser client
- Stars
- 188
- Ports
- 8080 (HTTP console and client API), 21115 (NAT test), 21116 (Signalling (TCP and UDP)), 21117 (Relay), 21118 (WebSocket ID endpoint for web client), 21119 (WebSocket relay endpoint for web client)
- Requires
- MySQL/MariaDB, Nginx + php-fpm
ghcr.io/marcpope/cortendeskWhat is CortenDesk?
CortenDesk provides a self-hosted web console for managing RustDesk deployments. It packages the ID server, relay, and a browser-based remote desktop client into one Docker container. The console lets administrators track device fleets with live presence, organize machines into groups, and control which users can access which devices. Policies can be pushed to endpoints over the heartbeat channel. The system records session activity, file movements, and login events, with configurable retention. It supports OpenID Connect identity providers, time-based one-time passwords, and role-based delegation. A REST API enables automation, while email handles invitations and password recovery. Backups run automatically and can be copied to external storage. Standard RustDesk clients work without changes by pointing at the console's API endpoint. The software runs on PHP 8.4 with MySQL or MariaDB, either in Docker or on a traditional server stack. It is released under the AGPL-3.0-only license with no commercial tier.
Should you self-host CortenDesk?
CortenDesk scores 50/100 on selfhost.directory (how scoring works) and ranks #17 of 22 in Remote Desktop. It has 188 GitHub stars.
It shipped 10 stable releases in the past year. The latest, v1.15.0, came out on 21 October 2026. New versions land roughly every 1 days.
Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in PHP.
Its closest alternative on selfhost.directory is rustdesk (92/100, 127 313 stars). It scores higher overall, so compare the two before you pick. See CortenDesk vs rustdesk side by side.
Features
- Address books
- Audit Logs
- Automated Backups
- Automation API
- Dashboard with live stats
- Delegated administration
- Device Fleet Management
- Device policies (strategies)
- Email invitations and password reset
- In-browser remote desktop clientBest experienced in Chrome/Edge; works over plain HTTP with H.264 fallback
- OIDC Single Sign-On
- RustDesk client API compatibility
- Scoped access control
- Server access control
- Two-factor authentication (TOTP)
CortenDesk README
FAQ
Is the browser client a security hole?
It obeys the same rules as any other client. Access scoping applies, and permissions are enforced by the device — a policy that disables file transfer disables it in the browser too.
What can the browser client do?
View and control a machine, move files both ways, switch monitors, send Ctrl+Alt+Del, and pass the clipboard. It is a real implementation of the RustDesk protocol, not a limited viewer.
When should I use the browser client?
Normally you should not — use the official RustDesk clients. The browser client is for times you cannot install one: a locked-down machine, a borrowed or public computer, or an urgent connection from somewhere unfamiliar.
Will it manage devices I already have?
Yes. Point existing clients at it and they register themselves on the next heartbeat. There is also an importer for migrating from lejianwen/rustdesk-api, keeping users, devices, address books and history.
What do I need to run it?
Docker and a MySQL or MariaDB database — the image includes the RustDesk server. A manual PHP 8.4 install is also possible, and that route does need a RustDesk server you run separately.
Is it affiliated with RustDesk?
No. It is an independent project built against the open-source server and the documented client API.
What does it cost?
Nothing. It is AGPL-3.0, with no paid tier, no licence key and no feature held back. Self-hosted means you run it and you own the data.
Do I need a RustDesk Pro license?
No. CortenDesk ships its own AGPL server (hbbs/hbbr) in the same container and works with the standard RustDesk client. There is no license to buy and nothing to activate.
Do I need a modified client?
No. CortenDesk implements the HTTP API that stock RustDesk clients already speak. You set the API Server field in a normal client.
Does this replace the RustDesk server?
Yes, since version 1.5 the Docker image ships hbbs and hbbr (CortenDesk Server, a fork with fixes) so one container is the whole deployment. You can also use your own servers by setting CORTENDESK_EMBEDDED_SERVER=false.
More in Remote Desktop
docker-chromiumSelf-hosted, open-source container that streams a full Chromium desktop to your browser via HTTPS on port 3001, with optional GPU acceleration and multi-arch support.
docker-webtopOpen-source, self-hosted Docker images running full Linux desktops (Alpine, Ubuntu, Fedora, Arch, Debian) in your browser via Selkies.
Foundation SunshineOpen-source, self-hosted Windows game-streaming host (an enhanced Sunshine fork) that streams PC games to Moonlight clients with HDR10, Dolby Vision and virtual displays.
GuacamoleThe open-source guacd proxy daemon behind Apache Guacamole: self-hosted remote desktop access to RDP, VNC, SSH, telnet and Kubernetes hosts from any browser.
KasmVNCSelf-hosted, open-source web remote desktop: streams a Linux session to any browser over WebSocket or WebRTC, with DLP controls, multi-user permissions, and a REST API.
kde-in-dockerKID runs KDE Plasma in your browser via Docker, VNC, and noVNC. Ready-made images for base KDE, Firefox, Adobe Acrobat, Motrix, and Wine.
MeshCentralSelf-hosted, open-source remote device management web site: run your own Node.js server with web remote desktop, shell and file transfer for Windows, Linux and macOS.
Nekon.eko runs a Linux desktop in Docker and streams it via WebRTC, letting multiple people browse together, host watch parties, or access web apps remotely from any device.
neko-roomsSelf-hosted room management system for n.eko collaborative browser, a rabb.it alternative that lets you create and manage virtual browser rooms via Docker.
pdagentA Telegram bot you host yourself to control a Windows PC from anywhere, with AI automation, screen scraping, browser-based remote desktop, and developer tool hooks.
reminalreminal is a self-hosted, open-source tool that streams windows, desktops, and terminals to any browser with end-to-end encryption and no open ports.
Remmina (LinuxServer.io)Self-hosted Docker image for Remmina, a GTK remote desktop client supporting multiple protocols via HTTPS on port 3001 with optional GPU acceleration.






0 comments