Python web dashboard for reserving and launching Windows Remote Desktop machines.
Project description
Windows Remote Desktop Dashboard
Python-based browser dashboard for reserving shared RDP machines.
Install From Source
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install .
$env:ADMIN_PIN = "change-me"
$env:RDP_DOMAIN = "FU"
windows-remote-desktop-dashboard
Open http://127.0.0.1:8000.
Development
pip install -r requirements.txt
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
Features
- Screenshot-style dark dashboard with machine list, details panel, admin modal, and audit log.
- SQLite persistence under
%LOCALAPPDATA%\WindowsRemoteDesktopDashboard\databy default on Windows. - One active reservation per machine.
- Auto-release of expired reservations on refresh.
- Direct local
mstsc.exelaunch plus downloadable.rdpfallback. - Open RDP automatically reserves the machine for the current dashboard user.
- Optional Windows Firewall enforcement can restrict direct RDP to the reserver's client IP.
- Automatic remote session refresh with
quser /server:<host>when Windows permissions allow it. - Admin PIN gate for adding machines.
- Admin unlock once per browser session, with single and bulk delete/release/session refresh controls.
The default admin PIN is admin if ADMIN_PIN is not set.
Set RDD_DATA_DIR to choose where the SQLite database is stored. The app binds to 0.0.0.0 by default so one shared dashboard machine can serve multiple laptops on the network. Browser launch is controlled separately by RDD_BROWSER_HOST and defaults to 127.0.0.1, so the app opens http://127.0.0.1:8000 locally. The RDP Login button launches C:\Windows\System32\mstsc.exe on the Windows computer running this app.
Remote session checks run after the dashboard loads so slow or unreachable machines do not block the page. Set RDD_AUTO_REFRESH_SESSIONS=0 to disable background session checks.
Dashboard reservations prevent other dashboard users from opening the same machine. Windows Firewall enforcement is enabled by default for new installs and can be controlled from Admin with the RDP lock OFF/ON button. You can force it off before startup:
$env:RDD_ENFORCE_WINDOWS_FIREWALL = "0"
windows-remote-desktop-dashboard
Requirements for firewall enforcement:
- Run the dashboard on Windows with admin rights that can manage the target PCs.
- Enable PowerShell remoting/WinRM to the target machine hostnames.
- Users must open the dashboard using the server LAN hostname/IP, not
localhost, so the app can see their real client IP.
When a machine is reserved, the target PC's Remote Desktop inbound firewall rules are restricted to that reserver IP. Revoke/release/delete restores the Remote Desktop firewall rules to Any.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file windows_remote_desktop_dashboard-0.2.0.tar.gz.
File metadata
- Download URL: windows_remote_desktop_dashboard-0.2.0.tar.gz
- Upload date:
- Size: 19.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d1ee712075202bacf1966d9e4ab3621c00517d7f3b1ac2bc5ef15247f31744c
|
|
| MD5 |
0ff4f1d5d3dd533d0489a33414fa85f6
|
|
| BLAKE2b-256 |
207b8fe148128adb4bb5a226d440e1e11185c90221bd7e960b85ffb36cfe90d4
|
File details
Details for the file windows_remote_desktop_dashboard-0.2.0-py3-none-any.whl.
File metadata
- Download URL: windows_remote_desktop_dashboard-0.2.0-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
176ae04e54747769f19a9da69a6465097ad5b03ae7893fbbc46b416699525134
|
|
| MD5 |
0512209fe10607a7e51be11485b20ad9
|
|
| BLAKE2b-256 |
fe7b1c45d54326394e64de78c1b4dd93c1d5cc06158139497088763c40eaac5b
|