Pcservercomp / start.sh
THEZYZSTUDIO's picture
Rename start (11).sh to start.sh
aa2187f verified
Raw
History Blame Contribute Delete
3.47 kB
#!/bin/bash
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# THE Z AI โ€” Computer Mode Startup (FIXED v4)
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
echo "===== Application Startup at $(date '+%Y-%m-%d %H:%M:%S') ====="
echo "๐Ÿ–ฅ๏ธ Starting Z Computer Mode Server v4..."
# โ”€โ”€ 1. Start Virtual Display โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
pkill Xvfb 2>/dev/null || true
sleep 0.5
Xvfb :1 -screen 0 1920x1080x24 -ac +extension GLX +render -noreset &
XVFB_PID=$!
echo "โœ… Xvfb started (PID: $XVFB_PID)"
sleep 2
# โ”€โ”€ 2. Export DISPLAY โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
export DISPLAY=:1
export XAUTHORITY=/root/.Xauthority
touch $XAUTHORITY
xauth generate :1 . trusted 2>/dev/null || true
echo "โœ… DISPLAY=$DISPLAY"
# โ”€โ”€ 3. Start Fluxbox WM โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
pkill fluxbox 2>/dev/null || true
fluxbox &
FLUX_PID=$!
echo "โœ… Fluxbox started (PID: $FLUX_PID)"
sleep 3
# โ”€โ”€ 4. ุฎู„ููŠุฉ ู…ู„ูˆู‘ู†ุฉ ูˆุงุถุญุฉ ุจุนุฏ Fluxbox โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
# Fluxbox ูŠูู„ุบูŠ xsetroot โ€” ู†ุถุนู‡ุง ุจุนุฏู‡ ูˆู†ูƒุฑุฑู‡ุง
xsetroot -solid "#1a1a2e" 2>/dev/null || true
# ุงุณุชุฎุฏู… convert (ImageMagick) ู„ุฑุณู… ุฎู„ููŠุฉ ู…ู„ูˆู‘ู†ุฉ ู…ุน ู†ุต ูˆุงุถุญ
# ุญุชู‰ ูŠุนุฑู ุงู„ู€ AI ุฃู† ุงู„ุดุงุดุฉ ุญูŠุฉ ูˆู„ูŠุณุช ุณูˆุฏุงุก
convert -size 1920x1080 \
gradient:"#1a1a2e-#16213e" \
-fill "#00d4aa" \
-pointsize 48 \
-gravity Center \
-annotate 0 "Z AI Computer Mode โ€” Ready" \
-fill "#4a90d9" \
-pointsize 28 \
-gravity South \
-annotate 0 "Screen: 1920x1080 | DISPLAY=:1 | $(date '+%H:%M:%S')" \
/tmp/wallpaper.png 2>/dev/null && \
feh --bg-fill /tmp/wallpaper.png 2>/dev/null || \
xsetroot -solid "#1a1a2e" 2>/dev/null || true
echo "โœ… Wallpaper set"
# โ”€โ”€ 5. Verify display works โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
echo "๐Ÿ” Testing display..."
if xdotool getdisplaygeometry 2>/dev/null; then
echo "โœ… Display working!"
else
echo "โš ๏ธ xdotool test failed โ€” continuing anyway"
fi
# โ”€โ”€ 6. Test screenshot โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
scrot -q 80 /tmp/test_shot.png 2>/dev/null && \
echo "โœ… Screenshot test: OK" || \
echo "โš ๏ธ scrot test failed"
# โ”€โ”€ 7. Detect browser โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
if command -v firefox-esr &>/dev/null; then
echo "โœ… Browser: firefox-esr"
BROWSER="firefox-esr"
elif command -v firefox &>/dev/null; then
echo "โœ… Browser: firefox"
BROWSER="firefox"
elif command -v chromium-browser &>/dev/null; then
echo "โœ… Browser: chromium-browser"
BROWSER="chromium-browser"
else
echo "โš ๏ธ No browser found"
BROWSER=""
fi
export DEFAULT_BROWSER="$BROWSER"
# โ”€โ”€ 8. Pre-warm Firefox (ุงุฎุชูŠุงุฑูŠ โ€” ูŠุณุฑู‘ุน ุฃูˆู„ ูุชุญ) โ”€
if [ -n "$BROWSER" ]; then
$BROWSER --headless --no-sandbox about:blank &>/dev/null &
sleep 2
pkill -f "headless" 2>/dev/null || true
echo "โœ… Browser pre-warmed"
fi
echo "๐Ÿš€ Starting Python API on port ${PORT:-7860}..."
cd /app
exec python3 app.py