How immense/remotely works
Remotely is a .NET remote-control and remote-scripting platform: operators use the server UI or browser viewer to manage devices, request sessions, and run scripts; agents and desktop clients connect back to the server. The graph highlights device connectivity, interactive control, scripting, management, and persistence. The README documents these product capabilities, while sampled source confirms selected startup, API, viewer, and logging behavior; unsampled subsystem wiring is therefore kept conservative.
Main entry points: DesktopHub.cs Desktop hub · Program.cs Device agent · AgentHubConnection.cs Agent connection · DesktopHubConnection.cs Desktop connection
Components 21
Server and management
- Management UI
Server/Components/Pages/DeviceDetails.razor.cs - Management APIs
Server/API/OrganizationManagementController.cs - Data service
Server/Services/DataService.cs - Application database
Server/Data/AppDb.cs - Agent hub
Server/Hubs/AgentHub.cs - Desktop hub
Server/Hubs/DesktopHub.cs - Viewer hub
Server/Hubs/ViewerHub.cs - Scripting APIs
Server/API/ScriptingController.cs - Script scheduling
Server/Services/ScriptScheduler.cs - Server logs
Server/Services/LogsManager.cs
Agent and scripting
- Device agent
Agent/Program.cs - Agent connection
Agent/Services/AgentHubConnection.cs - Script execution
Agent/Services/ScriptExecutor.cs
Desktop client
- Remote desktop app
Desktop.Win/Program.cs - Desktop connection
Desktop.Shared/Services/DesktopHubConnection.cs - Screen capture
Desktop.Win/Services/ScreenCapturerWin.cs - Remote input
Desktop.Win/Services/KeyboardMouseInputWin.cs
Browser viewer
- Browser viewer
Server/wwwroot/src/App.js - Viewer connection
Server/wwwroot/src/ViewerHubConnection.ts
Shared contracts
- Control messages
Shared/Models/Dtos/DtoWrapper.cs
Other components
- Operator
Connections 21
- Operator → Management UI: manages devices
- Management UI → Management APIs: requests management
- Management APIs → Data service: calls data service
- Data service → Application database: persists records
- Device agent → Agent connection: starts connection
- Agent connection → Agent hub: connects to
- Agent hub → Device agent: dispatches commands
- Scripting APIs → Agent hub: dispatches scripts
- Script scheduling → Scripting APIs: runs scheduled scripts
- Device agent → Script execution: executes scripts
- Remote desktop app → Desktop connection: starts client
- Desktop connection → Desktop hub: connects to
- Desktop hub → Screen capture: requests capture
- Desktop hub → Remote input: dispatches input
- Browser viewer → Viewer connection: connects through
- Viewer connection → Viewer hub: sends control
- Viewer hub → Desktop hub: relays session data
- Agent connection → Control messages: exchanges messages
- Desktop connection → Control messages: exchanges messages
- Viewer connection → Control messages: uses message types
- Operator → Browser viewer: controls device