helppc/supervisor-bundle
A Symfony bundle that integrates Supervisor process control into your application, letting you configure, manage, and monitor supervisord programs from a single place with minimal setup.
Verdict up front (updated for v2.0.0): The verdict does not change. This remains a Symfony bundle with zero ecosystem traction, and it remains a poor dependency for a Laravel product. The v2.0.0 release is meaningful for one reason — per-server auth — and marginal for the rest (Symfony 8 / PHP 8.2+, hidden_processes, restart). It also introduces a hard major-version break on a package that had no prior API stability to speak of. Recommendation stands: do not adopt as-is; treat it as a build-vs-buy input, and if we port, pin the fork before the next major lands.
What actually changed in v2.0.0
hidden_processes (presentation concern): a filtering layer for excluding internal programs (e.g. sshd, cron wrappers) from listings. Useful for a UI, but it is exactly the kind of opinionated logic we would rather own than inherit.Architecture fit
Bundle registration, DI Extension, Configuration tree, Symfony HTTP client/event-dispatcher conventions. None of that is consumed by Laravel's container. Laravel's shared Symfony components (http-foundation, console, process, finder) do not include framework-bundle, which is where the bundle's assumptions live.hidden_processes cuts the other way: the package now carries opinions about what to display, not just transport. That is logic we would port and then immediately diverge from, since our UI's notion of "internal" is our own.Integration feasibility
[inet_http_server] basic auth (or a reverse proxy in front of it). Verify explicitly whether the package's auth maps to standard HTTP basic auth against inet_http_server, or to something custom. If it is real basic auth, our threat model improves from "unauthenticated process-execution path" to "single shared secret, no transport security unless TLS is terminated in front" — better, still not solved.Technical risk
composer update.Key questions
[inet_http_server], a reverse-proxy header, or a custom scheme? Does it support unix sockets with no auth?hidden_processes config-only filtering, or does it alter the returned program list? Filtering belongs to us, not the transport.Stack fit
hidden_processes presentation filtering).acme/supervisor-client with a typed API (listPrograms(), startProgram(), stopProgram(), restartProgram(), tailLog()), a SupervisorManager resolving named connections from config, socket and http transports, per-connection credentials.Migration path
[inet_http_server], over both socket and HTTP.Configuration tree, stop and vendor the XML-RPC calls directly. The RPC vocabulary is small and documented; auth via basic headers is a few lines.config/supervisor.php (per-host: transport, endpoint, credentials, timeout) + facade. Timeouts: connect 1s, read 5–10s.supervisor:status, supervisor:restart {program}), then a read-only UI. Writes behind authorization gates and audit logging from day one — auth at the RPC layer does not substitute for auth in our app.composer audit in CI, and a conflict rule against the next major so an unattended update cannot re-break us.Compatibility
symfony/framework-bundle risk is unchanged and now spans a wider declared range — pin carefully or isolate.ext-xmlrpc is absent on modern PHP; confirm v2.0.0 uses a userland XML-RPC library rather than the removed extension. The PHP 8.2 floor makes the extension route impossible, which is mildly reassuring but worth asserting.Sequencing
Maintenance
^ ranges here are a self-inflicted outage.v2.0.0) and the XML-RPC methods consumed, so a future migration to supervisorctl subprocess calls is mechanical.Support
hidden_processes and auth layers are behavior we did not write. Anything opaque in the credential path (retries, header shaping, fallback to anonymous) is a security-relevant unknown — read that code before shipping, not after.Scaling
Failure modes
startProcess on a running program returns a fault; ensure it surfaces rather than lying about state.Ramp-up
autorestart, numprocs, log rotation, supervisorctl vs. RPC semantics. Budget an internal writeup; the package does not teach this.How can I help you explore Laravel packages today?