# ByteLyst App URL Bookmarks

**Owner:** ByteLyst DevOps
**Last updated:** 2026-05-31T09:12:01Z
**Source of truth for bookmarks:** this file
**Exposure/security companion:** [`docs/vm-exposure-inventory.md`](vm-exposure-inventory.md)

Use this as the living bookmark/reference list for deployed apps, dashboards,
APIs, and private admin surfaces. When a new app is deployed, add it here in
the same change that adds its Caddy route, Compose service, or systemd unit.

`Last deployed / restarted` means the latest timestamp we have evidence for.
For Docker services it is the container `StartedAt` timestamp from
`docker inspect`; for systemd services it is the service active-since timestamp.
If the deploy time is not known, use `unknown` and update it during the next
verified deploy.

## Update Checklist

When deploying or changing an app:

1. Add or update the row in this file.
2. Update `Last deployed / restarted` with an exact UTC timestamp.
3. Record the repo/service owner and access model.
4. If exposure changes, also update [`docs/vm-exposure-inventory.md`](vm-exposure-inventory.md).
5. If it is a DevOps dashboard endpoint, also update [`dashboard/ENDPOINTS.md`](../dashboard/ENDPOINTS.md).

## Primary Dashboards

| Name | URL | Access | Backend/API | Runtime owner | Last deployed / restarted | Notes |
| --- | --- | --- | --- | --- | --- | --- |
| DevOps custom dashboard | [devops.bytelyst.com](https://devops.bytelyst.com) | private-admin/auth | [api.bytelyst.com/devops](https://api.bytelyst.com/devops) | `dashboard/docker-compose.yml` (`devops-web`, `devops-backend`) | `2026-05-31T09:12:01Z` web, `2026-05-31T09:11:55Z` backend | Unified ByteLyst DevOps dashboard. Hermes Mission Control lives under `/hermes`. |
| DevOps Tailscale entry | [srv1491630.tailf85608.ts.net/login](https://srv1491630.tailf85608.ts.net/login) | Tailscale/private-admin/auth | [127.0.0.1:4004](http://127.0.0.1:4004) | Tailscale serve -> `localhost:3049` | `2026-05-31T09:12:01Z` | Private login path used for VM-side dashboard review. |
| Platform admin dashboard | [admin.bytelyst.com](https://admin.bytelyst.com) | private-admin/auth | [api.bytelyst.com/platform/api](https://api.bytelyst.com/platform/api) | common platform `admin-web` | `unknown` | Caddy route is documented; container was not present in the 2026-05-27 exposure inventory. Verify before relying on it. |
| Hermes Mission Control | [devops.bytelyst.com/hermes](https://devops.bytelyst.com/hermes) | private-admin/auth | [api.bytelyst.com/devops/api/hermes](https://api.bytelyst.com/devops/api/hermes) | DevOps custom dashboard | `2026-05-31T09:12:01Z` | Unified custom Hermes dashboard over Vijay/root and Bheem/Uma. |
| Hermes native Vijay dashboard | [100.87.53.10:9119](http://100.87.53.10:9119/) | Tailscale-only/private-admin | native Hermes service | `hermes-root-dashboard.service` | `2026-05-31T04:02:20Z` | Built-in Hermes dashboard for root/Vijay. No public Caddy route. |
| Hermes native Bheem dashboard | [100.87.53.10:9120](http://100.87.53.10:9120/) | Tailscale-only/private-admin | native Hermes service | `uma-hermes-dashboard.service` | `2026-05-31T04:02:20Z` | Built-in Hermes dashboard for Uma/Bheem. No public Caddy route. |
| LLM Lab dashboard | [llmlab.bytelyst.com](https://llmlab.bytelyst.com) | private-admin | local/dashboard service | common platform `llmlab-dashboard` | `2026-05-31T04:02:24Z` | Keep private/auth-gated. Local host port `127.0.0.1:3075`. |

## Public Apps

| App | Public URL | API URL | Runtime owner | Last deployed / restarted | Notes |
| --- | --- | --- | --- | --- | --- |
| InvtTrdg | [invttrdg.bytelyst.com](https://invttrdg.bytelyst.com) | [api.bytelyst.com/invttrdg](https://api.bytelyst.com/invttrdg/) | `/opt/bytelyst/learning_ai_invt_trdg` | `unknown` | Exposure inventory maps web to `:3085` and backend to `:4025`. |
| Clock / Chronomind | [clock.bytelyst.com](https://clock.bytelyst.com) | [api.bytelyst.com/chronomind](https://api.bytelyst.com/chronomind/) | `/opt/bytelyst/learning_ai_clock` | `2026-05-31T04:02:24Z` web/backend | Local web `127.0.0.1:3030`, backend `127.0.0.1:4011`. |
| Notes / Notelett | [notes.bytelyst.com](https://notes.bytelyst.com) | [api.bytelyst.com/notelett](https://api.bytelyst.com/notelett/) | `/opt/bytelyst/learning_ai_notes` | `2026-05-31T04:02:23Z` web, `2026-05-31T04:02:24Z` backend | Local web `127.0.0.1:3000`, backend `127.0.0.1:4016`. |
| Tracker | [tracker.bytelyst.com](https://tracker.bytelyst.com) | n/a | `/opt/bytelyst/learning_ai_common_plat` | `2026-05-31T04:02:24Z` | Local web `127.0.0.1:3003`. |
| PeakPulse | n/a | [api.bytelyst.com/peakpulse](https://api.bytelyst.com/peakpulse/) | `/opt/bytelyst/learning_ai_common_plat` | `2026-05-31T04:02:24Z` platform stack | Backend is Docker-internal `peakpulse-backend:4010`. |
| Jarvis Jr | n/a | [api.bytelyst.com/jarvisjr](https://api.bytelyst.com/jarvisjr/) | `/opt/bytelyst/learning_ai_common_plat` | `2026-05-31T04:02:23Z` web, `2026-05-31T04:02:24Z` platform stack | Local web `127.0.0.1:3035`, backend Docker-internal `jarvisjr-backend:4012`. |
| Nomgap | Vercel / external | [api.bytelyst.com/nomgap](https://api.bytelyst.com/nomgap/) | `/opt/bytelyst/learning_ai_common_plat` | `2026-05-31T04:02:24Z` platform stack | Old local `nomgap-web` was retired; backend remains Docker-internal. |
| Mindlyst | n/a | [api.bytelyst.com/mindlyst](https://api.bytelyst.com/mindlyst/) | `/opt/bytelyst/learning_ai_common_plat` | `2026-05-31T04:02:24Z` web/platform stack | Local web `127.0.0.1:3050`, backend Docker-internal `mindlyst-backend:4014`. |
| LysnrAI | n/a | [api.bytelyst.com/lysnrai](https://api.bytelyst.com/lysnrai/) | `/opt/bytelyst/learning_ai_common_plat` | `2026-05-31T04:02:23Z` dashboard, `2026-05-31T04:02:24Z` platform stack | Local dashboard `127.0.0.1:3002`, backend Docker-internal `lysnrai-backend:4015`. |
| Flowmonk | n/a | [api.bytelyst.com/flowmonk](https://api.bytelyst.com/flowmonk/) | `/opt/bytelyst/learning_ai_common_plat` | `2026-05-31T04:02:24Z` web/platform stack | Local web `127.0.0.1:3040`, backend Docker-internal `flowmonk-backend:4017`. |
| ActionTrail | n/a | [api.bytelyst.com/actiontrail](https://api.bytelyst.com/actiontrail/) | `/opt/bytelyst/learning_ai_common_plat` | `2026-05-31T04:02:23Z` web, `2026-05-31T04:02:24Z` platform stack | Local web `127.0.0.1:3060`; exposure inventory notes route/backend mapping needs verification. |
| LocalMemGPT | n/a | [api.bytelyst.com/localmemgpt](https://api.bytelyst.com/localmemgpt/) | `/opt/bytelyst/learning_ai_common_plat` | `2026-05-31T04:02:24Z` web/platform stack | Local web `127.0.0.1:3070`, backend Docker-internal `localmemgpt-backend:4019`. |

## Shared APIs And Infrastructure

| Service | URL | Access | Runtime owner | Last deployed / restarted | Notes |
| --- | --- | --- | --- | --- | --- |
| API gateway | [api.bytelyst.com](https://api.bytelyst.com) | public gateway | Caddy/common platform | `2026-05-31T04:02:24Z` caddy | Routes app APIs by path. |
| Platform API | [api.bytelyst.com/platform/api](https://api.bytelyst.com/platform/api) | public/auth-required | common platform `platform-service` | `2026-05-31T04:02:24Z` | Auth and platform data API. |
| Extraction API | [api.bytelyst.com/extraction](https://api.bytelyst.com/extraction/) | public/API-controlled | common platform `extraction-service` | `2026-05-31T04:02:23Z` | Confirm auth posture before exposing new consumers. |
| MCP API | [api.bytelyst.com/mcp](https://api.bytelyst.com/mcp/) | public/API-controlled | common platform `mcp-server` | `2026-05-31T04:02:23Z` | Confirm public need before widening access. |
| Gitea | [gitea.bytelyst.com](https://gitea.bytelyst.com) | public/admin-auth | `gitea-npm-registry` | `2026-05-31T04:02:23Z` | Local direct registry also listens on `:3300`; see registry docs. |
| Gitea npm registry | [localhost:3300 packages](http://localhost:3300/api/packages/bytelyst/npm/) | VM/local or tunnel | `gitea-npm-registry` | `2026-05-31T04:02:23Z` | Do not use from laptop unless tunneled. See [`docs/gitea-registry-and-package-resolution.md`](gitea-registry-and-package-resolution.md). |
| Ollama endpoint | [ollama.bytelyst.com](https://ollama.bytelyst.com) | private-admin target | host `ollama` service | `unknown` | Must not be unauthenticated public. |
| Mailpit UI | [127.0.0.1:8025](http://127.0.0.1:8025) | loopback-only | common platform `mailpit` | `2026-05-31T04:02:23Z` | Dev/test mail UI. |
| Loki | [127.0.0.1:3100](http://127.0.0.1:3100) | loopback-only | common platform `loki` | `2026-05-31T04:02:24Z` | Observability internal. |
| Cosmos emulator UI | [127.0.0.1:1234](http://127.0.0.1:1234) / [127.0.0.1:8081](http://127.0.0.1:8081) | loopback-only | common platform `cosmos-emulator` | `2026-05-31T04:02:23Z` | Dev/test only; current production data uses real Cosmos for platform. |
| Azurite | [127.0.0.1:10000](http://127.0.0.1:10000) | loopback-only target | common platform `azurite` | `2026-05-31T04:02:24Z` | Check exposure inventory before relying on external access. |

## Local Host Ports

These are operational shortcuts, not public bookmarks.

| Service | Local URL | Public/private equivalent |
| --- | --- | --- |
| DevOps web container | [127.0.0.1:3049](http://127.0.0.1:3049) | [devops.bytelyst.com](https://devops.bytelyst.com) or Tailscale URL |
| DevOps backend health | [127.0.0.1:4004/health](http://127.0.0.1:4004/health) | [api.bytelyst.com/devops/health](https://api.bytelyst.com/devops/health) if routed |
| Platform service health | [127.0.0.1:4003/health](http://127.0.0.1:4003/health) | [api.bytelyst.com/platform/api](https://api.bytelyst.com/platform/api) |
| Clock web | [127.0.0.1:3030](http://127.0.0.1:3030) | [clock.bytelyst.com](https://clock.bytelyst.com) |
| Notes web | [127.0.0.1:3000](http://127.0.0.1:3000) | [notes.bytelyst.com](https://notes.bytelyst.com) |
| InvtTrdg web | [127.0.0.1:3085](http://127.0.0.1:3085) | [invttrdg.bytelyst.com](https://invttrdg.bytelyst.com) |
| Tracker web | [127.0.0.1:3003](http://127.0.0.1:3003) | [tracker.bytelyst.com](https://tracker.bytelyst.com) |
| Hermes Vijay dashboard | [100.87.53.10:9119](http://100.87.53.10:9119/) | Tailscale-only |
| Hermes Bheem dashboard | [100.87.53.10:9120](http://100.87.53.10:9120/) | Tailscale-only |

## Open Verification Items

- Confirm whether `admin.bytelyst.com` is currently backed by a running
  `admin-web` container.
- Confirm product-facing public URLs for apps listed as `n/a` before sharing
  them outside the admin team.
- Confirm `actiontrail` API route/container port mapping; historical inventory
  used `api.bytelyst.com/actiontrail/*` while current container metadata shows
  `actiontrail-backend` as part of the common platform stack.
- Replace any `unknown` deploy timestamp during the next verified deploy.
