Initial commit
This commit is contained in:
88
electron-agent/README.md
Normal file
88
electron-agent/README.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# RemoteLink Agent
|
||||
|
||||
The RemoteLink Agent is an Electron-based desktop application that enables remote desktop control. It runs in the system tray and allows users to generate session codes for remote access.
|
||||
|
||||
## Features
|
||||
|
||||
- System tray integration with quick access menu
|
||||
- Session code generation (6-digit codes, 10-minute expiry)
|
||||
- Screen capture using Electron's desktopCapturer
|
||||
- WebRTC peer-to-peer connections
|
||||
- Multi-monitor support
|
||||
- Cross-platform (Windows, macOS, Linux)
|
||||
|
||||
## Development Setup
|
||||
|
||||
```bash
|
||||
# Navigate to the agent directory
|
||||
cd electron-agent
|
||||
|
||||
# Install dependencies
|
||||
npm install
|
||||
|
||||
# Run in development mode
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
```bash
|
||||
# Build for all platforms
|
||||
npm run build
|
||||
npm run package
|
||||
|
||||
# Platform-specific builds
|
||||
npm run package:win # Windows
|
||||
npm run package:mac # macOS
|
||||
npm run package:linux # Linux
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
electron-agent/
|
||||
├── src/
|
||||
│ ├── main/ # Main process (Node.js)
|
||||
│ │ └── index.ts # Tray, IPC handlers, WebRTC
|
||||
│ ├── preload/ # Preload scripts (bridge)
|
||||
│ │ └── index.ts # Exposes safe APIs to renderer
|
||||
│ └── renderer/ # Renderer process (UI)
|
||||
│ └── index.html # Agent UI
|
||||
├── assets/ # Icons and images
|
||||
└── package.json
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The agent needs to be configured with an access key from the RemoteLink web dashboard:
|
||||
|
||||
1. Register/login at the web dashboard
|
||||
2. Navigate to Machines > Add Machine
|
||||
3. Copy the generated access key
|
||||
4. Paste it in the agent's setup screen
|
||||
|
||||
## API Endpoints
|
||||
|
||||
The agent communicates with these server endpoints:
|
||||
|
||||
- `POST /api/agent/register` - Register machine with server
|
||||
- `POST /api/agent/heartbeat` - Maintain online status
|
||||
- `POST /api/agent/session-code` - Generate session codes
|
||||
- `POST /api/signal` - WebRTC signaling
|
||||
|
||||
## Security
|
||||
|
||||
- Access keys are unique per machine
|
||||
- Session codes expire after 10 minutes
|
||||
- All WebRTC connections are encrypted
|
||||
- No screen data passes through servers (P2P)
|
||||
|
||||
## Input Simulation
|
||||
|
||||
For full remote control, the agent uses native libraries:
|
||||
|
||||
- **Windows**: `robotjs` or `nut.js`
|
||||
- **macOS**: Requires Accessibility permissions
|
||||
- **Linux**: X11 or Wayland protocols
|
||||
|
||||
Note: Input simulation is not implemented in this demo version.
|
||||
Reference in New Issue
Block a user