Update documentation for app info pages feature

- CONTEXT.md: session 5 with app detail/info pages + optional config
- README.md: add optional-config API endpoint, update version to 0.2.11
- CLAUDE.md: add app info page patterns to key patterns section

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-14 20:15:56 +01:00
parent 6080170367
commit 658b995e53
3 changed files with 36 additions and 11 deletions
+23 -5
View File
@@ -7,7 +7,7 @@
>
> Ask Claude Code: "Please update CONTEXT.md with what we did today"
Last updated: 2026-02-14 (session 4)
Last updated: 2026-02-14 (session 5)
---
@@ -22,13 +22,31 @@ Last updated: 2026-02-14 (session 4)
## Current project state
### felhom-controller (this repo)
- **Version:** v0.2.1
- **Version:** v0.2.11
- **Phase 1:** ✅ COMPLETE — Stack Manager + Deploy Flow
- **First app deployed:** Paperless-ngx on demo-felhom.eu (2026-02-13)
- **Running on:** demo-felhom (N100 mini PC) at 192.168.0.162:8080
- **All Phase 1 features working:** deploy, start/stop/restart/update, logs, health-aware states, auth
### What was just completed (2026-02-14 session 4)
### What was just completed (2026-02-14 session 5)
- **App detail/info pages** — new feature:
- New route: `GET /apps/{slug}` renders a full info page (was redirect to deploy page)
- Hero section with logo, tagline, resource badges
- Screenshots section (graceful — hidden via `onerror` if assets don't exist)
- Info cards: use cases, first steps, prerequisites, default credentials, docs link
- Optional config form with AJAX save (POST `/api/stacks/{name}/optional-config`)
- New `.felhom.yml` fields: `app_info` (tagline, use_cases, first_steps, prerequisites, default_creds, docs_url) and `optional_config` (groups of env var fields)
- New structs in `metadata.go`: `AppInfo`, `OptionalConfigGroup`, `OptionalConfigField`
- `UpdateOptionalConfig` in `deploy.go`: saves optional env vars to `app.yaml`, restarts deployed stacks with `docker compose up -d` to pick up new env vars
- Navigation updated: stack cards on dashboard/stacks pages now link to `/apps/{slug}`, deploy page has "Részletek" link back to info page
- **RoMM metadata updated** (app-catalog repo):
- Full `app_info` section: tagline, 5 use cases, 6 first steps, 3 prerequisites, default creds, docs URL
- 6 optional config fields for metadata providers: IGDB (client_id + secret), SteamGridDB, ScreenScraper (user + password), MobyGames
- docker-compose.yml updated with SCREENSCRAPER_USER, SCREENSCRAPER_PASSWORD, MOBYGAMES_API_KEY env vars
- Display name fixed: "ROMM" → "RomM"
- **Controller version:** v0.2.11
### Previously completed (2026-02-14 session 4)
- **Fixed deploy race condition** in `internal/stacks/deploy.go`:
- In-memory `Deployed` flag now set BEFORE `docker compose up -d` (compose up can take 30-60s for image pulls)
- On failure: both in-memory state and disk (app.yaml) are reverted
@@ -120,9 +138,9 @@ Last updated: 2026-02-14 (session 4)
7. Documentation: restart vs up -d for image updates
### What's next (priorities)
1. Build + deploy the updated controller with git sync module
1. Add `app_info` + `optional_config` to more apps (start with Immich, Mealie, Vaultwarden)
2. Deploy a second app (e.g., ActualBudget — simplest, or Immich — tests HDD + secrets) to validate all .felhom.yml files
3. Test git sync end-to-end: push a template change to app-catalog, verify controller picks it up
3. Add app screenshots to the asset pipeline (romm-screenshot-1.webp etc.)
4. Test on Raspberry Pi (pi-customer-1)
5. Add `paths.hdd_path` to demo-felhom controller.yaml to enable HDD bar
6. Phase 2 continued: CPU/temperature metrics, Healthchecks.io pings