aaa / start.sh
alaseer2020's picture
Update start.sh
8ec948c verified
#!/bin/bash
set -euo pipefail
echo "==== Starting LXDE + Firefox + noVNC + cloudflared ===="
# عرض الإعدادات
echo "DISPLAY=${DISPLAY}"
echo "VNC password file=/root/.vnc/passwd"
echo "Resolution=${GEOMETRY}"
echo "noVNC port=${NOVNC_PORT}"
export DISPLAY=:1
# تشغيل الشاشة الوهمية Xvfb
Xvfb :1 -screen 0 ${GEOMETRY}x16 2>&1 | tee /proc/1/fd/1 &
XVFB_PID=$!
echo "Started Xvfb (PID $XVFB_PID)"
# تشغيل dbus
if ! pgrep -x dbus-daemon >/dev/null 2>&1; then
dbus-daemon --session --fork --print-address > /tmp/dbus_address || true
echo "Started dbus-daemon"
fi
# تشغيل Firefox
firefox 2>&1 | tee /proc/1/fd/1 &
FIREFOX_PID=$!
echo "Started Firefox (PID $FIREFOX_PID)"
# تشغيل x11vnc مع كلمة مرور
x11vnc -display :1 -forever -usepw -shared 2>&1 | tee /proc/1/fd/1 &
X11VNC_PID=$!
echo "Started x11vnc (PID $X11VNC_PID)"
# تشغيل noVNC proxy
python3 /opt/novnc/utils/novnc_proxy --vnc localhost:5900 --listen ${NOVNC_PORT} 2>&1 | tee /proc/1/fd/1 &
NOVNC_PID=$!
echo "Started noVNC (PID $NOVNC_PID) at http://localhost:${NOVNC_PORT}/vnc.html"
# تشغيل cloudflared مع إعادة التشغيل التلقائية
restart_cloudflared() {
while true; do
echo "Starting cloudflared tunnel..."
cloudflared tunnel --url http://localhost:${NOVNC_PORT} --no-autoupdate 2>&1 | tee /proc/1/fd/1
echo "cloudflared crashed. Restarting in 5 seconds..."
sleep 5
done
}
restart_cloudflared &
# إبقاء الحاوية تعمل للأبد (يمكن الاحتفاظ بها)
tail -f /dev/null