docs(devops): add canonical endpoint inventory

This commit is contained in:
Saravana Achu Mac 2026-04-03 17:29:46 -07:00
parent 477891fb4a
commit cdbdd48a35
5 changed files with 261 additions and 0 deletions

View File

@ -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

View File

@ -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://<vm-ip>:<port>` 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://<vm-ip>:3300` |
| Ollama (LLM API) | 11434 | `http://<vm-ip>:11434` |
| Cosmos Data Explorer | 1234 | `http://<vm-ip>:1234` |
| Azurite (Blob) | 10000 | `http://<vm-ip>:10000` |
| Mailpit UI | 8025 | `http://<vm-ip>:8025` |
| Loki (Logs) | 3100 | `http://<vm-ip>:3100/ready` |
| Grafana | 3000 | `http://<vm-ip>:3000` |
| Traefik Dashboard | 8080 | `http://<vm-ip>:8080` |
### Platform Services
| Service | Port | Health URL |
| ------------------ | ---: | ---------------------------- |
| platform-service | 4003 | `http://<vm-ip>:4003/health` |
| extraction-service | 4005 | `http://<vm-ip>:4005/health` |
| mcp-server | 4007 | `http://<vm-ip>:4007/health` |
### Platform Dashboards
| Surface | Port | URL | Audience |
| ------------- | ---: | --------------------- | -------- |
| Admin Console | 3001 | `http://<vm-ip>:3001` | internal |
| Issue Tracker | 3003 | `http://<vm-ip>:3003` | internal |
### Product Backends
| Product | Port | Health URL |
| ----------- | ---: | ---------------------------- |
| PeakPulse | 4010 | `http://<vm-ip>:4010/health` |
| ChronoMind | 4011 | `http://<vm-ip>:4011/health` |
| JarvisJr | 4012 | `http://<vm-ip>:4012/health` |
| NomGap | 4013 | `http://<vm-ip>:4013/health` |
| MindLyst | 4014 | `http://<vm-ip>:4014/health` |
| LysnrAI | 4015 | `http://<vm-ip>:4015/health` |
| NoteLett | 4016 | `http://<vm-ip>:4016/health` |
| FlowMonk | 4017 | `http://<vm-ip>:4017/health` |
| ActionTrail | 4018 | `http://<vm-ip>:4018/health` |
| LocalMemGPT | 4019 | `http://<vm-ip>:4019/health` |
### VM-Hosted Web Surfaces
| Surface | Port | URL | Audience |
| ----------------- | ---: | --------------------- | -------- |
| Admin Console | 3001 | `http://<vm-ip>:3001` | internal |
| Issue Tracker | 3003 | `http://<vm-ip>:3003` | internal |
| LysnrAI Dashboard | 3002 | `http://<vm-ip>:3002` | internal |
| ChronoMind | 3030 | `http://<vm-ip>:3030` | internal |
| JarvisJr | 3035 | `http://<vm-ip>:3035` | internal |
| FlowMonk | 3040 | `http://<vm-ip>:3040` | internal |
| NoteLett | 3045 | `http://<vm-ip>:3045` | internal |
| MindLyst | 3050 | `http://<vm-ip>:3050` | internal |
| NomGap | 3055 | `http://<vm-ip>:3055` | internal |
| ActionTrail | 3060 | `http://<vm-ip>:3060` | internal |
| LLM Lab Dashboard | 3075 | `http://<vm-ip>:3075` | internal |
| Efforise | 3080 | `http://<vm-ip>: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>` | 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

View File

@ -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

View File

@ -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

View File

@ -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