豆包网页端服务转Api服务

This commit is contained in:
Cx330 committed 2026-08-20 11:32:32 +08:00
1 parent e7e5c0f83d
commit b37295d2d5
17 files changed
+1829 -1

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
#!/bin/bash
set -e
VNC_PASSWORD="${VNC_PASSWORD:-doubao123}"
SCREEN_WIDTH="${SCREEN_WIDTH:-1280}"
SCREEN_HEIGHT="${SCREEN_HEIGHT:-720}"
SCREEN_DEPTH="${SCREEN_DEPTH:-24}"
mkdir -p /root/.vnc /app/data
x11vnc -storepasswd "$VNC_PASSWORD" /root/.vnc/passwd
# Always set VNC mode from env var on container startup (overwrites API changes from previous run)
echo "${VNC_VIEW_ONLY:-false}" > /app/data/.vnc_mode
echo "============================================"
echo " DouBao2Api Docker Container Starting..."
echo "============================================"
echo " Screen: ${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH}"
echo " VNC: localhost:${VNC_PORT:-5900} (password: ${VNC_PASSWORD})"
echo " noVNC: http://localhost:${NOVNC_PORT:-6080}/vnc.html"
echo " API: http://localhost:${API_PORT:-8000}"
echo "============================================"
exec supervisord -c /app/scripts/supervisord.conf
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
if command -v openbox &> /dev/null; then
exec openbox
else
echo "No window manager installed, running without one"
sleep infinity
fi
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
MODE_FILE="/app/data/.vnc_mode"
if [ ! -f "$MODE_FILE" ]; then
echo "${VNC_VIEW_ONLY:-false}" > "$MODE_FILE"
fi
MODE=$(cat "$MODE_FILE" 2>/dev/null || echo "false")
if [ "$MODE" = "true" ] || [ "$MODE" = "viewonly" ]; then
echo "Starting x11vnc in VIEW-ONLY mode (no mouse/keyboard input)"
exec x11vnc -display :99 -forever -shared -rfbport "${VNC_PORT:-5900}" -rfbauth /root/.vnc/passwd -noxdamage -cursor arrow -viewonly
else
echo "Starting x11vnc in INTERACTIVE mode"
exec x11vnc -display :99 -forever -shared -rfbport "${VNC_PORT:-5900}" -rfbauth /root/.vnc/passwd -noxdamage -cursor arrow
fi
+54
View File
@@ -0,0 +1,54 @@
[supervisord]
nodaemon=true
user=root
logfile=/app/data/supervisord.log
pidfile=/tmp/supervisord.pid
[unix_http_server]
file=/tmp/supervisor.sock
chmod=0700
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock
[program:xvfb]
command=Xvfb :99 -screen 0 %(ENV_SCREEN_WIDTH)sx%(ENV_SCREEN_HEIGHT)sx%(ENV_SCREEN_DEPTH)s
priority=10
autorestart=true
stdout_logfile=/app/data/xvfb.log
stderr_logfile=/app/data/xvfb_err.log
[program:wm]
command=/app/scripts/start_wm.sh
environment=DISPLAY=":99"
priority=20
autorestart=true
stdout_logfile=/app/data/wm.log
stderr_logfile=/app/data/wm_err.log
[program:x11vnc]
command=/app/scripts/start_x11vnc.sh
environment=DISPLAY=":99",VNC_PORT="%(ENV_VNC_PORT)s",VNC_VIEW_ONLY="%(ENV_VNC_VIEW_ONLY)s"
priority=30
autorestart=true
stdout_logfile=/app/data/x11vnc.log
stderr_logfile=/app/data/x11vnc_err.log
[program:novnc]
command=websockify --web /opt/novnc %(ENV_NOVNC_PORT)s localhost:%(ENV_VNC_PORT)s
priority=40
autorestart=true
stdout_logfile=/app/data/novnc.log
stderr_logfile=/app/data/novnc_err.log
[program:api]
command=python3 -m uvicorn app.main:app --host 0.0.0.0 --port %(ENV_API_PORT)s
directory=/app
environment=DISPLAY=":99",PYTHONUNBUFFERED="1"
priority=50
autorestart=true
stdout_logfile=/app/data/api.log
stderr_logfile=/app/data/api_err.log