fix(docker): add llmlab-dashboard to setup.sh, fix service count to 31, add CORS_ORIGIN + NODE_ENV

- B1: Add llmlab-dashboard to WEB_SERVICES array (was missing, 30→31)
- B2: Add llmlab-dashboard to check-health.sh (port 3075)
- B3: Fix service count comments throughout (30→31)
- B6: Restore CWD after phase 3 git push loop
- G1: Add CORS_ORIGIN=* to phase6_env for remote browser access
- G2: Add NODE_ENV=production to phase6_env for all services
This commit is contained in:
saravanakumardb1 2026-03-28 00:40:25 -07:00
parent 5da71f3735
commit d8908093fa

View File

@ -3,6 +3,7 @@
# ByteLyst Single-VM Bootstrap Script # ByteLyst Single-VM Bootstrap Script
# ═══════════════════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════════════════
# Deploys the ENTIRE ByteLyst ecosystem on a **raw** Ubuntu Azure VM. # Deploys the ENTIRE ByteLyst ecosystem on a **raw** Ubuntu Azure VM.
# 31 services: 6 infra + 3 platform + 2 dashboards + 10 backends + 9 webs + 1 standalone
# Installs ALL dependencies from scratch — nothing pre-installed required. # Installs ALL dependencies from scratch — nothing pre-installed required.
# #
# What gets installed: # What gets installed:
@ -13,7 +14,7 @@
# - Ollama (local LLM inference for LocalMemGPT on :11434) # - Ollama (local LLM inference for LocalMemGPT on :11434)
# - All 12 ByteLyst repos (cloned from GitHub) # - All 12 ByteLyst repos (cloned from GitHub)
# - All @bytelyst/* packages (built + published to Gitea) # - All @bytelyst/* packages (built + published to Gitea)
# - Full 30-service ecosystem (via docker-compose.ecosystem.yml) # - Full 31-service ecosystem (via docker-compose.ecosystem.yml)
# #
# Usage: sudo ./setup.sh [OPTIONS] # Usage: sudo ./setup.sh [OPTIONS]
# #
@ -32,8 +33,8 @@
# 4 Build all @bytelyst/* packages # 4 Build all @bytelyst/* packages
# 5 Publish packages to Gitea npm registry # 5 Publish packages to Gitea npm registry
# 6 Generate .env.ecosystem config # 6 Generate .env.ecosystem config
# 7 Build + deploy 30 Docker services (per-service, with fallback) # 7 Build + deploy 31 Docker services (per-service, with fallback)
# 8 Health check (30 endpoints) # 8 Health check (31 endpoints)
# #
# Examples: # Examples:
# sudo ./setup.sh # Fresh install (all 8 phases) # sudo ./setup.sh # Fresh install (all 8 phases)
@ -529,6 +530,9 @@ phase3_clone() {
fi fi
done done
# Restore CWD after per-repo cd loop
cd "$INSTALL_DIR"
ok "Phase 3 complete. All repos in ${INSTALL_DIR}/ and pushed to Gitea." ok "Phase 3 complete. All repos in ${INSTALL_DIR}/ and pushed to Gitea."
} }
@ -696,6 +700,12 @@ FIELD_ENCRYPT_KEY_PROVIDER=memory
# Product Identity # Product Identity
DEFAULT_PRODUCT_ID=lysnrai DEFAULT_PRODUCT_ID=lysnrai
# Runtime environment
NODE_ENV=production
# CORS (allow all origins for dev/test VM — restrict in production)
CORS_ORIGIN=*
# Webhooks (disabled) # Webhooks (disabled)
WEBHOOK_INVITATION_REDEEMED_URL= WEBHOOK_INVITATION_REDEEMED_URL=
WEBHOOK_REFERRAL_STATUS_URL= WEBHOOK_REFERRAL_STATUS_URL=
@ -714,7 +724,7 @@ ENV
# ═══════════════════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════════════════
# PHASE 7: Deploy Ecosystem via Docker Compose # PHASE 7: Deploy Ecosystem via Docker Compose
# ═══════════════════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════════════════
# All 30 compose services, grouped for ordered build + reporting. # All 31 compose services, grouped for ordered build + reporting.
INFRA_SERVICES=(cosmos-emulator azurite mailpit loki grafana gateway) INFRA_SERVICES=(cosmos-emulator azurite mailpit loki grafana gateway)
PLATFORM_SERVICES=(platform-service extraction-service mcp-server) PLATFORM_SERVICES=(platform-service extraction-service mcp-server)
DASHBOARD_SERVICES=(admin-web tracker-web) DASHBOARD_SERVICES=(admin-web tracker-web)
@ -726,6 +736,7 @@ BACKEND_SERVICES=(
WEB_SERVICES=( WEB_SERVICES=(
lysnrai-dashboard chronomind-web jarvisjr-web flowmonk-web notelett-web lysnrai-dashboard chronomind-web jarvisjr-web flowmonk-web notelett-web
mindlyst-web nomgap-web actiontrail-web localmemgpt-web mindlyst-web nomgap-web actiontrail-web localmemgpt-web
llmlab-dashboard
) )
setup_compose_env() { setup_compose_env() {
@ -762,7 +773,7 @@ build_one_service() {
} }
phase7_deploy() { phase7_deploy() {
log "Phase 7: Deploying ecosystem (per-service build + fallback)..." log "Phase 7: Deploying 31-service ecosystem (per-service build + fallback)..."
# Free RAM: stop Ollama during Docker builds (Phase 1 will restart it, or we do at end) # Free RAM: stop Ollama during Docker builds (Phase 1 will restart it, or we do at end)
if systemctl is-active --quiet ollama 2>/dev/null; then if systemctl is-active --quiet ollama 2>/dev/null; then
@ -943,6 +954,7 @@ check "mindlyst-web" "http://localhost:3050"
check "nomgap-web" "http://localhost:3055" check "nomgap-web" "http://localhost:3055"
check "actiontrail-web" "http://localhost:3060" check "actiontrail-web" "http://localhost:3060"
check "localmemgpt-web" "http://localhost:3070" check "localmemgpt-web" "http://localhost:3070"
check "llmlab-dashboard" "http://localhost:3075"
echo "" echo ""
HEALTH HEALTH
chmod +x "${INSTALL_DIR}/check-health.sh" chmod +x "${INSTALL_DIR}/check-health.sh"
@ -1049,7 +1061,7 @@ main() {
echo "" echo ""
echo "╔═══════════════════════════════════════════════════════════════╗" echo "╔═══════════════════════════════════════════════════════════════╗"
echo "║ ByteLyst Single-VM Deployment (raw Ubuntu) ║" echo "║ ByteLyst Single-VM Deployment (raw Ubuntu) ║"
echo "║ 30 services · 10 products · Ollama · Gitea · 1 VM ║" echo "║ 31 services · 11 products · Ollama · Gitea · 1 VM ║"
echo "╚═══════════════════════════════════════════════════════════════╝" echo "╚═══════════════════════════════════════════════════════════════╝"
echo "" echo ""
log "Log file: ${INSTALL_DIR}/setup.log" log "Log file: ${INSTALL_DIR}/setup.log"