#!/usr/bin/env bash set -euo pipefail TARGET_URL="${TARGET_URL:-https://example.com}" SESSION_ID="${SESSION_ID:-unknown}" IDLE_TIMEOUT="${IDLE_TIMEOUT:-1800}" ENABLE_HEARTBEAT="${ENABLE_HEARTBEAT:-1}" TOUCH_PATH="${TOUCH_PATH:-/api/sessions/${SESSION_ID}/touch}" UNIVERSAL_WEB="${UNIVERSAL_WEB:-0}" START_URL="${START_URL:-about:blank}" HOME_URL="${HOME_URL:-$TARGET_URL}" SCREEN_GEOMETRY="${SCREEN_GEOMETRY:-1920x1080x24}" CHROME_WINDOW_SIZE="${CHROME_WINDOW_SIZE:-1920,1080}" if [ "$UNIVERSAL_WEB" = "1" ]; then HOME_URL="${HOME_URL:-$START_URL}" fi mkdir -p /opt/portal cp -r /usr/share/novnc/* /opt/portal/ cat > /opt/portal/index.html < Инфра полигон МОНТ
HTML export DISPLAY=:1 Xvfb :1 -screen 0 "$SCREEN_GEOMETRY" & fluxbox >/tmp/fluxbox.log 2>&1 & sleep 1 if [ "$UNIVERSAL_WEB" = "1" ]; then chromium \ --no-sandbox \ --disable-dev-shm-usage \ --disable-gpu \ --use-gl=swiftshader \ --kiosk \ --remote-debugging-address=0.0.0.0 \ --remote-debugging-port=9222 \ --remote-allow-origins=* \ --disable-translate \ --disable-features=TranslateUI,ExtensionsToolbarMenu \ --disable-pinch \ --overscroll-history-navigation=0 \ --ignore-certificate-errors \ --allow-insecure-localhost \ --allow-running-insecure-content \ --window-size="$CHROME_WINDOW_SIZE" \ --no-first-run \ --no-default-browser-check \ "$START_URL" \ >/tmp/chromium.log 2>&1 & python3 /manager.py >/tmp/manager.log 2>&1 & else chromium \ --no-sandbox \ --disable-dev-shm-usage \ --disable-gpu \ --use-gl=swiftshader \ --kiosk \ --app="$TARGET_URL" \ --disable-translate \ --disable-features=TranslateUI,ExtensionsToolbarMenu \ --disable-pinch \ --overscroll-history-navigation=0 \ --ignore-certificate-errors \ --allow-insecure-localhost \ --allow-running-insecure-content \ --window-size="$CHROME_WINDOW_SIZE" \ --no-first-run \ --no-default-browser-check \ >/tmp/chromium.log 2>&1 & fi x11vnc -display :1 -rfbport 5900 -forever -shared -nopw -noxdamage >/tmp/x11vnc.log 2>&1 & exec websockify --verbose --idle-timeout="$IDLE_TIMEOUT" --web=/opt/portal 6080 localhost:5900