1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 19:26:48 +00:00
Commit graph

53 commits

Author SHA1 Message Date
catborise
d37aa42392 feat(console): a working serial console
The xterm console never connected: socketiod expected a different token
format, its worker had no compute credentials, one global console was
shared by every client and its output broadcast to all of them, and the
Docker image did not run socketiod at all.

- console/tokens.py: one authorize() for noVNC and socketiod; the signed
  token is the only credential, checked at connect time.
- socketiod: one pty worker per client (consolecallback with the
  instance id), one session per VM, a session cap, input and resize
  checked; the parent never opens libvirt. The engine.io same-origin
  check is on.
- consolecallback: opens the console with the compute's credentials and
  exits with a message when it cannot.
- Docker runs socketiod as a runit service; nginx proxies /socket.io/
  with Host and the scheme for the origin check. Supervisor and systemd
  start it as well; WEBVIRTCLOUD_SERIAL_CONSOLE=1 enables it.
- Tests: token and session unit tests, socketiod as a process, and a
  live test that reads SeaBIOS from a wvc-test VM on the TCP and SSH
  hosts.
2026-10-17 19:43:09 +03:00
catborise
9b0c6e2d8e build: xterm 6.0.0 for the serial console
@xterm/xterm 6.0.0 and @xterm/addon-fit 0.11.0 replace xterm 3.6.0; the page reads typed and pasted input with onData, and no longer writes every key and all terminal output to the browser console. The unused fullscreen addon goes.
2026-10-17 16:09:50 +03:00
catborise
0f611e6383 fix(console): lite noVNC page uses the signed token, not the URL token
readQueryVariable('token', ...) preferred the unsigned host-uuid token
from the URL, which novncd rejects; use the signed token the view
renders, like the full page does.
2026-10-02 23:57:40 +03:00
catborise
e980aca2ff feat(console): remove deprecated SPICE support in favor of noVNC
- Remove obsolete spice-html5 static assets and SPICE console templates
- Restrict default console types to VNC with migration 0012
- Filter out SPICE in VM creation form and backend capabilities
- Return friendly deprecation notice if legacy VM is opened with SPICE
- Clean up docs, architecture references, and libvirt-bootstrap scripts
2026-09-26 22:43:40 +03:00
catborise
fb55a24009 fix(console): fix unexpected token syntax error in full vnc resize setting 2026-09-26 19:56:34 +03:00
catborise
f19c30840e fix(console): prevent DOM-based XSS in console views and escape JS strings
- Validate and coerce console query parameters (view_only, scale, resize_session, clip_viewport) to strict booleans via to_bool in console/views.py
- Sanitize view parameter to strictly 'lite' or 'full'
- Apply escapejs filter to all JS string interpolations in console-vnc-full.html, console-vnc-lite.html, console-spice-lite.html, and console-xterm.html
- Replace unsafe '| safe' filter in console-spice-lite.html with escapejs
- Add unit tests for XSS query param mitigation and escapejs character encoding
2026-09-26 19:28:22 +03:00
catborise
3d4accf1b4 feat(novnc): upgrade noVNC from 1.2.0 to 1.7.0
- Upgrade vendored noVNC library in static/js/novnc/ from 1.2.0 to 1.7.0
- Remove obsolete IE11 polyfills (promise.js, browser-es-module-loader)
- Preserve custom app/styles/lite.css for embedded lite view
- Update console-vnc-full.html stylesheets, modern icon set, and dialogs
- Modernize console-vnc-full.html startup via UI.start() with Django context mapping
- Dynamically resolve package.json and localization dictionaries via import.meta.url
2026-09-26 18:25:44 +03:00
catborise
57f9f55db7 refactor(console): add RFB connection state guard and micro-delay for key combinations 2026-09-26 16:28:52 +03:00
catborise
591429b0c9 feat(console): add comprehensive test suite and expand send keys menu
- Add 23 unit and integration tests covering console views, authorization, URL/path normalization, and novncd daemon token extraction
- Refactor console/novncd arg parsing into __main__ block for clean test imports
- Expand Send Key(s) menu into categorized sections (System, Navigation/Desktop, Terminal Control, Virtual Consoles)
- Implement non-destructive LIFO sendKeyCombo using public rfb.sendKey API, eliminating vendor debt
- Wire Send Key actions across Lite, Full, and PTY (xterm) console templates
- Add modern navigator.keyboard.lock support during fullscreen sessions
2026-09-26 12:10:35 +03:00
catborise
d9112b797f fix(console): fix novncd startup in container and prevent double slashes in websocket url 2026-09-25 23:11:52 +03:00
catborise
e324a19401 add white noise for static_root/staticfiles_dir problem for debug/non-debug running mode 2023-11-10 16:29:48 +03:00
catborise
0680f02240 remove css urls, add missing socketio requirements, fix cookie import, and rearrange socketiod connetion 2022-07-21 13:31:37 +03:00
Gaëtan Ferez
65dce10ce1 Implement Libvirt Serial Console as Console on WebVirtCloud 2022-07-17 13:25:47 +02:00
catborise
c1488eee52 navbars position is changed to stick-top 2021-10-01 09:48:09 +03:00
catborise
073b7b6717
Bootstrap5 (#17)
* Bootstrap5 migration
2021-07-07 14:12:38 +03:00
catborise
5aa22ac042 Django 3.2.4 LTS upgrade 2021-06-15 13:28:47 +03:00
catborise
24cd3f70dd make dynamic websockify path for console-vnc-full 2021-06-02 09:11:54 +03:00
catborise
43f1461e29 update novnc 1.1.0 ->1.2.0 2020-08-11 15:05:09 +03:00
catborise
fb3ef6be98 fix sendctrlaltdel for spice console 2020-07-23 11:07:22 +03:00
catborise
44aa746f4b make console password optional for users with permissions 2020-07-17 11:05:47 +03:00
catborise
74a4a1a3ef vnc console options added 2020-07-17 11:04:21 +03:00
catborise
0b86e34203 replace tunnel.py with sshtunnel.py some small fixes 2020-07-14 15:44:20 +03:00
catborise
c0f707854a wsproxy patch 2020-06-26 16:31:41 +03:00
catborise
1320753d6c spice console password fix & translate additions 2020-06-26 10:06:51 +03:00
catborise
4f8a1fd50d fix console password & sendkey & css fixes & add scale vb 2020-06-24 12:39:32 +03:00
catborise
e97d592e51 fix some messages, add translation for some keywords, update tr locale file 2020-06-12 14:46:17 +03:00
catborise
bf15de507a add aria-label definition to forms 2020-06-04 12:05:55 +03:00
catborise
871083967f bootstrap 4.5 fixations & fix various localizations 2020-06-04 11:35:57 +03:00
catborise
0e5840498e bootstrap 4.5 & Bootswatch Themes 2020-06-04 11:33:25 +03:00
catborise
4d40de1b55 Python3 & Django 2.2 Migration - Fix & Updates 2020-03-16 16:59:45 +03:00
catborise
34394c2b5e console layout rearranged. fix indentation. add translate tags 2020-01-23 15:45:41 +03:00
catborise
0ef876c7a7 remove blank spaces 2020-01-08 08:53:50 +03:00
catborise
228a0949d1 Full VNC view distortion fixed. Add translate for some texts 2019-11-20 09:19:57 +03:00
catborise
e601c23b4a noVNC Update 1.0.0 -> 1.1.0 2019-06-24 14:26:25 +03:00
catborise
1971029e3c Merge commit 'cdb5c4f412' 2018-10-24 17:00:48 +03:00
catborise
e80bbfd85b console/templates/console-base.html fix html tag console/templates/console-spice-lite.html add console log message by @honza801 2018-10-24 16:45:23 +03:00
Ing. Jan KRCMAR
812bbb2ccc console-spice-full fix scheme wss when accessing from https 2018-09-25 23:25:06 +02:00
catborise
14e145e0d8 twice calling function generates two vnc console. ES6 requirement no longer necessary. it is disabled and problem solved. 2018-08-28 15:55:11 +03:00
catborise
e9e2185fb4
Update console-spice-full.html
typo-fix
2018-08-27 15:43:33 +03:00
catborise
76e6388ec5 novnc ES6 compatibility is not working. I reverse it. Spice/VNC sending ctrl+alt+fn functionality restored. 2018-08-27 15:30:50 +03:00
catborise
f73271e677 missing js files and keyfunctions added 2018-08-16 11:07:35 +03:00
catborise
2a5a761f05 spice config corrections 2018-08-14 16:49:25 +03:00
catborise
0dd2eafc97 Merge branch 'master' of https://github.com/catborise/webvirtcloud 2018-08-14 15:37:42 +03:00
catborise
e7d649636c spice problem correction 2018-08-14 15:37:26 +03:00
catborise
720937edcf
Delete console-vnc.html
console-*-lite, console-*-full .html
2018-08-14 15:15:06 +03:00
catborise
edb59947af novnc is updated to 1.0.0 and add console views: lite,full option 2018-08-14 15:11:49 +03:00
catborise
b05a252d7c spice-html5 updated. 2018-08-08 14:00:35 +03:00
catborise
fcb2924e95 fix typo 2018-08-08 11:24:59 +03:00
retspen
dd2830eddb Quick fix if console type not support 2018-05-31 12:38:03 +03:00
Ing. Jan KRCMAR
c5f86358be fix STATIC_URL in templates. static urls should be generated by "static" template tag 2017-06-06 14:49:11 +02:00