From 96fedb934821ce17f61cb79f99c37b5f603a8a8d Mon Sep 17 00:00:00 2001 From: Andy Dixon Date: Thu, 21 May 2026 12:52:57 +0100 Subject: [PATCH] feat: add VNC support with noVNC integration - Introduced a new VNC viewer panel in the frontend, allowing users to connect to VNC sessions. - Implemented VNC connection handling with optional SSH tunneling in the backend. - Added a new SSH key manager for managing SSH keys within the terminal. - Created a trigger rules engine to monitor terminal output and trigger actions based on defined patterns. - Added CSS styles for the VNC viewer and its components. - Updated database schema to support VNC protocol in profiles. - Implemented WebSocket proxy for VNC connections to facilitate communication between the frontend and backend. --- frontend/index.html | 12 + frontend/package-lock.json | 476 +++++++++++++ frontend/package.json | 7 +- frontend/scripts/bundle-novnc.js | 34 + frontend/scripts/novnc-entry.js | 4 + frontend/src/css/components.css | 195 ++++++ frontend/src/css/tabs.css | 34 + frontend/src/css/tokens.css | 1 + frontend/src/css/vnc.css | 76 +++ frontend/src/js/app.js | 30 + frontend/src/js/commands.js | 625 ++++++++++-------- frontend/src/js/profiles.js | 184 +++++- frontend/src/js/sshkeys.js | 281 ++++++++ frontend/src/js/tabs.js | 24 +- frontend/src/js/themes.js | 84 +++ frontend/src/js/triggers.js | 360 ++++++++++ frontend/src/js/utils.js | 1 + frontend/src/js/vnc.js | 287 ++++++++ internal/api/api.go | 204 ++++++ internal/models/defaults.go | 13 + internal/models/models.go | 38 ++ internal/sessions/manager.go | 120 ++++ .../storage/migrations/004_vnc_protocol.sql | 57 ++ internal/storage/store.go | 42 +- internal/validation/validation.go | 2 + internal/vncclient/vncclient.go | 286 ++++++++ 26 files changed, 3162 insertions(+), 315 deletions(-) create mode 100644 frontend/scripts/bundle-novnc.js create mode 100644 frontend/scripts/novnc-entry.js create mode 100644 frontend/src/css/vnc.css create mode 100644 frontend/src/js/sshkeys.js create mode 100644 frontend/src/js/triggers.js create mode 100644 frontend/src/js/vnc.js create mode 100644 internal/storage/migrations/004_vnc_protocol.sql create mode 100644 internal/vncclient/vncclient.go diff --git a/frontend/index.html b/frontend/index.html index 379ef1d..e6baa1e 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -22,6 +22,7 @@ +
@@ -76,6 +77,13 @@ > + New +