-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart-dev.sh
More file actions
153 lines (127 loc) Β· 4.29 KB
/
Copy pathstart-dev.sh
File metadata and controls
153 lines (127 loc) Β· 4.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#!/bin/bash
# UltraControl Development Environment Starter
# This script starts all necessary services for development
set -e
echo "π UltraControl Development Environment Starter"
echo "============================================="
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Check prerequisites
check_command() {
if ! command -v $1 &> /dev/null; then
echo -e "${RED}β $1 is not installed. Please install it first.${NC}"
exit 1
fi
}
echo "π Checking prerequisites..."
check_command node
check_command pnpm
check_command git
NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
if [ "$NODE_VERSION" -lt 18 ]; then
echo -e "${RED}β Node.js version must be 18 or higher. Current: $(node -v)${NC}"
exit 1
fi
echo -e "${GREEN}β
All prerequisites met${NC}"
# Function to kill all background processes on exit
cleanup() {
echo -e "\n${YELLOW}π Stopping all services...${NC}"
# Kill all child processes
pkill -P $$ || true
exit 0
}
trap cleanup EXIT INT TERM
# Check if dependencies are installed
if [ ! -d "node_modules" ]; then
echo -e "${YELLOW}π¦ Installing dependencies...${NC}"
pnpm install
fi
# Check for environment file
ENV_FILE="packages/ultracontrol-app/.env.local"
if [ ! -f "$ENV_FILE" ]; then
echo -e "${YELLOW}β οΈ No .env.local found. Creating from example...${NC}"
cp packages/ultracontrol-app/.env.example "$ENV_FILE"
echo -e "${RED}β Please edit $ENV_FILE with your API keys${NC}"
echo "Press Enter to continue after adding your API keys..."
read
fi
# Create logs directory
mkdir -p logs
# Start services
echo -e "\n${GREEN}π Starting services...${NC}"
# Start UltraControl App
echo -e "${YELLOW}Starting UltraControl App...${NC}"
cd packages/ultracontrol-app
pnpm dev > ../../logs/ultracontrol-app.log 2>&1 &
ULTRACONTROL_PID=$!
cd ../..
# Wait for UltraControl to start
sleep 3
# Check if OpenHands backend exists and start if available
if [ -d "packages/OpenHands-main" ]; then
echo -e "${YELLOW}Starting OpenHands Backend...${NC}"
cd packages/OpenHands-main
# Check if poetry is installed
if command -v poetry &> /dev/null; then
poetry run uvicorn openhands.server.app:app --reload --host 0.0.0.0 --port 8000 > ../../logs/openhands.log 2>&1 &
OPENHANDS_PID=$!
else
echo -e "${YELLOW}β οΈ Poetry not found. Skipping OpenHands backend.${NC}"
fi
cd ../..
fi
# Optional: Start Devin Clone if needed
# if [ -d "packages/devin-clone-mvp" ]; then
# echo -e "${YELLOW}Starting Devin Clone...${NC}"
# cd packages/devin-clone-mvp/frontend
# pnpm dev > ../../../logs/devin-frontend.log 2>&1 &
# DEVIN_FRONTEND_PID=$!
# cd ../../..
# fi
# Wait for services to start
echo -e "\n${YELLOW}β³ Waiting for services to start...${NC}"
sleep 5
# Check service status
check_service() {
if curl -s -o /dev/null -w "%{http_code}" $1 | grep -q "200\|404"; then
echo -e "${GREEN}β
$2 is running at $1${NC}"
return 0
else
echo -e "${RED}β $2 is not responding at $1${NC}"
return 1
fi
}
echo -e "\n${GREEN}π Service Status:${NC}"
echo "================================"
# Check main app
if check_service "http://localhost:5173" "UltraControl App"; then
echo " View logs: tail -f logs/ultracontrol-app.log"
fi
# Check OpenHands if started
if [ ! -z "$OPENHANDS_PID" ]; then
if check_service "http://localhost:8000" "OpenHands Backend"; then
echo " View logs: tail -f logs/openhands.log"
fi
fi
echo "================================"
echo -e "\n${GREEN}π Development environment is ready!${NC}"
echo -e "\n${YELLOW}Quick Actions:${NC}"
echo " 1. Open http://localhost:5173 in your browser"
echo " 2. Check logs in the 'logs' directory"
echo " 3. Press Ctrl+C to stop all services"
echo ""
echo -e "${YELLOW}Useful Commands:${NC}"
echo " - View app logs: tail -f logs/ultracontrol-app.log"
echo " - Run tests: cd packages/ultracontrol-app && pnpm test"
echo " - Build for prod: cd packages/ultracontrol-app && pnpm build"
echo ""
echo -e "${GREEN}Happy coding! π${NC}"
echo ""
# Keep script running and show logs
echo "Press Ctrl+C to stop all services"
echo ""
echo "=== Live Logs (UltraControl App) ==="
tail -f logs/ultracontrol-app.log