A unified, self-hosted, RustDesk-compatible server with integrated API, Web Admin, and Web Client.
- Rust Server (hbbs + hbbr): ID server and relay server
- Go API Server: User management, authentication, address book
- Web Admin (
admin-ui/): Vue 3 management dashboard with redesigned UI - Web Client: Browser-based remote desktop client
- s6-overlay: Process supervision and automatic restarts
The admin panel has been fully reworked (2026-06).
Tech stack: Vue 3.5, Vite 6, Element Plus 2.8, Pinia, Vue Router, Axios, Sass
Current state:
- Light / Dark / Auto theme modes with CSS variables design tokens
- Redesigned sidebar navigation (Dashboard, Devices, Access, Monitoring, Security, Server)
- Unified table component (
DataTable) across all views - Unified dialog/drawer components (
AppDialog,AppDrawer) - Shared filter bar (
FilterBar) on monitoring pages - Dashboard with Quick Connect panel
- Connection pulse status indicator
- Redesigned login/register screens
- Danger zone for server commands
- Locales: English, Russian, Chinese (Simplified)
- Custom client builder, OAuth/SSO, API tokens
git clone https://github.com/bashrusakh/DeskForge.git
cd DeskForgeEdit docker/docker-compose.yml and replace:
your-serverwith your server's IP or domainyour-secret-jwt-key-change-thiswith a secure random string
cd docker
docker compose up -ddocker compose logs | grep "Public Key"Copy the key from id_ed25519.pub.
Open http://your-server:21114/admin/ in your browser.
Default credentials:
- Username:
admin - Password: Check Docker logs for the generated password
In your RustDesk client settings:
- ID Server:
your-server:21116 - Relay Server:
your-server:21117 - API Server:
http://your-server:21114 - Key: Paste the public key from step 4
| Variable | Description | Default |
|---|---|---|
RELAY |
Relay server address | relay.example.com |
ENCRYPTED_ONLY |
Only allow encrypted connections | 0 |
MUST_LOGIN |
Require login to connect | N |
TZ |
Timezone | UTC |
RUSTDESK_API_RUSTDESK_ID_SERVER |
ID server address | - |
RUSTDESK_API_RUSTDESK_RELAY_SERVER |
Relay server address | - |
RUSTDESK_API_RUSTDESK_API_SERVER |
API server URL | - |
RUSTDESK_API_KEY_FILE |
Path to public key file | /data/id_ed25519.pub |
RUSTDESK_API_JWT_KEY |
JWT secret key | - |
| Port | Protocol | Description |
|---|---|---|
| 21114 | TCP | API Server / Web Admin |
| 21115 | TCP | NAT type test |
| 21116 | TCP/UDP | ID Server |
| 21117 | TCP | Relay Server |
| 21118 | TCP | WebSocket |
| 21119 | TCP | Web Server |
cd docker
docker compose buildAGPL-3.0 — See LICENSE for details.
- rustdesk/rustdesk-server — Original RustDesk server
- lejianwen/rustdesk-api — Go API server
- lejianwen/rustdesk-api-web — Original web admin interface