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


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.2.0.tar.gz (19.1 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.2.0.tar.gz.

File metadata

File hashes

Hashes for windows_remote_desktop_dashboard-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6d1ee712075202bacf1966d9e4ab3621c00517d7f3b1ac2bc5ef15247f31744c
MD5 0ff4f1d5d3dd533d0489a33414fa85f6
BLAKE2b-256 207b8fe148128adb4bb5a226d440e1e11185c90221bd7e960b85ffb36cfe90d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for windows_remote_desktop_dashboard-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 176ae04e54747769f19a9da69a6465097ad5b03ae7893fbbc46b416699525134
MD5 0512209fe10607a7e51be11485b20ad9
BLAKE2b-256 fe7b1c45d54326394e64de78c1b4dd93c1d5cc06158139497088763c40eaac5b

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