fix(compose): add healthchecks for all web services, remove dead NEXT_PUBLIC_* runtime vars

- G4: Add healthcheck to all 9 product web services (matching llmlab-dashboard pattern)
- B4: Remove dead NEXT_PUBLIC_* from runtime environment (Next.js bakes at build time only)
- Replace with non-prefixed server-side vars (PLATFORM_SERVICE_URL, BACKEND_URL, etc.)
- Add clarifying comments on build-time vs runtime var behavior
This commit is contained in:
saravanakumardb1 2026-03-28 00:42:18 -07:00
parent d8908093fa
commit f9a20e4612

View File

@ -530,6 +530,7 @@ services:
dockerfile: user-dashboard-web/Dockerfile dockerfile: user-dashboard-web/Dockerfile
args: args:
GITEA_NPM_HOST: ${GITEA_NPM_HOST:-host.docker.internal} GITEA_NPM_HOST: ${GITEA_NPM_HOST:-host.docker.internal}
# NEXT_PUBLIC_* args are baked at build time for browser-side code
NEXT_PUBLIC_PLATFORM_SERVICE_URL: http://localhost:4003 NEXT_PUBLIC_PLATFORM_SERVICE_URL: http://localhost:4003
NEXT_PUBLIC_PRODUCT_ID: lysnrai NEXT_PUBLIC_PRODUCT_ID: lysnrai
ports: ports:
@ -537,13 +538,17 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- PORT=3002 - PORT=3002
# Non-prefixed vars are used by server-side code (API routes, SSR)
- PLATFORM_SERVICE_URL=http://platform-service:4003 - PLATFORM_SERVICE_URL=http://platform-service:4003
- ACTIONTRAIL_SERVICE_URL=http://actiontrail-backend:4018 - ACTIONTRAIL_SERVICE_URL=http://actiontrail-backend:4018
- NEXT_PUBLIC_PLATFORM_SERVICE_URL=http://platform-service:4003
- NEXT_PUBLIC_PRODUCT_ID=lysnrai
depends_on: depends_on:
lysnrai-backend: lysnrai-backend:
condition: service_healthy condition: service_healthy
healthcheck:
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3002']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped restart: unless-stopped
chronomind-web: chronomind-web:
@ -560,11 +565,16 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- PORT=3030 - PORT=3030
- NEXT_PUBLIC_BACKEND_URL=http://chronomind-backend:4011 - BACKEND_URL=http://chronomind-backend:4011
- NEXT_PUBLIC_PLATFORM_SERVICE_URL=http://platform-service:4003 - PLATFORM_SERVICE_URL=http://platform-service:4003
depends_on: depends_on:
chronomind-backend: chronomind-backend:
condition: service_healthy condition: service_healthy
healthcheck:
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3030']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped restart: unless-stopped
jarvisjr-web: jarvisjr-web:
@ -580,10 +590,15 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- PORT=3035 - PORT=3035
- NEXT_PUBLIC_PLATFORM_SERVICE_URL=http://platform-service:4003 - PLATFORM_SERVICE_URL=http://platform-service:4003
depends_on: depends_on:
jarvisjr-backend: jarvisjr-backend:
condition: service_healthy condition: service_healthy
healthcheck:
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3035']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped restart: unless-stopped
flowmonk-web: flowmonk-web:
@ -600,11 +615,16 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- PORT=3040 - PORT=3040
- NEXT_PUBLIC_API_URL=http://flowmonk-backend:4017 - API_URL=http://flowmonk-backend:4017
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003/api - PLATFORM_URL=http://platform-service:4003/api
depends_on: depends_on:
flowmonk-backend: flowmonk-backend:
condition: service_healthy condition: service_healthy
healthcheck:
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3040']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped restart: unless-stopped
notelett-web: notelett-web:
@ -621,11 +641,16 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- PORT=3045 - PORT=3045
- NEXT_PUBLIC_NOTES_API_URL=http://notelett-backend:4016/api - NOTES_API_URL=http://notelett-backend:4016/api
- NEXT_PUBLIC_PLATFORM_SERVICE_URL=http://platform-service:4003/api - PLATFORM_SERVICE_URL=http://platform-service:4003/api
depends_on: depends_on:
notelett-backend: notelett-backend:
condition: service_healthy condition: service_healthy
healthcheck:
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3045']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped restart: unless-stopped
mindlyst-web: mindlyst-web:
@ -641,10 +666,15 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- PORT=3050 - PORT=3050
- NEXT_PUBLIC_PLATFORM_SERVICE_URL=http://platform-service:4003 - PLATFORM_SERVICE_URL=http://platform-service:4003
depends_on: depends_on:
mindlyst-backend: mindlyst-backend:
condition: service_healthy condition: service_healthy
healthcheck:
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3050']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped restart: unless-stopped
nomgap-web: nomgap-web:
@ -661,11 +691,16 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- PORT=3055 - PORT=3055
- NEXT_PUBLIC_NOMGAP_API_URL=http://nomgap-backend:4013/api - NOMGAP_API_URL=http://nomgap-backend:4013/api
- NEXT_PUBLIC_PLATFORM_SERVICE_URL=http://platform-service:4003/api - PLATFORM_SERVICE_URL=http://platform-service:4003/api
depends_on: depends_on:
nomgap-backend: nomgap-backend:
condition: service_healthy condition: service_healthy
healthcheck:
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3055']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped restart: unless-stopped
actiontrail-web: actiontrail-web:
@ -682,11 +717,16 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- PORT=3060 - PORT=3060
- NEXT_PUBLIC_API_URL=http://actiontrail-backend:4018 - API_URL=http://actiontrail-backend:4018
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003 - PLATFORM_URL=http://platform-service:4003
depends_on: depends_on:
actiontrail-backend: actiontrail-backend:
condition: service_healthy condition: service_healthy
healthcheck:
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3060']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped restart: unless-stopped
localmemgpt-web: localmemgpt-web:
@ -703,11 +743,16 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- PORT=3070 - PORT=3070
- NEXT_PUBLIC_BACKEND_URL=http://localmemgpt-backend:4019 - BACKEND_URL=http://localmemgpt-backend:4019
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003 - PLATFORM_URL=http://platform-service:4003
depends_on: depends_on:
localmemgpt-backend: localmemgpt-backend:
condition: service_healthy condition: service_healthy
healthcheck:
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3070']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped restart: unless-stopped
# ── Local LLM Lab (no backend — dashboard talks directly to Ollama) ── # ── Local LLM Lab (no backend — dashboard talks directly to Ollama) ──