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

18 commits

Author SHA1 Message Date
catborise
68b104dfe4 feat(console): the VNC console uses the panel's own address
The console pages connect to /novncd/ on the address, scheme and port the
page itself was loaded from; nginx proxies it to novncd, which listens on
the loopback only. There is nothing to configure: the console works on
HTTPS (wss), behind another proxy and on any published port.

Before, the page connected to WS_PUBLIC_HOST/PORT/PATH, port 6080 by
default: straight to novncd, past nginx and without TLS, so an HTTPS panel
and a Docker container published on another port had no console until the
public port was set by hand, and novncd listened on every interface.

Gone: WS_PUBLIC_PORT, WS_PUBLIC_HOST, WS_PUBLIC_PATH and WS_CERT, the
installer's two public console questions and its 6080 firewall rule, the
Docker image's WS_PUBLIC_PORT and its init script lines, the manual
install's firewall rule for 6080 and nginx's unused /websockify location.
WS_HOST defaults to 127.0.0.1. A VM with a QEMU websocket port is still
reached on that port of the panel's host name (left for a separate
decision).
2026-10-26 20:14:04 +03:00
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
0906838193 fix(nginx): browsers revalidate static files
Static URLs carry no version, but nginx served them with expires max, so
after an update or a theme change browsers kept the old CSS and JS. They
now revalidate each load (304 when unchanged). CI checks the header, the
304 and that a changed file is sent again.
2026-10-12 08:52:41 +03:00
catborise
7639d21ec4 fix(static): collectstatic writes to staticfiles/, and its output is no longer committed 2026-10-07 16:31:56 +03:00
catborise
c1381318f1 feat(settings): WEBVIRTCLOUD_HTTPS enables secure cookies, HTTPS redirect and HSTS 2026-10-07 16:16:07 +03:00
catborise
4252ad9280 fix(console): keep socketiod behind nginx and off by default there too
- Comment out the nginx /socket.io/ location: a firewall on 6081 does not
  protect a console that nginx proxies on 80/443.
- Default SOCKETIO_HOST to 127.0.0.1.
- README: short enable steps and the changes existing installs need.
- test_socketiod_disabled writes its settings module to a temporary
  directory instead of the source tree.
2026-10-02 22:27:39 +03:00
catborise
933e7b378a fix(security): resolve CSRF 403 on DEBUG=False and improve reverse proxy headers
- Add local ports and env var fallback for CSRF_TRUSTED_ORIGINS in settings.py.template
- Configure SECURE_PROXY_SSL_HEADER for reverse proxy / HTTPS environments
- Update Nginx proxy headers to use $http_host and $scheme to prevent port mismatch
2026-09-25 10:28:49 +03:00
catborise
8995f47c13
Merge pull request #617 from 0x6d61726b/patch-01_X-Forwarded-Proto
Fixed nginx X-Forwarded-Proto to match the protocol ("http", "https")
2023-10-30 15:53:40 +03:00
Mark
cc86730441
Corrected X-Forwarded-Proto meaning for Gunicorn 2023-10-26 22:43:27 +02:00
Mark
2072890fc5
Fixed nginx X-Forwarded-Proto to match the protocol ("http", "https") 2023-10-26 21:53:04 +02:00
MisterBlueBear
4aafad668b Location /websockify proxy passes to wsnovncd 2023-10-26 13:12:20 -04:00
MisterBlueBear
31cace9994 nginx conf - Fix for issue #577 2023-10-18 21:42:57 -04:00
Gaëtan Ferez
65dce10ce1 Implement Libvirt Serial Console as Console on WebVirtCloud 2022-07-17 13:25:47 +02:00
catborise
4b7554ea14 increase nginx timeout. Enable live snapshot. 2020-11-06 14:30:41 +03:00
catborise
c0f707854a wsproxy patch 2020-06-26 16:31:41 +03:00
Joshua Santos
0dcd2300f4 server_name should be optional 2015-06-27 05:56:37 -07:00
Retspen
13e5d70ff3 Moved all to virtualenv 2015-06-16 08:49:30 +03:00
Retspen
8e8f300668 Added production files 2015-03-27 16:20:30 +02:00