feat(homepage): split AI fleet into role-based groups on a dedicated AI tab
Move the ~22-service flat "AI Systems" group off the Main tab into a new four-tab layout (Main / AI / Infrastructure / Toolchain). The AI tab sorts the inference fleet by function into seven groups: AI - Inference gen, char-rp, char-rp-reasoning, Granite summarizer AI - Eval & Retrieval Selene, Skywork Reward, Qwen3 rerank/embed, image-bench AI - Gateways & Chat LiteLLM, Asset Engine, Gateway Chat, Open WebUI, ... AI - Speech (TTS) Chatterbox Fast, Kokoro, mOrpheus AI - Audio Tools Parakeet ASR, YT Voice Clipper AI - Image & Media ComfyUI, Arbo AI - Dormant stopped rollback seats + retired auditions Relabel each stack's homepage.group so canonical stacks/ matches the live containers on ana-ml2, ana-docker, and irv-ml1. Dormant stacks were refreshed with `docker compose up --no-start` so they carry the new label while staying stopped (compose-start rollback preserved). settings.yaml drives tab/order/ columns; services.yaml and README updated to the new scheme.
This commit is contained in:
+28
-14
@@ -21,21 +21,32 @@ to the compose file and is gitignored.
|
||||
|
||||
## Layout convention
|
||||
|
||||
`settings.yaml` drives the group layout:
|
||||
`settings.yaml` drives the group layout across four tabs:
|
||||
|
||||
```
|
||||
Monitoring row x 3 fleet hubs (Beszel, Dozzle, Backrest, Uptime Kuma)
|
||||
AI Systems row x 3 GPU inference services (llama-swap, vLLM embed/rerank)
|
||||
Apps list user-facing apps (Gitea, Vaultwarden, Seafile, ...)
|
||||
Media list Plex, Jellyfin
|
||||
Games list Pterodactyl
|
||||
UltraSeedbox row x 3 external bookmarks
|
||||
Infra - ANA list Anaheim hardware + hypervisors + BMCs
|
||||
Infra - NH3 list NH3 hardware + hypervisors
|
||||
Infra - ESH list ESH home-lab hardware + hypervisors
|
||||
Service Networking collapsed toolchain (Traefik, CrowdSec, Dockge, AdGuard, MQTT)
|
||||
tab: Main
|
||||
Notes / News / Monitoring / Apps / Media / Games / UltraSeedbox
|
||||
tab: AI (the inference fleet, sorted by role)
|
||||
AI - Inference LLM seats you call (gen, char-rp, char-rp-reasoning, summarizer)
|
||||
AI - Eval & Retrieval judges, reward, rerank, embed, image-quality
|
||||
AI - Gateways & Chat routing gateway, control plane, chat frontends
|
||||
AI - Speech (TTS) text-to-speech engines
|
||||
AI - Audio Tools speech-to-text + audio dataset tooling
|
||||
AI - Image & Media image/video generation + pipelines
|
||||
AI - Dormant stopped stacks (rollback seats, retired auditions)
|
||||
tab: Infrastructure
|
||||
Infra - ANA / NH3 / IRV / ESH hardware + hypervisors + BMCs, per site
|
||||
tab: Toolchain
|
||||
Service Networking / Toolchain plumbing, rarely clicked
|
||||
```
|
||||
|
||||
The AI tab replaced the old single flat `AI Systems` group (2026-07-14): a
|
||||
20+ service list read as one endless column, so it was split by function.
|
||||
Group membership is the `homepage.group=AI - <role>` label on each compose
|
||||
file; a label change only takes effect when the container is recreated
|
||||
(`docker compose up -d <svc>`, or `up --no-start <svc>` to relabel a stopped
|
||||
stack without starting it).
|
||||
|
||||
- **Manual entries** (this file) cover things without a Docker label:
|
||||
firewalls, switches, NAS web UIs, BMCs, hypervisors, and the cross-site
|
||||
hubs where direct IP:port URLs are stable.
|
||||
@@ -49,15 +60,18 @@ Service Networking collapsed toolchain (Traefik, CrowdSec, Dockge, AdGuard, MQT
|
||||
When deciding where a service lands, ask **function first**:
|
||||
|
||||
1. Does it watch or back up the fleet? -> `Monitoring`
|
||||
2. Is it an inference / model service? -> `AI Systems`
|
||||
2. Is it an inference / model service? -> the matching `AI - <role>` group
|
||||
(Inference / Eval & Retrieval / Gateways & Chat / Speech (TTS) /
|
||||
Audio Tools / Image & Media); a stopped-but-kept stack -> `AI - Dormant`
|
||||
3. Is it a user-facing app? -> `Apps`
|
||||
4. Is it media / games? -> `Media` or `Games`
|
||||
5. Is it a piece of hardware or a hypervisor? -> `Infra - <site>`
|
||||
6. Is it toolchain / plumbing (no human interaction on the golden path)? ->
|
||||
`Service Networking`
|
||||
|
||||
Site-specific sub-grouping is only used for `Infra -` because the device
|
||||
inventory maps cleanly to physical sites. App groups are function-only.
|
||||
Site-specific sub-grouping is used for `Infra -` (device inventory maps to
|
||||
physical sites) and role-based sub-grouping for `AI -` (the fleet is large
|
||||
enough to warrant it). Other app groups are function-only.
|
||||
|
||||
## Deploying changes
|
||||
|
||||
|
||||
Reference in New Issue
Block a user