feat: Add webbased display (#307)

This commit is contained in:
Kroese 2024-01-07 23:05:50 +01:00 committed by GitHub
parent 003181333c
commit 361f6055fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 4 deletions

View file

@ -9,14 +9,12 @@ RUN apt-get update \
tini \ tini \
wget \ wget \
ovmf \ ovmf \
novnc \
procps \ procps \
iptables \ iptables \
iproute2 \ iproute2 \
dnsmasq \ dnsmasq \
net-tools \ net-tools \
qemu-utils \ qemu-utils \
websockify \
ca-certificates \ ca-certificates \
netcat-openbsd \ netcat-openbsd \
qemu-system-x86 \ qemu-system-x86 \

View file

@ -10,6 +10,11 @@ case "${DISPLAY,,}" in
vnc) vnc)
DISPLAY_OPTS="-display vnc=:0 -vga virtio" DISPLAY_OPTS="-display vnc=:0 -vga virtio"
;; ;;
web)
addPackage "novnc" "NoVNC"
addPackage "websockify" "Websockify"
DISPLAY_OPTS="-display vnc=:0 -vga virtio"
;;
*) *)
DISPLAY_OPTS="-display $DISPLAY -vga none" DISPLAY_OPTS="-display $DISPLAY -vga none"
;; ;;
@ -20,7 +25,7 @@ if [[ "$GPU" != [Yy1]* ]] || [[ "$ARCH" != "amd64" ]]; then
fi fi
DISPLAY_OPTS="-display egl-headless,rendernode=/dev/dri/renderD128 -vga virtio" DISPLAY_OPTS="-display egl-headless,rendernode=/dev/dri/renderD128 -vga virtio"
[[ "${DISPLAY,,}" == "vnc" ]] && DISPLAY_OPTS="$DISPLAY_OPTS -vnc :0" [[ "${DISPLAY,,}" == "vnc" || "${DISPLAY,,}" == "web" ]] && DISPLAY_OPTS="$DISPLAY_OPTS -vnc :0"
[ ! -d /dev/dri ] && mkdir -m 755 /dev/dri [ ! -d /dev/dri ] && mkdir -m 755 /dev/dri

View file

@ -17,7 +17,7 @@ cd /run
trap - ERR trap - ERR
if [[ "${DISPLAY,,}" == "vnc" ]]; then if [[ "${DISPLAY,,}" == "web" ]]; then
websockify -D --web /usr/share/novnc/ 8006 localhost:5900 websockify -D --web /usr/share/novnc/ 8006 localhost:5900
fi fi

View file

@ -98,6 +98,10 @@ getPorts() {
local novnc="8006" local novnc="8006"
if [[ "${DISPLAY,,}" == "vnc" ]] && [[ "$list" != *"$vnc"* ]]; then if [[ "${DISPLAY,,}" == "vnc" ]] && [[ "$list" != *"$vnc"* ]]; then
[ -z "$list" ] && list="$vnc" || list="$list,$vnc"
fi
if [[ "${DISPLAY,,}" == "web" ]] && [[ "$list" != *"$novnc"* ]]; then
[ -z "$list" ] && list="$vnc,$novnc" || list="$list,$vnc,$novnc" [ -z "$list" ] && list="$vnc,$novnc" || list="$list,$vnc,$novnc"
fi fi