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. Set RDD_HOST=0.0.0.0 if one shared dashboard machine should serve multiple laptops on the network. The app still opens the local browser at http://127.0.0.1:8000 when it is bound to 0.0.0.0. The RDP Login button launches C:\Windows\System32\mstsc.exe on the Windows computer running this app.
Dashboard reservations prevent other dashboard users from opening the same machine. To also block direct native RDP outside this app, enable Windows Firewall enforcement from Admin with the RDP lock OFF/ON button. You can also default it on before startup:
$env:RDD_HOST = "0.0.0.0"
$env:RDD_ENFORCE_WINDOWS_FIREWALL = "1"
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.1.7.tar.gz.
File metadata
- Download URL: windows_remote_desktop_dashboard-0.1.7.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffe45f5e04ade2a89917deeaaa701516da77663b2276c5be4a9e904d4484cc9e
|
|
| MD5 |
c8dffb28acc4e067f7bc6e1f49eb9fd1
|
|
| BLAKE2b-256 |
0b6ddacce21f4b20a3d38a8a0c8c0031e9b9537cdecf4db4c28e41a8dc5fa30e
|
File details
Details for the file windows_remote_desktop_dashboard-0.1.7-py3-none-any.whl.
File metadata
- Download URL: windows_remote_desktop_dashboard-0.1.7-py3-none-any.whl
- Upload date:
- Size: 17.9 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 |
575f2cf12bca826a3b57cf2ff4c0deff26d308a633329cde01c99c313c6f7dda
|
|
| MD5 |
b195be360fc8ca1dffac8bd826a3ddeb
|
|
| BLAKE2b-256 |
854e831460ff31dc842e04ecdb6ad2316233dab2e8c2267d1d906cbf51b09a6a
|