feat(devops): add efforise to single-vm ecosystem

This commit is contained in:
root 2026-03-29 23:34:05 +00:00
parent 80e6268924
commit 1b7a68c8a8
2 changed files with 33 additions and 13 deletions

View File

@ -24,8 +24,8 @@
# localmemgpt 4019, efforise 4020 # localmemgpt 4019, efforise 4020
# Product webs: chronomind 3030, jarvisjr 3035, flowmonk 3040, # Product webs: chronomind 3030, jarvisjr 3035, flowmonk 3040,
# notelett 3045, mindlyst 3050, nomgap 3055, # notelett 3045, mindlyst 3050, nomgap 3055,
# actiontrail 3060, localmemgpt 3070, efforise 3080, # actiontrail 3060, localmemgpt 3070, lysnrai 3002,
# lysnrai 3002 # efforise 3080
# Product Dockerfiles require BuildKit secrets for Gitea npm registry access. # Product Dockerfiles require BuildKit secrets for Gitea npm registry access.
# GITEA_NPM_HOST defaults to host.docker.internal (Mac local dev). # GITEA_NPM_HOST defaults to host.docker.internal (Mac local dev).
@ -779,6 +779,23 @@ services:
retries: 3 retries: 3
restart: unless-stopped 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) ── # ── Local LLM Lab (no backend — dashboard talks directly to Ollama) ──
llmlab-dashboard: llmlab-dashboard:

View File

@ -3,7 +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 # 33 services: 6 infra + 3 platform + 2 dashboards + 11 backends + 10 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:
@ -12,9 +12,9 @@
# - Gitea (Docker container — npm package registry + CI on :3300) # - Gitea (Docker container — npm package registry + CI on :3300)
# - act_runner (Gitea CI runner — systemd service, host mode) # - act_runner (Gitea CI runner — systemd service, host mode)
# - Ollama (local LLM inference for LocalMemGPT on :11434) # - 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) # - 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] # Usage: sudo ./setup.sh [OPTIONS]
# #
@ -30,12 +30,12 @@
# Phases: # Phases:
# 1 System dependencies (Docker, Node, pnpm, Ollama) # 1 System dependencies (Docker, Node, pnpm, Ollama)
# 2 Gitea npm registry + CI runner (container on :3300 + act_runner systemd) # 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 # 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 31 Docker services (per-service, with fallback) # 7 Build + deploy 33 Docker services (per-service, with fallback)
# 8 Health check (31 endpoints) # 8 Health check (33 endpoints)
# #
# Examples: # Examples:
# sudo ./setup.sh # Fresh install (all 8 phases) # sudo ./setup.sh # Fresh install (all 8 phases)
@ -90,6 +90,7 @@ REPOS=(
learning_ai_trails learning_ai_trails
learning_ai_local_memory_gpt learning_ai_local_memory_gpt
learning_ai_local_llms learning_ai_local_llms
learning_ai_efforise
) )
# ── Helpers ────────────────────────────────────────────────────────── # ── Helpers ──────────────────────────────────────────────────────────
@ -820,18 +821,18 @@ ENV
# ═══════════════════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════════════════
# PHASE 7: Deploy Ecosystem via Docker Compose # 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) 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)
BACKEND_SERVICES=( BACKEND_SERVICES=(
peakpulse-backend chronomind-backend jarvisjr-backend nomgap-backend peakpulse-backend chronomind-backend jarvisjr-backend nomgap-backend
mindlyst-backend lysnrai-backend notelett-backend flowmonk-backend mindlyst-backend lysnrai-backend notelett-backend flowmonk-backend
actiontrail-backend localmemgpt-backend actiontrail-backend localmemgpt-backend efforise-backend
) )
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 efforise-web
llmlab-dashboard llmlab-dashboard
) )
@ -869,7 +870,7 @@ build_one_service() {
} }
phase7_deploy() { 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) # 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
@ -1038,6 +1039,7 @@ check "notelett" "http://localhost:4016/health"
check "flowmonk" "http://localhost:4017/health" check "flowmonk" "http://localhost:4017/health"
check "actiontrail" "http://localhost:4018/health" check "actiontrail" "http://localhost:4018/health"
check "localmemgpt" "http://localhost:4019/health" check "localmemgpt" "http://localhost:4019/health"
check "efforise" "http://localhost:4020/health"
echo "" echo ""
echo "═══ Product Web Apps ═══" echo "═══ Product Web Apps ═══"
@ -1050,6 +1052,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 "efforise-web" "http://localhost:3080"
check "llmlab-dashboard" "http://localhost:3075" check "llmlab-dashboard" "http://localhost:3075"
echo "" echo ""
HEALTH HEALTH
@ -1162,7 +1165,7 @@ main() {
echo "" echo ""
echo "╔═══════════════════════════════════════════════════════════════╗" echo "╔═══════════════════════════════════════════════════════════════╗"
echo "║ ByteLyst Single-VM Deployment (raw Ubuntu) ║" 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 "╚═══════════════════════════════════════════════════════════════╝"
echo "" echo ""
log "Log file: ${INSTALL_DIR}/setup.log" log "Log file: ${INSTALL_DIR}/setup.log"