Once DeskFlow works locally, this section covers how to run and ship it — from php pionia serve on port 8000 to RoadRunner workers, OPcache preload, and zero-downtime deploys for Northwind Studio.
You have a working DeskFlow task board API (task, member, project services) and need to operate it in dev and production — CLI commands, persistent workers, logs under storage/logs/, and deploy-time optimization without rewriting application code.
/stats metricsstorage/, environment/settings.iniDevelopment uses a single-process PHP server. Production adds persistent workers, optional OPcache preload, shared cache stores, and observability — all configured in your app, not in framework vendor code.
| Task | Guide |
|---|---|
| CLI overview | Commands |
| Persistent workers | RoadRunner |
| Deploy checklist | Production performance |
| Zero-downtime deploys | Maintenance mode |
| Task | Guide |
|---|---|
| Logs | Logging |
| Request metrics | Developer stats |
| Post-response jobs | Background work |
| Cache stores | Caching |
composer install --no-dev -o
php pionia optimize --production
php pionia runserver --detach
curl -s http://127.0.0.1:8000/api/v1/pingoptimize on every code change — use it at deploy time; local dev does not need preload or bootstrap caches.php pionia serve to match production — HTTP/1 only, no job queue; use RoadRunner for production-like testing.opcache.validate_timestamps=0 — stale bytecode until FPM/RR reload./stats open in production without STATS_TOKEN — see Developer stats.Daily CLI and make:* scaffolds.
Persistent workers and Moonlight jobs.
OPcache preload and deploy optimize.