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


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

File metadata

File hashes

Hashes for windows_remote_desktop_dashboard-0.1.7.tar.gz
Algorithm Hash digest
SHA256 ffe45f5e04ade2a89917deeaaa701516da77663b2276c5be4a9e904d4484cc9e
MD5 c8dffb28acc4e067f7bc6e1f49eb9fd1
BLAKE2b-256 0b6ddacce21f4b20a3d38a8a0c8c0031e9b9537cdecf4db4c28e41a8dc5fa30e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for windows_remote_desktop_dashboard-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 575f2cf12bca826a3b57cf2ff4c0deff26d308a633329cde01c99c313c6f7dda
MD5 b195be360fc8ca1dffac8bd826a3ddeb
BLAKE2b-256 854e831460ff31dc842e04ecdb6ad2316233dab2e8c2267d1d906cbf51b09a6a

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