From 1b7a68c8a85c6aef88a7e32a63a66fbeb5559a87 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 29 Mar 2026 23:34:05 +0000 Subject: [PATCH] feat(devops): add efforise to single-vm ecosystem --- docker-compose.ecosystem.yml | 21 +++++++++++++++-- docs/devops/single_azure_vm/docker/setup.sh | 25 ++++++++++++--------- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/docker-compose.ecosystem.yml b/docker-compose.ecosystem.yml index 89d1023d..53e6e7da 100644 --- a/docker-compose.ecosystem.yml +++ b/docker-compose.ecosystem.yml @@ -24,8 +24,8 @@ # localmemgpt 4019, efforise 4020 # Product webs: chronomind 3030, jarvisjr 3035, flowmonk 3040, # notelett 3045, mindlyst 3050, nomgap 3055, -# actiontrail 3060, localmemgpt 3070, efforise 3080, -# lysnrai 3002 +# actiontrail 3060, localmemgpt 3070, lysnrai 3002, +# efforise 3080 # Product Dockerfiles require BuildKit secrets for Gitea npm registry access. # GITEA_NPM_HOST defaults to host.docker.internal (Mac local dev). @@ -779,6 +779,23 @@ services: retries: 3 restart: unless-stopped + efforise-web: + build: + <<: *product-build + context: ../learning_ai_efforise + dockerfile: client/Dockerfile + ports: + - '3080:3080' + depends_on: + efforise-backend: + condition: service_healthy + healthcheck: + test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3080'] + interval: 30s + timeout: 10s + retries: 3 + restart: unless-stopped + # ── Local LLM Lab (no backend — dashboard talks directly to Ollama) ── llmlab-dashboard: diff --git a/docs/devops/single_azure_vm/docker/setup.sh b/docs/devops/single_azure_vm/docker/setup.sh index a9fa49d8..3dad799e 100755 --- a/docs/devops/single_azure_vm/docker/setup.sh +++ b/docs/devops/single_azure_vm/docker/setup.sh @@ -3,7 +3,7 @@ # ByteLyst Single-VM Bootstrap Script # ═══════════════════════════════════════════════════════════════════════ # 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 +# 33 services: 6 infra + 3 platform + 2 dashboards + 11 backends + 10 webs + 1 standalone # Installs ALL dependencies from scratch — nothing pre-installed required. # # What gets installed: @@ -12,9 +12,9 @@ # - Gitea (Docker container — npm package registry + CI on :3300) # - act_runner (Gitea CI runner — systemd service, host mode) # - Ollama (local LLM inference for LocalMemGPT on :11434) -# - All 12 ByteLyst repos (cloned from GitHub) +# - All 13 ByteLyst repos (cloned from GitHub) # - All @bytelyst/* packages (built + published to Gitea) -# - Full 31-service ecosystem (via docker-compose.ecosystem.yml) +# - Full 33-service ecosystem (via docker-compose.ecosystem.yml) # # Usage: sudo ./setup.sh [OPTIONS] # @@ -30,12 +30,12 @@ # Phases: # 1 System dependencies (Docker, Node, pnpm, Ollama) # 2 Gitea npm registry + CI runner (container on :3300 + act_runner systemd) -# 3 Clone 12 repositories from GitHub + push to Gitea +# 3 Clone 13 repositories from GitHub + push to Gitea # 4 Build all @bytelyst/* packages # 5 Publish packages to Gitea npm registry # 6 Generate .env.ecosystem config -# 7 Build + deploy 31 Docker services (per-service, with fallback) -# 8 Health check (31 endpoints) +# 7 Build + deploy 33 Docker services (per-service, with fallback) +# 8 Health check (33 endpoints) # # Examples: # sudo ./setup.sh # Fresh install (all 8 phases) @@ -90,6 +90,7 @@ REPOS=( learning_ai_trails learning_ai_local_memory_gpt learning_ai_local_llms + learning_ai_efforise ) # ── Helpers ────────────────────────────────────────────────────────── @@ -820,18 +821,18 @@ ENV # ═══════════════════════════════════════════════════════════════════════ # PHASE 7: Deploy Ecosystem via Docker Compose # ═══════════════════════════════════════════════════════════════════════ -# All 31 compose services, grouped for ordered build + reporting. +# All 33 compose services, grouped for ordered build + reporting. INFRA_SERVICES=(cosmos-emulator azurite mailpit loki grafana gateway) PLATFORM_SERVICES=(platform-service extraction-service mcp-server) DASHBOARD_SERVICES=(admin-web tracker-web) BACKEND_SERVICES=( peakpulse-backend chronomind-backend jarvisjr-backend nomgap-backend mindlyst-backend lysnrai-backend notelett-backend flowmonk-backend - actiontrail-backend localmemgpt-backend + actiontrail-backend localmemgpt-backend efforise-backend ) WEB_SERVICES=( 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 efforise-web llmlab-dashboard ) @@ -869,7 +870,7 @@ build_one_service() { } phase7_deploy() { - log "Phase 7: Deploying 31-service ecosystem (per-service build + fallback)..." + log "Phase 7: Deploying 33-service ecosystem (per-service build + fallback)..." # 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 @@ -1038,6 +1039,7 @@ check "notelett" "http://localhost:4016/health" check "flowmonk" "http://localhost:4017/health" check "actiontrail" "http://localhost:4018/health" check "localmemgpt" "http://localhost:4019/health" +check "efforise" "http://localhost:4020/health" echo "" echo "═══ Product Web Apps ═══" @@ -1050,6 +1052,7 @@ check "mindlyst-web" "http://localhost:3050" check "nomgap-web" "http://localhost:3055" check "actiontrail-web" "http://localhost:3060" check "localmemgpt-web" "http://localhost:3070" +check "efforise-web" "http://localhost:3080" check "llmlab-dashboard" "http://localhost:3075" echo "" HEALTH @@ -1162,7 +1165,7 @@ main() { echo "" echo "╔═══════════════════════════════════════════════════════════════╗" echo "║ ByteLyst Single-VM Deployment (raw Ubuntu) ║" - echo "║ 31 services · 11 products · Ollama · Gitea · 1 VM ║" + echo "║ 33 services · 12 products · Ollama · Gitea · 1 VM ║" echo "╚═══════════════════════════════════════════════════════════════╝" echo "" log "Log file: ${INSTALL_DIR}/setup.log"