#!/usr/bin/env bash set -e export DISPLAY=:99 mkdir -p /tmp/fluxbox # Start Xvfb Xvfb :99 -screen 0 1280x720x24 -nolisten tcp & # Wait for X socket for i in {1..50}; do [ -S /tmp/.X11-unix/X99 ] && break sleep 0.1 done # Start window manager fluxbox -display :99 & # Start VNC server x11vnc -display :99 -nopw -forever -shared -rfbport 5900 & # Start noVNC web websockify --web=/usr/share/novnc/ 0.0.0.0:6080 localhost:5900 & # Start login watcher (MUST be before tail) if [ -x /app/login_watcher.sh ]; then /app/login_watcher.sh & echo "[login] watcher started" else echo "[login] watcher missing: /app/login_watcher.sh" fi echo "[noVNC] Ready on :6080 (open /vnc_auto.html)" tail -f /dev/null