badpixxel / paddock-system
Paddock - System Extension (Services, PHP, Apt-Get)
Package info
gitlab.com/paddock-project/paddock-system
Type:bundle
pkg:composer/badpixxel/paddock-system
4.0.0
2026-07-20 16:44 UTC
Requires
- php: ^7.4|^8.0
- badpixxel/paddock-core: ^4.0
Requires (Dev)
- badpixxel/php-sdk: ^2.0
README
Paddock extension for monitoring Linux & PHP servers: PHP configuration, system packages, services, and shell commands.
This package provides two bundles:
- PaddockPhpBundle — inspect the PHP runtime (version, config, extensions, env, composer packages)
- PaddockShellBundle — inspect the host system (apt packages, services, lsb release, shell commands)
Requirements
- PHP 8.1+
badpixxel/paddock-core^5.0 (Symfony 5.4 → 8.x)
| Version | PHP | Paddock Core | Status |
|---|---|---|---|
| 5.x | ^8.1 | ^5.0 | Active |
| 4.x | ^7.4 | 4.x | Maintenance |
Installation
composer require badpixxel/paddock-system
Available Collectors
PHP (PaddockPhpBundle)
| Code | Collected Data |
|---|---|
system-php-constant | PHP constants (PHP_VERSION, PHP_INT_SIZE, ...) |
system-php-config | PHP ini configuration values |
system-php-ext | Loaded PHP extensions |
system-php-env | Environment variables |
system-php-composer | Installed composer packages versions |
Shell (PaddockShellBundle)
| Code | Collected Data |
|---|---|
system-shell | Any shell command output (via cmd rule) |
system-apt-version | Installed apt packages versions |
system-apt-updates | Available apt packages updates |
system-lsb-release | Distribution info (lsb_release) |
system-service | System services status |
Usage Examples
Check the PHP runtime of a server:
tracks:
my-php-checks:
collector: "system-php-constant"
description: "Check PHP Version"
rules:
PHP_VERSION: { rule: version, gt: { error: "8.1.0" } }
my-php-extensions:
collector: "system-php-ext"
description: "Check Required PHP Extensions"
rules:
curl: { ne: true }
json: { ne: true }
Check system packages & services:
tracks:
my-system-checks:
collector: "system-apt-version"
description: "Check Installed Packages"
rules:
php8.1-cli: { rule: version, gte: { warning: "8.1" } }
my-services:
collector: "system-service"
description: "Check Services are Running"
rules:
nginx: { ne: { error: true } }
mysql: { ne: { warning: true } }
Run a custom shell command check:
tracks:
my-shell-checks:
collector: "system-shell"
description: "Custom Shell Verifications"
rules:
php-version: { collector: system-shell, rule: cmd, cmd: ["php", "--version"], ne: true }
More examples in tests/*/Resources/tracks/ and tests/*/Tracks/.
Development & Tests
All checks run identically in CI and locally: the GitLab pipeline executes the exact same commands as the docker containers (one per Symfony version, 5.4 → 8.x):
# Start all containers & run everything (composer, quality, tests)
make verify
# Run PhpUnit tests in all containers
make test
# Quality suites (GrumPHP: lint, code style, PhpStan)
php vendor/bin/grumphp run --testsuite=travis
php vendor/bin/grumphp run --testsuite=csfixer
php vendor/bin/grumphp run --testsuite=phpstan
# PhpUnit testsuites
vendor/bin/phpunit --testsuite=integration
vendor/bin/phpunit --testsuite=operational
License
Paddock is released under the MIT License.