Package the PineVoice/Wyoming local voice assistant as ONE store app "Pine" that runs three rootless containers: - pine-whisper — Wyoming faster-whisper STT (docker.io/rhasspy/wyoming-whisper 3.4.1, model base-int8/en), publishes :10300 - pine-piper — Wyoming Piper TTS (2.2.2, voice en_GB-alba-medium), publishes :10200 - pine — nginx launcher serving a self-contained setup/status page (WiFi provisioning + Home Assistant wiring instructions), the Open target The two engines publish their Wyoming ports so Home Assistant reaches them via host.containers.internal. All rootless (cap-drop=ALL, no_new_privileges), manifest-driven — no hardcoded podman/installer. The engines are internal stack members (added to the drift-check INTERNAL_MANIFEST_IDS allowlist); only "pine" carries a catalog entry. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
App Icons – Canonical Source
This is the single source of truth for all app icons.
- Path:
neode-ui/public/assets/img/app-icons/ - Naming:
{app-id}.{ext}(e.g.fedimint.png,mempool.webp,lnd.svg) - Formats: PNG, WebP, or SVG (prefer WebP for size, SVG for scalability)
All references in the codebase use /assets/img/app-icons/{filename}. Build outputs (web/dist, image-recipe) copy from here.
To add an icon: place the file here with the app-id as the filename. Run npm run build to update deployed assets.