Using container for an opt-in SearXNG backend in a native macOS app
#2223
Replies: 1 comment 1 reply
|
I maintain ac, a CLI and project runner built on Apple For the integration boundary, I’d stick with the CLI for now and test against the versions you support. One concrete thing I’d change in your startup script: the Apple path force-removes the named container whenever the initial endpoint check fails. A failed health check could mean the service is temporarily unhealthy or the saved URL is stale. I’d inspect the existing container first, reuse it if healthy, start it if stopped, and only recreate it when its configuration changes or an explicit recovery requires it. Keep its logs available when startup fails. For crash recovery, persist the user’s enabled/disabled preference separately from the observed container state. On app launch, reconcile the two. That lets you recover an enabled service without accidentally restarting one the user disabled. Use bounded retries with backoff, and cancel pending startup/recovery work when disabling the feature. Treat the shared runtime separately from your service. Disabling SearXNG should stop your container; it shouldn’t automatically call For storage, I’d offer two actions:
Some of this is already implemented in |
Uh oh!
There was an error while loading. Please reload this page.
I’m building Summon, an open-source native macOS launcher distributed through its own Homebrew tap. It has no account, no application server, and no telemetry.
Summon offers current-web search through an opt-in SearXNG instance. After explicit user consent, the app:
containerthrough Homebrew;containersystem;The loopback boundary keeps the SearXNG API local to the Mac. SearXNG still sends the user’s consented query to its configured upstream search engines;
This has been a useful consumer-app use case for
container: an optional service gets per-container VM isolation without requiring Docker Desktop. The app currently shells out to the CLI because that is the clearest documented integration boundary.I would value guidance on four points:
container-apiserver. Is that client library intended as a supported application API, or is it an implementation detail?Relevant implementation:
Apple documentation I used:
All reactions