1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 11:16:47 +00:00
webvirtcloud/docker-compose.yml
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

39 lines
1.5 KiB
YAML

services:
webvirtcloud:
build:
context: .
dockerfile: Dockerfile
image: webvirtcloud:latest
container_name: webvirtcloud
restart: unless-stopped
# above my_init's 80 s, which is above the worker's 60 s drain
stop_grace_period: 95s
ports:
- "80:80"
environment:
# Optional: custom Django secret key. If unset, automatically generated at first launch.
# - SECRET_KEY=your-custom-secret-key-here
# Optional: comma-separated trusted CSRF origins (e.g. http://wvc.example.com,https://wvc.example.com)
# - CSRF_TRUSTED_ORIGINS=http://localhost,http://127.0.0.1
# Optional: PostgreSQL instead of the bundled sqlite (also WEBVIRTCLOUD_DB_PORT/_NAME/_USER)
# - WEBVIRTCLOUD_DB_HOST=db.example.com
# - WEBVIRTCLOUD_DB_PASSWORD=change-me
# Optional: SMTP for e-mail OTP (also EMAIL_PORT, EMAIL_USE_TLS=0/1)
# - EMAIL_HOST=smtp.example.com
# - EMAIL_HOST_USER=webvirtcloud@example.com
# - EMAIL_HOST_PASSWORD=change-me
# Host names/IPs the panel is reached by (comma-separated; "*" accepts any).
# Without it only localhost works. Set it in docker-compose.override.yml.
- ALLOWED_HOSTS=localhost
- TZ=UTC
volumes:
# Persistent SQLite database and runtime data
- webvirtcloud-data:/srv/webvirtcloud/data
# Persistent SSH keys for compute node authentication
- webvirtcloud-ssh:/var/www/.ssh
volumes:
webvirtcloud-data:
driver: local
webvirtcloud-ssh:
driver: local