fix(store/launchpad): record docker service runtime location + Launchpad 'Apps' section#503
Conversation
…ation
Installed docker services (e.g. SearxNG) never surfaced a Launchpad
shortcut: the docker branch of _legacy_install fell through to a block
that only recorded a runtime location for remote installs, and with
port=0. A local docker install therefore succeeded but recorded no
runtime location, so it never appeared in /api/apps/installed and the
service proxy at /apps/{app_id}/ returned 503.
Record a runtime location for docker services from their declared host
port (compose maps {p}:{p}), using 127.0.0.1 locally or the resolved
incus host for remotes. Rename the Launchpad 'Services' section to
'Apps' so user-installed services read as apps; launching one opens its
proxied web UI (the searx page for SearxNG) via ServiceAppWindow.
Add frontend test for the Apps section (renders shortcuts, empty when
none, launches the proxied URL) and a backend test that a local docker
install records a runtime location and appears in /api/apps/installed.
|
Warning Review limit reached
More reviews will be available in 18 minutes and 1 second. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Fixes: installing a Store service (e.g. SearXNG) produced no shortcut and an unreachable
/apps/{id}/.Root cause: a local
dockerservice install never recorded a runtime location —update_runtime_locationwas only called when_target_remote is not None(the remote path), and even then withport=0(which/api/apps/installedrejects). So locally-installed docker services (SearXNG, etc.) never appeared in/api/apps/installed, never got a Launchpad shortcut, andservice_proxy503'd on their URL.Fix:
store_install.py: after a docker install, record the runtime location (127.0.0.1:<declared port>, backenddocker,ui_path) via a new_docker_published_port()that reads the manifest's declared ports (mirrors DockerInstaller's compose port mapping). Stop the remote path clobbering it withport=0. SearXNG (8080) now records127.0.0.1:8080and surfaces at/apps/searxng/.Launchpad.tsx: the installed-services group is now a dedicated 'Apps' section (was a buried 'Services' header), shown once ≥1 app is installed. Launching opens the service's proxied UI inServiceAppWindow— for SearXNG, the live searx page.Tests: Launchpad Apps-section (frontend, 9 pass) + docker-install-records-runtime-location (backend, 46 pass in scope); tsc clean.
Note: userspace
.taosappapps will join the 'Apps' section once App Runtime (#476) merges; on master today 'Apps' = installed services.