diff --git a/docs/devops/ECOSYSTEM_DEPLOYMENT.md b/docs/devops/ECOSYSTEM_DEPLOYMENT.md index 08e6c526..159a4fdb 100644 --- a/docs/devops/ECOSYSTEM_DEPLOYMENT.md +++ b/docs/devops/ECOSYSTEM_DEPLOYMENT.md @@ -3,6 +3,10 @@ > **File:** `docker-compose.ecosystem.yml` > **Purpose:** Run the entire ByteLyst ecosystem in a single Docker Compose stack. +Related: + +- [`ENDPOINT_INVENTORY.md`](./ENDPOINT_INVENTORY.md) — canonical endpoint inventory across local, Azure VM, and domain-based ingress + --- ## Prerequisites diff --git a/docs/devops/ENDPOINT_INVENTORY.md b/docs/devops/ENDPOINT_INVENTORY.md new file mode 100644 index 00000000..1321d1a0 --- /dev/null +++ b/docs/devops/ENDPOINT_INVENTORY.md @@ -0,0 +1,248 @@ +# ByteLyst Endpoint Inventory + +> Canonical endpoint inventory for local Docker Compose, the single Azure VM, and documented domain-based ingress. +> Use this file as the source of truth when Saravana needs the full list of backend URLs, website URLs, internal surfaces, and public gateway patterns. + +--- + +## Scope + +This document consolidates endpoint tracking that was previously split across: + +- [`ECOSYSTEM_DEPLOYMENT.md`](./ECOSYSTEM_DEPLOYMENT.md) +- [`single_azure_vm/docker/README.md`](./single_azure_vm/docker/README.md) +- [`vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md`](./vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md) +- [`single_azure_vm/docker/SECURE_API_EXPOSURE.md`](./single_azure_vm/docker/SECURE_API_EXPOSURE.md) +- [`single_azure_vm/docker/Caddyfile.bytelyst.example`](./single_azure_vm/docker/Caddyfile.bytelyst.example) + +Use the environment-specific sections below: + +- `localhost` URLs: local Docker Compose development +- `http://:` URLs: direct Azure VM access and validation +- `https://...bytelyst.com` URLs: documented ingress and public-facing DNS patterns + +--- + +## Deployment Rule + +- Azure VM / Docker hosts backend services, shared infrastructure, internal dashboards, internal portals, and internal product web surfaces +- Vercel is reserved for clearly public-facing portal web surfaces +- `admin-web`, `tracker-web`, and similar operator-facing apps stay on the VM +- Product backend APIs should be consumed through the shared API gateway pattern instead of raw public VM ports + +--- + +## Local Docker Compose Endpoints + +These are the standard local URLs from the compose stack in [`ECOSYSTEM_DEPLOYMENT.md`](./ECOSYSTEM_DEPLOYMENT.md). + +### Infrastructure + +| Service | Port | URL | +| -------------------- | ----: | ------------------------ | +| Cosmos DB Emulator | 8081 | `http://localhost:8081` | +| Cosmos Data Explorer | 1234 | `http://localhost:1234` | +| Azurite (Blob) | 10000 | `http://localhost:10000` | +| Mailpit SMTP | 1025 | none | +| Mailpit UI | 8025 | `http://localhost:8025` | +| Loki | 3100 | `http://localhost:3100` | +| Grafana | 3000 | `http://localhost:3000` | +| Traefik Dashboard | 8080 | `http://localhost:8080` | + +### Platform Services + +| Service | Port | Health URL | +| ------------------ | ---: | ------------------------------ | +| platform-service | 4003 | `http://localhost:4003/health` | +| extraction-service | 4005 | `http://localhost:4005/health` | +| mcp-server | 4007 | `http://localhost:4007/health` | + +### Platform Dashboards + +| Surface | Port | URL | Audience | +| ------------- | ---: | ----------------------- | -------- | +| Admin Console | 3001 | `http://localhost:3001` | internal | +| Issue Tracker | 3003 | `http://localhost:3003` | internal | + +### Product Backends + +| Product | Port | Health URL | +| ----------- | ---: | ------------------------------ | +| PeakPulse | 4010 | `http://localhost:4010/health` | +| ChronoMind | 4011 | `http://localhost:4011/health` | +| JarvisJr | 4012 | `http://localhost:4012/health` | +| NomGap | 4013 | `http://localhost:4013/health` | +| MindLyst | 4014 | `http://localhost:4014/health` | +| LysnrAI | 4015 | `http://localhost:4015/health` | +| NoteLett | 4016 | `http://localhost:4016/health` | +| FlowMonk | 4017 | `http://localhost:4017/health` | +| ActionTrail | 4018 | `http://localhost:4018/health` | +| LocalMemGPT | 4019 | `http://localhost:4019/health` | + +### Product Web Apps + +| Product | Port | URL | Audience | +| ----------------- | ---: | ----------------------- | ------------------------------ | +| LysnrAI Dashboard | 3002 | `http://localhost:3002` | internal in VM plan | +| ChronoMind | 3030 | `http://localhost:3030` | internal in VM plan | +| JarvisJr | 3035 | `http://localhost:3035` | internal in VM plan | +| FlowMonk | 3040 | `http://localhost:3040` | internal in VM plan | +| NoteLett | 3045 | `http://localhost:3045` | internal in VM plan | +| MindLyst | 3050 | `http://localhost:3050` | internal in VM plan | +| NomGap | 3055 | `http://localhost:3055` | internal in VM plan | +| ActionTrail | 3060 | `http://localhost:3060` | internal in VM plan | +| LocalMemGPT | 3070 | `http://localhost:3070` | public-facing portal candidate | + +--- + +## Azure VM Direct Endpoints + +These are the direct VM URLs from [`single_azure_vm/docker/README.md`](./single_azure_vm/docker/README.md). Use them for deployment checks, direct access, and troubleshooting. + +### Infrastructure + +| Service | Port | URL | +| -------------------- | ----: | --------------------------- | +| Gitea (npm registry) | 3300 | `http://:3300` | +| Ollama (LLM API) | 11434 | `http://:11434` | +| Cosmos Data Explorer | 1234 | `http://:1234` | +| Azurite (Blob) | 10000 | `http://:10000` | +| Mailpit UI | 8025 | `http://:8025` | +| Loki (Logs) | 3100 | `http://:3100/ready` | +| Grafana | 3000 | `http://:3000` | +| Traefik Dashboard | 8080 | `http://:8080` | + +### Platform Services + +| Service | Port | Health URL | +| ------------------ | ---: | ---------------------------- | +| platform-service | 4003 | `http://:4003/health` | +| extraction-service | 4005 | `http://:4005/health` | +| mcp-server | 4007 | `http://:4007/health` | + +### Platform Dashboards + +| Surface | Port | URL | Audience | +| ------------- | ---: | --------------------- | -------- | +| Admin Console | 3001 | `http://:3001` | internal | +| Issue Tracker | 3003 | `http://:3003` | internal | + +### Product Backends + +| Product | Port | Health URL | +| ----------- | ---: | ---------------------------- | +| PeakPulse | 4010 | `http://:4010/health` | +| ChronoMind | 4011 | `http://:4011/health` | +| JarvisJr | 4012 | `http://:4012/health` | +| NomGap | 4013 | `http://:4013/health` | +| MindLyst | 4014 | `http://:4014/health` | +| LysnrAI | 4015 | `http://:4015/health` | +| NoteLett | 4016 | `http://:4016/health` | +| FlowMonk | 4017 | `http://:4017/health` | +| ActionTrail | 4018 | `http://:4018/health` | +| LocalMemGPT | 4019 | `http://:4019/health` | + +### VM-Hosted Web Surfaces + +| Surface | Port | URL | Audience | +| ----------------- | ---: | --------------------- | -------- | +| Admin Console | 3001 | `http://:3001` | internal | +| Issue Tracker | 3003 | `http://:3003` | internal | +| LysnrAI Dashboard | 3002 | `http://:3002` | internal | +| ChronoMind | 3030 | `http://:3030` | internal | +| JarvisJr | 3035 | `http://:3035` | internal | +| FlowMonk | 3040 | `http://:3040` | internal | +| NoteLett | 3045 | `http://:3045` | internal | +| MindLyst | 3050 | `http://:3050` | internal | +| NomGap | 3055 | `http://:3055` | internal | +| ActionTrail | 3060 | `http://:3060` | internal | +| LLM Lab Dashboard | 3075 | `http://:3075` | internal | +| Efforise | 3080 | `http://:3080` | internal | + +--- + +## Domain-Based Ingress And Public URL Patterns + +These are the documented DNS and ingress endpoints from: + +- [`single_azure_vm/docker/Caddyfile.bytelyst.example`](./single_azure_vm/docker/Caddyfile.bytelyst.example) +- [`single_azure_vm/docker/SECURE_API_EXPOSURE.md`](./single_azure_vm/docker/SECURE_API_EXPOSURE.md) +- [`vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md`](./vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md) +- [`single_azure_vm/docker/DEPLOYMENT_STATUS_2026-03-29.md`](./single_azure_vm/docker/DEPLOYMENT_STATUS_2026-03-29.md) + +### Shared API Gateway + +| Route Prefix | Canonical URL Pattern | Backend Target | +| ------------ | ------------------------------------------ | ------------------- | +| platform | `https://api.bytelyst.com/platform/...` | platform-service | +| extraction | `https://api.bytelyst.com/extraction/...` | extraction-service | +| mcp | `https://api.bytelyst.com/mcp/...` | mcp-server | +| peakpulse | `https://api.bytelyst.com/peakpulse/...` | peakpulse-backend | +| chronomind | `https://api.bytelyst.com/chronomind/...` | chronomind-backend | +| jarvisjr | `https://api.bytelyst.com/jarvisjr/...` | jarvisjr-backend | +| nomgap | `https://api.bytelyst.com/nomgap/...` | nomgap-backend | +| mindlyst | `https://api.bytelyst.com/mindlyst/...` | mindlyst-backend | +| lysnrai | `https://api.bytelyst.com/lysnrai/...` | lysnrai-backend | +| notelett | `https://api.bytelyst.com/notelett/...` | notelett-backend | +| flowmonk | `https://api.bytelyst.com/flowmonk/...` | flowmonk-backend | +| actiontrail | `https://api.bytelyst.com/actiontrail/...` | actiontrail-backend | +| localmemgpt | `https://api.bytelyst.com/localmemgpt/...` | localmemgpt-backend | + +### Documented Ingress Domains + +| Domain | Target | Audience | Status In Docs | +| ------------------------------ | ---------------------- | ---------------------------------- | -------------------------- | +| `https://api.bytelyst.com` | shared API gateway | app-facing / public API entrypoint | documented and recommended | +| `https://gitea.bytelyst.com` | Gitea package registry | internal / build infrastructure | documented | +| `https://admin.bytelyst.com` | admin-web | internal ops | documented | +| `https://tracker.bytelyst.com` | tracker-web | internal ops | documented | +| `https://llmlab.bytelyst.com` | llmlab-dashboard | internal tooling | documented | +| `https://ollama.bytelyst.com` | Ollama | internal tooling | documented | + +### Public Vercel App Conventions + +These are the documented public-facing portal candidates from [`vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md`](./vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md). The exact final custom domains for every portal are not yet the canonical part of the deployment docs, so track them as Vercel projects first. + +| Vercel Project / App | Repo Path | +| -------------------- | ------------------------------------------------------- | +| `lysnrai-portal` | `learning_voice_ai_agent/user-dashboard-web` | +| `chronomind-web` | `learning_ai_clock/web` | +| `jarvisjr-web` | `learning_ai_jarvis_jr/web` | +| `nomgap-web` | `learning_ai_fastgap/web` | +| `flowmonk-web` | `learning_ai_flowmonk/web` | +| `notelett-web` | `learning_ai_notes/web` | +| `actiontrail-web` | `learning_ai_trails/web` | +| `mindlyst-web` | `learning_multimodal_memory_agents/mindlyst-native/web` | +| `localmemgpt-web` | `learning_ai_local_memory_gpt/web` | +| `efforise-client` | `learning_ai_efforise` | +| `productivity-tools` | `learning_ai_productivity_web` | + +### Canonical Runtime Environment Variables For Public Web Apps + +| Env Var | Value Pattern | Notes | +| ------------------------- | ------------------------------------- | ----------------------------- | +| `PLATFORM_SERVICE_URL` | `https://api.bytelyst.com/platform` | canonical platform API base | +| `EXTRACTION_SERVICE_URL` | `https://api.bytelyst.com/extraction` | canonical extraction API base | +| `NEXT_PUBLIC_BACKEND_URL` | `https://api.bytelyst.com/` | product backend gateway base | + +--- + +## Which Document To Use + +| Need | Use This Document | +| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| Full endpoint list across all environments | [`ENDPOINT_INVENTORY.md`](./ENDPOINT_INVENTORY.md) | +| Local compose ports and URLs | [`ECOSYSTEM_DEPLOYMENT.md`](./ECOSYSTEM_DEPLOYMENT.md) | +| Single Azure VM deployed URLs | [`single_azure_vm/docker/README.md`](./single_azure_vm/docker/README.md) | +| Public gateway and DNS hardening model | [`single_azure_vm/docker/SECURE_API_EXPOSURE.md`](./single_azure_vm/docker/SECURE_API_EXPOSURE.md) | +| Vercel project inventory and public web app targeting | [`vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md`](./vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md) | + +--- + +## Maintenance Rule + +When any service, port, ingress domain, or public app hosting target changes: + +1. update this document first +2. update the environment-specific source doc +3. add the commit link in the relevant roadmap or deployment tracker if the change is implementation work diff --git a/docs/devops/single_azure_vm/README.md b/docs/devops/single_azure_vm/README.md index 745f6e8b..76a0a65d 100644 --- a/docs/devops/single_azure_vm/README.md +++ b/docs/devops/single_azure_vm/README.md @@ -3,6 +3,10 @@ > Deploy the **entire ByteLyst ecosystem** (31 services, 11 products) on a single Azure VM. > Two orchestration approaches — pick one or learn both side by side. +Related: + +- [`../ENDPOINT_INVENTORY.md`](../ENDPOINT_INVENTORY.md) — canonical endpoint inventory across local, Azure VM, and domain-based ingress + --- ## Approaches diff --git a/docs/devops/single_azure_vm/docker/README.md b/docs/devops/single_azure_vm/docker/README.md index 17c79eb0..f5d0c1e0 100644 --- a/docs/devops/single_azure_vm/docker/README.md +++ b/docs/devops/single_azure_vm/docker/README.md @@ -6,6 +6,7 @@ Related: +- [`../../ENDPOINT_INVENTORY.md`](../../ENDPOINT_INVENTORY.md) — canonical endpoint inventory across local, Azure VM, and domain-based ingress - [`SECURE_API_EXPOSURE.md`](./SECURE_API_EXPOSURE.md) — recommended public API exposure model, alternatives, and security guidance for client-facing URLs - [`DEPLOYMENT_STATUS_2026-03-29.md`](./DEPLOYMENT_STATUS_2026-03-29.md) — deployment snapshot: what completed on the Azure VM, what was manually fixed, and what remains diff --git a/docs/devops/vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md b/docs/devops/vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md index 510f9368..342b500b 100644 --- a/docs/devops/vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md +++ b/docs/devops/vercel/ECOSYSTEM_WEB_APPS_INVENTORY.md @@ -4,6 +4,10 @@ > **Scope:** All web applications across the ByteLyst ecosystem > **Purpose:** Assess Vercel deployment readiness for every web surface +Related: + +- [`../ENDPOINT_INVENTORY.md`](../ENDPOINT_INVENTORY.md) — canonical endpoint inventory across local, Azure VM, and public-domain patterns + --- ## Executive Summary