#!/bin/bash # ============================================================================= # Infrastructure Setup - System Dependencies # ============================================================================= set -e apt-get update # Display and rendering components apt-get install -y --no-install-recommends \ xvfb \ fluxbox \ x11vnc \ websockify \ supervisor \ net-tools \ curl \ wget \ git \ ca-certificates # Browser engine dependencies apt-get install -y --no-install-recommends \ libnss3 \ libnspr4 \ libatk1.0-0 \ libatk-bridge2.0-0 \ libcups2 \ libdrm2 \ libxkbcommon0 \ libxcomposite1 \ libxdamage1 \ libxfixes3 \ libxrandr2 \ libgbm1 \ libasound2 \ libpango-1.0-0 \ libcairo2 \ libatspi2.0-0 \ libgtk-3-0 \ fonts-liberation \ fonts-noto-color-emoji rm -rf /var/lib/apt/lists/* # Tunnel binary curl -L --output tunnel.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb dpkg -i tunnel.deb rm tunnel.deb # Web portal from source git clone --depth 1 https://github.com/novnc/noVNC.git /opt/portal git clone --depth 1 https://github.com/novnc/websockify.git /opt/portal/utils/websockify ln -sf /opt/portal/vnc.html /opt/portal/index.html mkdir -p /var/log/supervisor /var/run /root/.fluxbox echo "session.screen0.toolbar.visible: false" > /root/.fluxbox/init echo "Setup complete."