# Three new apps through the checklist (2026-10-10) Brief: a fit check (`NEW-APP-CHECKLIST.md` group 0) for **Grocy, LubeLogger and Monica**, chosen from the 2026-10-10 PikaPods scan because no catalog app covers what they do; then build them one at a time, Grocy first, each with the full 61-check record. Architecture read: `09-update-architecture.md` §3 decisions 13, 22, 42, 45–50, 57, 61 and §6.5 (the drill catalog and the image store); `01-topology-and-trust.md` (the tunnel carries HTTP only; §5 the setup gate); `07-backup-architecture.md` (the backup classes and what the tier-1 unit holds). Register rows read first: R-707 (first admin), R-741 (the install window), R-753 (the visitor's address), R-761 (the asset path). Baselines: catalog `b38aa923177db40bcb399546c625167fa029f025`, felhom.eu `a406efc7d52807398eacba39a3bb1e94355a9da7`, register 136 rows / highest R-925; controller on 9202 `0.304.0`. ## Venues - **Bench** — LXC 9401 `upgrade-harness` on **demo-hp**, swap 0, 10 GiB. `upgrade-test.py --move` per app with a from-birth cgroup sampler beside it (`bench/`). - **Box** — scratch guest 9202 `demo-hp-scratch`, also on **demo-hp**, on the DRILL catalog only. Per app: install with a stranger's poll and the sampler, the app's own checks, the guarded Update, remove keeping backups + restore, remove with data (`box/`). - **Ladder** — the single writer `upgrade-test.py --write-ladder` from both verdicts. **A correction to the brief's reading:** 9202 and the bench 9401 both live on **demo-hp**. felhom-pve (`demo-felhom`) carries only guest 9201. Measured with `pct list` on both hosts. ## Per app | app | result | catalog commit | memory (peak anon / limit) | ladder step | notes | |---|---|---|---|---|---| | **Grocy** | **published** | `b7f0f7c` | bench (swap 0) and box, in `bench/` and `box/grocy/` | 4.6.0 → 4.7.1 | two defects found and fixed before publishing: the controller refuses an `after_install` command containing `$`, and grocy's persisted `config.php` does not follow the image (a 4.6 → 4.7 update answered HTTP 500 on every page) | | **LubeLogger** | **published** | `b7f0f7c` | `bench/` and `box/lubelogger/` | v1.7.2 → v1.7.3 | the image ships **no login at all** and hands a stranger the root role; the template turns authentication on from a generated password before the app's first byte | | **Monica** | **stop — checklist 0.2** | not built | — | — | no release of any kind in 17 months, no stable release in 29, the stable branch untouched since 2024-05-04, and upstream has announced that its hosted instance and all its data go away at the end of December 2026 ahead of a rewrite. The operator decides. | The fit table, with every group-0 answer and the three measured risks, is `FIT.md`. ## Teardown Stated per layer in `felhom.eu/REPORT-new-apps-2026-10-10.md`.