-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquick-start.bat
More file actions
235 lines (225 loc) · 6.1 KB
/
quick-start.bat
File metadata and controls
235 lines (225 loc) · 6.1 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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
@echo off
REM CampusCare Quick Start Script for Windows
REM This script helps set up and run the development environment
setlocal enabledelayedexpansion
color 0A
cls
echo.
echo ╔════════════════════════════════════════════════════════════════════╗
echo ║ CampusCare Quick Start Setup ║
echo ╚════════════════════════════════════════════════════════════════════╝
echo.
REM Check Docker installation
echo [*] Checking Docker installation...
docker --version >nul 2>&1
if %errorlevel% neq 0 (
color 0C
echo [X] Docker is not installed
echo.
echo Please install Docker from https://www.docker.com/
pause
exit /b 1
)
for /f "tokens=3" %%i in ('docker --version') do set DOCKER_VERSION=%%i
color 0A
echo [OK] Docker is installed (version %DOCKER_VERSION%)
REM Check Docker Compose installation
echo [*] Checking Docker Compose installation...
docker-compose --version >nul 2>&1
if %errorlevel% neq 0 (
color 0C
echo [X] Docker Compose is not installed
echo.
echo Please install Docker Compose from https://docs.docker.com/compose/install/
pause
exit /b 1
)
color 0A
echo [OK] Docker Compose is installed
REM Check if .env file exists
echo [*] Checking environment configuration...
if exist .env (
color 0A
echo [OK] .env file found
) else (
color 0E
echo [!] .env file not found, creating from template...
if exist .env.docker.example (
copy .env.docker.example .env >nul
color 0A
echo [OK] Created .env from template
color 0E
echo.
echo [!] IMPORTANT: Please edit .env with your credentials:
echo.
echo Required environment variables:
echo - FIREBASE_PROJECT_ID
echo - FIREBASE_PRIVATE_KEY
echo - FIREBASE_CLIENT_EMAIL
echo - GOOGLE_GEMINI_API_KEY
echo - NEXT_PUBLIC_FIREBASE_API_KEY
echo - NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN
echo - NEXT_PUBLIC_FIREBASE_PROJECT_ID
echo.
pause
) else (
color 0C
echo [X] .env.docker.example not found!
pause
exit /b 1
)
)
color 0A
echo.
echo Available options:
echo 1 - Start development environment
echo 2 - Start production environment
echo 3 - Stop all services
echo 4 - View service logs
echo 5 - Restart services
echo 6 - Check service health
echo 7 - Clean up all (WARNING: removes volumes!)
echo.
set /p option="Select option (1-7): "
if "%option%"=="1" (
cls
echo [*] Starting development environment...
docker-compose up -d
timeout /t 2 /nobreak
cls
color 0A
echo [OK] Development services started!
echo.
echo Access URLs:
echo Frontend: http://localhost:3000
echo Backend: http://localhost:3001
echo ML API: http://localhost:5000
echo.
echo [*] Waiting for services to be ready (this may take a minute)...
timeout /t 5 /nobreak
cls
echo [*] Service status:
docker-compose ps
echo.
pause
echo [*] Viewing logs (close window to stop)...
docker-compose logs -f
) else if "%option%"=="2" (
cls
echo [*] Starting production environment...
docker-compose -f docker-compose.prod.yml up -d
timeout /t 2 /nobreak
cls
color 0A
echo [OK] Production services started!
echo.
echo [*] Service status:
docker-compose -f docker-compose.prod.yml ps
echo.
pause
) else if "%option%"=="3" (
cls
echo [*] Stopping all services...
docker-compose down
timeout /t 2 /nobreak
cls
color 0A
echo [OK] All services stopped!
pause
) else if "%option%"=="4" (
cls
echo Available services:
echo 1 - Frontend
echo 2 - Backend
echo 3 - ML API
echo 4 - All services
echo.
set /p service_option="Select service (1-4): "
if "!service_option!"=="1" (
docker-compose logs -f frontend
) else if "!service_option!"=="2" (
docker-compose logs -f backend
) else if "!service_option!"=="3" (
docker-compose logs -f ml-api
) else if "!service_option!"=="4" (
docker-compose logs -f
) else (
color 0C
echo [X] Invalid option
)
) else if "%option%"=="5" (
cls
echo [*] Restarting services...
docker-compose restart
timeout /t 2 /nobreak
cls
color 0A
echo [OK] Services restarted!
echo.
docker-compose ps
pause
) else if "%option%"=="6" (
cls
echo [*] Checking service health...
echo.
echo Frontend health:
docker-compose exec frontend curl http://localhost:3000 >nul 2>&1
if %errorlevel% equ 0 (
color 0A
echo [OK] Frontend is healthy
) else (
color 0C
echo [X] Frontend is unhealthy
)
color 0A
echo.
echo Backend health:
docker-compose exec backend curl http://localhost:3001/health >nul 2>&1
if %errorlevel% equ 0 (
color 0A
echo [OK] Backend is healthy
) else (
color 0C
echo [X] Backend is unhealthy
)
color 0A
echo.
echo ML API health:
docker-compose exec ml-api curl http://localhost:5000/api/ml/health >nul 2>&1
if %errorlevel% equ 0 (
color 0A
echo [OK] ML API is healthy
) else (
color 0C
echo [X] ML API is unhealthy
)
color 0A
echo.
pause
) else if "%option%"=="7" (
cls
color 0E
echo [!] This will remove all containers, images, and volumes!
echo.
set /p confirm="Are you sure? (type 'yes' to continue): "
if /i "!confirm!"=="yes" (
echo [*] Cleaning up...
docker-compose down -v --rmi all
timeout /t 2 /nobreak
cls
color 0A
echo [OK] Cleanup complete!
) else (
color 0E
echo [!] Cleanup cancelled
)
pause
) else (
color 0C
echo [X] Invalid option
pause
)
color 0A
echo.
echo [OK] Done!
pause