feat(homepage): add talk tile with its commissioned mark

talk has served on nh3-dev since 2026-09-08 with no dashboard presence.
nh3-dev is not a Docker-stack host and is absent from docker.yaml, so
label auto-discovery cannot reach it — this is a manual services.yaml
entry in Apps, beside the Booth and WhereTF which are there for the
same reason.

siteMonitor points straight at the app: talk.nh3.phasefinal.com:8092
now presents the Let's Encrypt *.nh3.phasefinal.com wildcard (valid to
2026-12-06), so no cert or port special-casing is needed.

Icon is copied into the images mount rather than hot-linked from the
booth, which is scratch space. Document the two traps that cost time
here: Homepage v2 serves nothing but custom.css/custom.js out of the
config dir, and Next.js fixes its public/ route manifest at container
start, so a newly added image 404s until the container is restarted.
This commit is contained in:
vh
2026-09-18 06:50:21 -07:00
parent d94b5a1934
commit d6a9d70b9e
3 changed files with 18 additions and 0 deletions
+8
View File
@@ -223,6 +223,14 @@ Observed and standardized across servers:
tabs right now.
Labels only apply at container **creation**, so a label edit needs
`docker compose up -d <service>`, not `restart`.
**Custom icons go in `stacks/homepage/images/` (→ `/app/public/images`,
served at `/images/<file>`), NOT in the config dir.** Homepage v2 serves only
`custom.css` / `custom.js` out of `/app/config`, so `conf/icons/foo.svg` 404s
even though the file is plainly there in the container. ⚠ **And Next.js builds
its `public/` route manifest at container START** — a file dropped into the
mounted images dir 404s until you `docker restart homepage`, while files that
predate the start serve fine. That asymmetry reads exactly like a bad mount or
a permissions problem and is neither. Reference it as `icon: /images/<file>`.
- **Healthchecks** on services that expose HTTP
## Servers
+9
View File
@@ -27,6 +27,15 @@
icon: mdi-filmstrip
siteMonitor: http://10.100.10.50:8090/healthz
description: Media drop + upload-for-pickup + the standing agent link board — nh3-dev, 24h TTL except kept boards
# Manual entry — talk is a Docker stack on nh3-dev, which is NOT one of the
# hosts in docker.yaml, so Homepage cannot discover it from labels.
# Icon: commissioned mark, copied into the images mount (see CLAUDE.md note
# about restarting Homepage after adding a file there).
- talk:
href: https://talk.nh3.phasefinal.com:8092/
icon: /images/talk.svg
siteMonitor: https://talk.nh3.phasefinal.com:8092/
description: TTS chat surface — type or speak, a fleet voice answers
# Manual entry — WhereTF is a user-level systemd service on nh3-dev (Bun,
# like the Booth), so Homepage can't auto-discover it.
- WhereTF:
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB