-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdev.bat
More file actions
169 lines (153 loc) · 4.51 KB
/
Copy pathdev.bat
File metadata and controls
169 lines (153 loc) · 4.51 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
@echo off
setlocal enabledelayedexpansion
cd /d "%~dp0"
title Evenly - Dev Steuerung
REM ============================================================
REM Evenly - Dev-Launcher fuer den Docker-Stack
REM (App + PostgreSQL)
REM ============================================================
REM --- .env automatisch anlegen, falls nicht vorhanden ---------
if not exist ".env" (
if exist ".env.example" (
copy /y ".env.example" ".env" >nul
echo [Setup] .env wurde aus .env.example erstellt.
) else (
echo [Warnung] .env.example nicht gefunden - es wird nur mit Docker-Standardwerten gestartet.
)
timeout /t 2 >nul
)
REM --- Pruefen ob Docker laeuft --------------------------------
docker version >nul 2>&1
if errorlevel 1 (
echo.
echo [Fehler] Docker ist nicht erreichbar.
echo Bitte starte "Docker Desktop" und fuehre dev.bat erneut aus.
echo.
pause
exit /b 1
)
:menu
cls
set "RUNCOUNT=0"
for /f %%s in ('docker compose ps --services --status running 2^>nul') do set /a RUNCOUNT+=1
echo ============================================================
echo E V E N L Y - Dev
echo ============================================================
echo Laufende Dienste: !RUNCOUNT! / 2
echo App: http://localhost:3000
echo E-Mails: erfordern SMTP (in .env: SMTP_HOST, sonst deaktiviert)
echo ------------------------------------------------------------
echo.
echo [1] Starten (Stack hochfahren, baut bei Bedarf)
echo [2] Neu bauen / Update (App-Image neu bauen + starten)
echo [3] Stoppen (Container stoppen, Daten bleiben)
echo [4] App neu starten
echo [5] Logs anzeigen (eigenes Fenster, mit STRG+C beenden)
echo [6] Status
echo [7] Datenbank zuruecksetzen (Volumes loeschen + leer neu starten)
echo [8] App im Browser oeffnen
echo [9] ALLES loeschen (Container + Volumes + Image)
echo [0] Beenden
echo.
set "choice="
set /p choice=Auswahl:
if "%choice%"=="1" goto start
if "%choice%"=="2" goto rebuild
if "%choice%"=="3" goto stop
if "%choice%"=="4" goto restart
if "%choice%"=="5" goto logs
if "%choice%"=="6" goto status
if "%choice%"=="7" goto resetdb
if "%choice%"=="8" goto browser
if "%choice%"=="9" goto nuke
if "%choice%"=="0" goto end
echo Ungueltige Auswahl.
timeout /t 1 >nul
goto menu
:start
echo.
echo Starte Evenly... (erster Start kann einige Minuten dauern - Image wird gebaut)
docker compose up -d
if errorlevel 1 ( echo. & echo [Fehler] Start fehlgeschlagen. & pause & goto menu )
call :urls
pause
goto menu
:rebuild
echo.
echo Baue App-Image neu und starte (Update nach Code-Aenderungen)...
docker compose up -d --build
if errorlevel 1 ( echo. & echo [Fehler] Build/Start fehlgeschlagen. & pause & goto menu )
call :urls
pause
goto menu
:stop
echo.
echo Stoppe Container (Daten bleiben erhalten)...
docker compose stop
echo Gestoppt.
pause
goto menu
:restart
echo.
echo Starte die App neu...
docker compose restart app
echo Fertig.
pause
goto menu
:logs
echo.
echo Oeffne App-Logs in einem neuen Fenster (STRG+C beendet die Logs)...
start "Evenly Logs" cmd /k docker compose logs -f app
timeout /t 1 >nul
goto menu
:status
echo.
docker compose ps
echo.
pause
goto menu
:resetdb
echo.
echo [Achtung] Dies LOESCHT die Datenbank und hochgeladene Dateien
echo und startet danach mit einer leeren Datenbank.
set "ok="
set /p ok=Wirklich zuruecksetzen? (j/n):
if /i not "%ok%"=="j" ( echo Abgebrochen. & timeout /t 1 >nul & goto menu )
echo.
echo Entferne Volumes und starte neu...
docker compose down -v
docker compose up -d
if errorlevel 1 ( echo. & echo [Fehler] Zuruecksetzen fehlgeschlagen. & pause & goto menu )
echo Datenbank wurde zurueckgesetzt (leer, Migrationen laufen beim Start).
call :urls
pause
goto menu
:browser
echo.
echo Oeffne die App im Browser...
start "" http://localhost:3000
timeout /t 1 >nul
goto menu
:nuke
echo.
echo [Achtung] Dies entfernt ALLE Evenly-Container, Volumes (Daten!)
echo und das lokal gebaute App-Image.
set "ok="
set /p ok=Wirklich ALLES loeschen? (j/n):
if /i not "%ok%"=="j" ( echo Abgebrochen. & timeout /t 1 >nul & goto menu )
echo.
docker compose down -v --rmi local --remove-orphans
echo Alles entfernt. Mit [1] oder [2] kannst du neu starten.
pause
goto menu
:urls
echo.
echo ------------------------------------------------------------
echo Evenly laeuft:
echo App ^> http://localhost:3000 (Konto ueber "Registrieren" anlegen)
echo E-Mails ^> SMTP in .env setzen (sonst Mail-Funktionen deaktiviert)
echo ------------------------------------------------------------
exit /b 0
:end
endlocal
exit /b 0