源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
Executable
+86
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Start all services for the Daytona/devcontainer workspace.
|
||||
# Launches the real Electron app with a virtual display.
|
||||
#
|
||||
# Usage: bash .devcontainer/start-services.sh
|
||||
#
|
||||
# Services started:
|
||||
# - Xvfb + noVNC (port 6080) — see the Electron app in your browser
|
||||
# - Vite dev server (port 5173) — React UI with HMR
|
||||
# - Electron app — the real desktop app on the virtual display
|
||||
# - CDP debugging (port 9825) — for automation
|
||||
#
|
||||
# Optional (if MySQL is available):
|
||||
# - Den API (port 8788)
|
||||
# - Den Web (port 3005)
|
||||
|
||||
cd /workspace
|
||||
|
||||
# ── 1. Virtual display ──
|
||||
echo "==> Starting virtual display..."
|
||||
.devcontainer/start-daytona-vnc.sh
|
||||
sleep 2
|
||||
|
||||
# ── 2. Vite dev server on 0.0.0.0 (so Electron can reach it via 127.0.0.1) ──
|
||||
echo "==> Starting Vite on :5173..."
|
||||
cd apps/app
|
||||
OPENWORK_DEV_MODE=1 nohup npx vite --host 0.0.0.0 --port 5173 > /tmp/vite.log 2>&1 &
|
||||
cd /workspace
|
||||
sleep 3
|
||||
|
||||
# ── 3. Electron app ──
|
||||
echo "==> Starting Electron app..."
|
||||
bash .devcontainer/start-daytona-electron.sh --detach
|
||||
|
||||
# ── 4. Wait for Electron to be ready ──
|
||||
echo "==> Waiting for Electron..."
|
||||
for i in $(seq 1 30); do
|
||||
if curl -sf http://127.0.0.1:9825/json/list >/dev/null 2>&1; then
|
||||
echo "Electron CDP ready."
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
|
||||
# ── 5. Optional: Den stack (only if MySQL is reachable) ──
|
||||
if mysql -h mysql -u root -ppassword -e "SELECT 1" >/dev/null 2>&1; then
|
||||
echo "==> MySQL found, starting Den stack..."
|
||||
|
||||
echo " Pushing DB schema..."
|
||||
pnpm --filter @openwork-ee/den-db db:push 2>&1 || echo " DB push failed (may be up to date)"
|
||||
|
||||
echo " Starting Den API on :8788..."
|
||||
pnpm dev:den:api > /tmp/den-api.log 2>&1 &
|
||||
|
||||
for i in $(seq 1 20); do
|
||||
if curl -sf http://localhost:8788/health >/dev/null 2>&1; then
|
||||
echo " Den API healthy."
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
|
||||
echo " Starting Den Web on :3005..."
|
||||
pnpm dev:den:web > /tmp/den-web.log 2>&1 &
|
||||
else
|
||||
echo "==> MySQL not found, skipping Den stack."
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " All services running!"
|
||||
echo ""
|
||||
echo " Desktop App (noVNC): http://localhost:6080"
|
||||
echo " CDP Debug: ws://127.0.0.1:9825"
|
||||
echo " Vite HMR: http://localhost:5173"
|
||||
if mysql -h mysql -u root -ppassword -e "SELECT 1" >/dev/null 2>&1; then
|
||||
echo " Den Web: http://localhost:3005"
|
||||
echo " Den API: http://localhost:8788"
|
||||
fi
|
||||
echo "============================================"
|
||||
echo ""
|
||||
|
||||
# Keep alive
|
||||
wait
|
||||
Reference in New Issue
Block a user