Cbox Init
Production-grade PID 1 process manager for Docker containers. Multi-process orchestration, PHP-FPM auto-tuning, health monitoring, Prometheus metrics.
The problem with PHP in containers
Most PHP Docker setups use supervisord or a shell script as the entrypoint. Neither is a proper PID 1. Zombie processes accumulate, signals get lost, and health checks are an afterthought. Cbox Init solves this with a purpose-built process manager designed for PHP workloads.
It handles signal forwarding, zombie reaping, multi-process orchestration, and PHP-FPM auto-tuning in a single static binary. No runtime dependencies, no configuration files to maintain for simple setups.
Built for PHP
PID 1 Process Manager
Proper signal handling (SIGTERM, SIGINT, SIGQUIT), zombie reaping, and clean process tree management. No orphaned workers.
PHP-FPM Auto-Tuning
Reads cgroup memory and CPU limits, applies application profiles (dev, light, medium, heavy, bursty), and calculates optimal worker counts automatically.
Multi-Process Orchestration
DAG-based dependency management with priority-based startup. Run PHP-FPM, Nginx, queue workers, cron, and schedulers in a single container.
Health Monitoring
TCP, HTTP, and exec-based health checks with configurable success thresholds. File-based Kubernetes readiness probes.
Scheduled Tasks
Built-in cron scheduler with per-task statistics. Heartbeat monitoring integration with Healthchecks.io, Cronitor, and Better Uptime.
Framework Scaffolding
Generate production-ready configs for Laravel, Symfony, WordPress, Magento, Drupal, Next.js, Nuxt, and Node.js with a single command.
Auto-tuning for real workloads
Instead of guessing pm.max_children, Cbox Init reads your container resource limits and applies application profiles. A "heavy" Laravel app with 512MB gets different settings than a "light" API service with 2GB. The calculator considers memory per worker, CPU cores, and safety margins.
Quick start
Add Cbox Init to any PHP Docker image with a single COPY instruction: COPY --from=cboxdk/init:latest /usr/local/bin/init /usr/local/bin/init. Then use init as your ENTRYPOINT.
Observability built in
Every process exposes Prometheus metrics, and the REST API gives you runtime control over scaling, process restarts, and configuration changes. The terminal UI (TUI) provides a k9s-style interface for interactive management during debugging.
From the Blog
Why We Need a Real PID 1 for PHP Containers
Supervisord and shell scripts are not process managers. Here is why your PHP containers need proper signal handling, zom
Monitoring PHP-FPM in Production: A Complete Stack
How Cbox FPM Exporter and Cbox Init work together to give you full observability over PHP-FPM pools, OPcache, and Larave