Remote Desktop Dashboard — monitor machines and connect via Microsoft Windows App
Project description
Remote Desktop Dashboard
Browser-based dashboard to monitor and connect to ATC1–ATC10 machines. Replaces the legacy Remote Desktop Connection workflow with live status, machine locking, and one-click access via the Microsoft Windows App — no .rdp file download.
Features
- Live machine status (online/offline, users, MobaXterm, ETGui, cameras, COM tools)
- Connect opens Windows App directly (
ms-rd:/rdp://protocol — credential prompt in Windows) - Machine lock: when you connect, the machine is reserved under your name; Release or auto-timeout frees it
- WebSocket live dashboard updates
- Windows monitoring agent on each machine
Architecture
Browser ──Connect (protocol URI)──► Windows App ──RDP──► ATC machine
│ ▲
└── REST + WebSocket ◄──► Dashboard server ◄── agent reports
| Command | Purpose |
|---|---|
remote-desktop-dashboard |
Start server |
rdd-agent |
Windows monitoring agent |
remote-desktop-dashboard-seed |
Add machines to DB |
Quick start
pip install -e .
remote-desktop-dashboard-seed --file data\machines.example.json
remote-desktop-dashboard
- Enter Your name (used for locking).
- Optionally enter Windows login (
DOMAIN\user) — password is entered in Windows App. - Click Connect on a machine.
Windows App setup
- Install Windows App from Microsoft Store.
- Set it as the default app for Remote Desktop /
rdp://links (Windows Settings → Apps → Default apps). - When the browser asks to open a link, choose Windows App and allow the protocol.
Machine locking
| Action | Behavior |
|---|---|
| Connect | Locks machine under your name, opens Windows App |
| Release | Frees the machine for others |
| Heartbeat | Sent every 60s while you hold the lock |
| Auto-release | After ~7 min without heartbeat (RDD_LOCK_TIMEOUT_SECONDS + grace) |
| Leave page | Sends release beacon for your locks |
If someone else holds the lock, Connect is disabled and you see In use: name.
Configuration
| Variable | Default | Description |
|---|---|---|
RDD_DATABASE_URL |
sqlite:///./remote_desktop_dashboard.db |
Database |
RDD_HOST / RDD_PORT |
0.0.0.0 / 8080 |
Server bind |
RDD_LOCK_TIMEOUT_SECONDS |
300 |
Lock idle timeout |
RDD_USE_WINDOWS_APP |
true |
Prefer ms-rd: over rdp:// |
RDD_RDP_PORT |
3389 |
RDP port |
RDD_RDP_DEFAULT_DOMAIN |
(empty) | Prepended to username |
RDD_MACHINE_NAME |
— | Agent: ATC1…ATC10 |
RDD_SERVER_URL |
http://127.0.0.1:8080 |
Agent target |
Insert machines (ATC1–ATC10)
copy data\machines.example.json data\machines.json
# edit hostnames and IPs
remote-desktop-dashboard-seed --file data\machines.json
Agent on each ATC machine
set RDD_MACHINE_NAME=ATC1
set RDD_SERVER_URL=http://YOUR_SERVER:8080
rdd-agent --interval 30
API (connect & lock)
POST /api/v1/machines/ATC1/connect
{"operator": "Alice", "rdp_username": "DOMAIN\\alice", "use_hostname": true}
POST /api/v1/machines/ATC1/lock/heartbeat
{"operator": "Alice"}
POST /api/v1/machines/ATC1/lock/release
{"operator": "Alice"}
Response includes launch_uri (Windows App) and fallback_uri (rdp://).
Publish to PyPI
pip install build twine
python -m build
python -m twine upload dist/*
pip install remote-desktop-dashboard
remote-desktop-dashboard
License
MIT
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 remote_desktop_dashboard-2.0.1.tar.gz.
File metadata
- Download URL: remote_desktop_dashboard-2.0.1.tar.gz
- Upload date:
- Size: 22.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e348ee7acf86b6632666940b099f9c285f176b479db5f0229cf6ec7e67d6cde3
|
|
| MD5 |
8f1ea15f67091f38a28d4c6905ac550c
|
|
| BLAKE2b-256 |
c253066c1b25ec84d852e6ce75c5692d5263b9c5dde6442b5e9b57df378b4c19
|
File details
Details for the file remote_desktop_dashboard-2.0.1-py3-none-any.whl.
File metadata
- Download URL: remote_desktop_dashboard-2.0.1-py3-none-any.whl
- Upload date:
- Size: 30.5 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 |
92fe90feba537ce4b3b09f9904f94bc023ecd05558f1ba33f86e42879481663c
|
|
| MD5 |
bfb309e19bab2be0e0aec9f999484b94
|
|
| BLAKE2b-256 |
cdbba9cf153c74de4b391a20ac607fd38648b316fc810bbc240122953ccb1dac
|