Files
Termix/plugins/remote-desktop/README.md
T

69 lines
2.7 KiB
Markdown

# Remote Desktop
RDP, VNC and Telnet sessions in the browser, with clipboard, file transfer, recording and sharing.
## Features
- Connect to hosts over RDP, VNC or Telnet from any browser.
- Clipboard sync and file transfer through RDP drive redirection.
- Session recording and session sharing, when those plugins are on.
- Jump host support.
- Opens the Windows Remote Desktop client from the desktop app.
## Setup
This plugin needs guacd, the Apache Guacamole proxy that speaks RDP, VNC and Telnet. The Docker compose file runs it as its own `guacamole/guacd` container. This plugin never starts guacd itself.
Set where guacd runs with the guacd URL admin setting. The `GUACD_URL`, or `GUACD_HOST` and `GUACD_PORT`, environment variables override that setting.
Other environment variables:
| Variable | What it sets |
| ------------------------------ | --------------------------------------------------------------------------------- |
| `GUACD_TUNNEL_HOST` | The name guacd uses to reach Termix for a jump host tunnel. Defaults to `termix`. |
| `GUACD_RECORDING_PATH` | Where guacd writes recordings, as guacd sees it. |
| `GUACD_RECORDING_BACKEND_PATH` | The same folder, as Termix sees it. |
| `GUACD_DRIVE_PATH` | The root of each user's RDP drive folder on the guacd host. |
| `GUACAMOLE_ENCRYPTION_KEY` | The connection token key. Made from `JWT_SECRET` when not set. |
## Settings
### Admin
- Enable Remote Desktop: turn remote desktop on or off.
- guacd URL: where guacd runs, as `host:port`. Changes apply without a restart.
### User
- RDP defaults: color depth, resize method, wallpaper, font smoothing, audio, printing, drive redirection and clipboard. A host's own values win over these.
### Host
- RDP, VNC and Telnet: turn each protocol on and set its port.
- RDP security mode and Ignore certificate errors.
- guacd settings: every other guacd option.
- Remote desktop toolbar: show the toolbar in the session.
## Permissions
- `remote-desktop.sessions`: Let session sharing and recording reach your remote desktop sessions. Admins and users have it by default.
## Services
Provides to other plugins:
- `sessions.live` as `rdp`, `vnc` and `telnet`: find a live session so it can be shared.
Uses from other plugins:
- `recordings.writer` to record sessions. Optional.
- `tunnels.access` for single-hop jump host tunnels. Optional.
## Development
```bash
npm run build # build into dist/
npm run test # run this plugin's tests
npm run typecheck # type-check this plugin
```