Skip to main content

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\data by default on Windows.
  • One active reservation per machine.
  • Auto-release of expired reservations on refresh.
  • Direct local mstsc.exe launch plus downloadable .rdp fallback.
  • 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. 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 even 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.

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. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

windows_remote_desktop_dashboard-0.1.9.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file windows_remote_desktop_dashboard-0.1.9.tar.gz.

File metadata

File hashes

Hashes for windows_remote_desktop_dashboard-0.1.9.tar.gz
Algorithm Hash digest
SHA256 f1bf79247276a8504b7b27b9f7d98f18703b28d2255984ad0d552de014f46010
MD5 3107869815a97007dc5941628ef9fddb
BLAKE2b-256 6f6f2c10a203b1fa4a1bc37dd4f554619e1aa84d554316cf7c521cd0654a6f86

See more details on using hashes here.

File details

Details for the file windows_remote_desktop_dashboard-0.1.9-py3-none-any.whl.

File metadata

File hashes

Hashes for windows_remote_desktop_dashboard-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 eb2f290a5914aafb9dd5d907fdd5786ed0a7e11208797eda38a57be1dd72fecb
MD5 8aff494ac5e9acd2b34aa5ab94fada39
BLAKE2b-256 c6ef2682e42ed148b0c61b13a7023c558dfaf96f6d9af8635b24f45d5cde0d3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page