docs: expand app integration checklist with full file-by-file guide

Replaces the brief 4-item checklist with a comprehensive file-level
checklist covering backend, frontend, nginx, deploy, first-boot, and
ISO build. Ensures no file is missed when adding or modifying apps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian 2026-03-08 02:32:15 +00:00
parent caefe1ca4e
commit d3f0f1192e

View File

@ -243,12 +243,47 @@ type: description
## App Integration Checklist
When adding or fixing apps:
When adding or fixing apps, **every file below must be checked**. Missing any one causes failures on fresh installs.
1. Test the app UI loads on its configured port
2. Auto-connect dependencies (Bitcoin RPC, LND, etc.) — apps must work out of the box
3. Ensure `get_app_config()` in `core/archipelago/src/api/rpc.rs` has correct env vars
4. Most apps launch in iframe; BTCPay (23000) and Home Assistant (8123) open in new tab (X-Frame-Options)
### Backend (Rust)
- [ ] `core/archipelago/src/api/rpc/package.rs``get_app_config()`: ports, volumes, env vars, custom args
- [ ] `core/archipelago/src/api/rpc/package.rs``needs_archy_net`: add if app needs container DNS
- [ ] `core/archipelago/src/api/rpc/package.rs``get_app_capabilities()`: add required caps (CHOWN, etc.)
- [ ] `core/archipelago/src/api/rpc/package.rs` — dependency checks (e.g., electrs requires bitcoin)
- [ ] `core/archipelago/src/container/docker_packages.rs``get_app_metadata()`: title, description, icon, repo
- [ ] `core/archipelago/src/container/docker_packages.rs` — UI address mapping (e.g., `http://localhost:50002`)
### Frontend (Vue)
- [ ] `neode-ui/src/views/Marketplace.vue``getCuratedAppList()`: marketplace entry with dockerImage
- [ ] `neode-ui/src/stores/appLauncher.ts` — port-to-proxy mapping (if app has custom UI port)
- [ ] `neode-ui/src/views/AppDetails.vue` — route ID mapping (if app ID differs from container name)
### Nginx
- [ ] `image-recipe/configs/nginx-archipelago.conf``/app/{id}/` proxy in HTTP block
- [ ] `image-recipe/configs/snippets/archipelago-https-app-proxies.conf``/app/{id}/` proxy in HTTPS block
- [ ] Any custom status endpoints (e.g., `/electrs-status`) proxied before the SPA catch-all
### Deploy & First Boot
- [ ] `scripts/deploy-to-target.sh` — container creation/update logic
- [ ] `scripts/first-boot-containers.sh` — container created on fresh ISO install
- [ ] Custom UI containers (e.g., electrs-ui): built and started in both deploy and first-boot
### ISO Build
- [ ] `image-recipe/build-auto-installer-iso.sh``CAPTURE_PATTERNS`: image captured from live server
- [ ] `image-recipe/build-auto-installer-iso.sh``CONTAINER_IMAGES`: fallback image pulled from registry
- [ ] `image-recipe/build-auto-installer-iso.sh` — docker UI source files bundled for build fallback
- [ ] `image-recipe/build-auto-installer-iso.sh` — installer copies files to target disk
### Runtime Verification
- [ ] Test the app UI loads on its configured port
- [ ] Auto-connect dependencies (Bitcoin RPC, LND, etc.) — apps must work out of the box
- [ ] Most apps launch in iframe; BTCPay (23000) and Home Assistant (8123) open in new tab (X-Frame-Options)
## ISO Build