@@ -57,9 +57,7 @@ show_help() {
5757 echo " Commands:"
5858 echo " dev [options] Start full stack (docker-compose)"
5959 echo " --build Rebuild images"
60- echo " --ci CI mode: skip observability, wait for healthy"
6160 echo " --wait Wait for services to be healthy"
62- echo " --no-observability Skip Jaeger, Grafana, metrics collectors"
6361 echo " --timeout <secs> Health check timeout (default: 300)"
6462 echo " infra [options] Start infrastructure only (mongo, redis, kafka, etc.)"
6563 echo " --wait Wait for services to be healthy"
@@ -80,13 +78,16 @@ show_help() {
8078 echo " --local Force local build even with --prod values"
8179 echo " --set key=value Override Helm values"
8280 echo " "
81+ echo " Configuration:"
82+ echo " All settings come from backend/.env (single source of truth)"
83+ echo " For CI/tests: cp backend/.env.test backend/.env"
84+ echo " Observability (Jaeger, Grafana) auto-enabled if OTEL_EXPORTER_OTLP_ENDPOINT is set"
85+ echo " "
8386 echo " Examples:"
8487 echo " ./deploy.sh dev # Start dev environment"
8588 echo " ./deploy.sh dev --build # Rebuild and start"
89+ echo " ./deploy.sh dev --wait # Start and wait for healthy"
8690 echo " ./deploy.sh prod # Deploy with local images"
87- echo " ./deploy.sh prod --prod # Deploy with registry images (no build)"
88- echo " ./deploy.sh prod --prod --local # Deploy prod values but build locally"
89- echo " ./deploy.sh prod --set mongodb.auth.rootPassword=secret"
9091 echo " ./deploy.sh logs backend # View backend logs"
9192}
9293
@@ -97,27 +98,15 @@ cmd_dev() {
9798 print_header " Starting Local Development Environment"
9899
99100 local BUILD_FLAG=" "
100- local PROFILE_FLAGS=" --profile observability"
101101 local WAIT_FLAG=" "
102102 local WAIT_TIMEOUT=" 300"
103- local CI_MODE=false
104103
105104 while [[ $# -gt 0 ]]; do
106105 case " $1 " in
107106 --build)
108107 BUILD_FLAG=" --build"
109108 print_info " Rebuilding images..."
110109 ;;
111- --no-observability)
112- PROFILE_FLAGS=" "
113- print_info " Skipping observability services (Jaeger, Grafana, etc.)"
114- ;;
115- --ci)
116- PROFILE_FLAGS=" "
117- WAIT_FLAG=" --wait"
118- CI_MODE=true
119- print_info " CI mode: skipping observability, waiting for healthy"
120- ;;
121110 --wait)
122111 WAIT_FLAG=" --wait"
123112 ;;
@@ -134,34 +123,33 @@ cmd_dev() {
134123 WAIT_TIMEOUT_FLAG=" --wait-timeout $WAIT_TIMEOUT "
135124 fi
136125
137- # In CI mode, disable tracing (no Jaeger). Otherwise let env_file control it.
138- if [[ " $CI_MODE " == " true" ]]; then
139- ENABLE_TRACING=false docker compose $PROFILE_FLAGS up -d $BUILD_FLAG $WAIT_FLAG $WAIT_TIMEOUT_FLAG
126+ # Auto-detect observability: enable if OTEL endpoint is configured in .env
127+ local PROFILE_FLAGS=" "
128+ if grep -q " ^OTEL_EXPORTER_OTLP_ENDPOINT=" ./backend/.env 2> /dev/null; then
129+ PROFILE_FLAGS=" --profile observability"
130+ print_info " Observability enabled (OTEL endpoint configured in .env)"
140131 else
141- docker compose $PROFILE_FLAGS up -d $BUILD_FLAG $WAIT_FLAG $WAIT_TIMEOUT_FLAG
132+ print_info " Observability disabled (no OTEL endpoint in .env) "
142133 fi
143134
144- if [[ " $CI_MODE " == " true" ]]; then
145- print_success " Stack started and healthy"
146- docker compose ps
147- else
148- echo " "
149- print_success " Development environment started!"
150- echo " "
151- echo " Services:"
152- echo " Backend: https://localhost:443"
153- echo " Frontend: https://localhost:5001"
154- echo " Kafdrop: http://localhost:9000"
155- if [[ -n " $PROFILE_FLAGS " ]]; then
156- echo " Jaeger: http://localhost:16686"
157- echo " Grafana: http://localhost:3000"
158- fi
159- echo " "
160- echo " Commands:"
161- echo " ./deploy.sh logs # View all logs"
162- echo " ./deploy.sh logs backend # View backend logs"
163- echo " ./deploy.sh down # Stop all services"
135+ docker compose $PROFILE_FLAGS up -d $BUILD_FLAG $WAIT_FLAG $WAIT_TIMEOUT_FLAG
136+
137+ echo " "
138+ print_success " Development environment started!"
139+ echo " "
140+ echo " Services:"
141+ echo " Backend: https://localhost:443"
142+ echo " Frontend: https://localhost:5001"
143+ echo " Kafdrop: http://localhost:9000"
144+ if [[ -n " $PROFILE_FLAGS " ]]; then
145+ echo " Jaeger: http://localhost:16686"
146+ echo " Grafana: http://localhost:3000"
164147 fi
148+ echo " "
149+ echo " Commands:"
150+ echo " ./deploy.sh logs # View all logs"
151+ echo " ./deploy.sh logs backend # View backend logs"
152+ echo " ./deploy.sh down # Stop all services"
165153}
166154
167155cmd_down () {
0 commit comments