pinoox / pinroll
Pinroll — atomic release rollout, rollback, and PinGate delivery for Pinoox
1.1.0
2026-07-10 10:02 UTC
Requires
- php: ^8.2
- pinoox/pinion: ^1.1
- symfony/console: ^6.4|^7.0
- symfony/http-foundation: ^6.4|^7.0
Requires (Dev)
- nunomaduro/collision: ^8.5
- pestphp/pest: ^2.36
Suggests
- phpseclib/phpseclib: SSH/SFTP transport
- pinoox/pincore: HMVC integration, Pinx pipeline, and php pinoox CLI
This package is auto-updated.
Last update: 2026-07-10 16:18:37 UTC
README
Pinroll (pinoox/pinroll) 1.1.0 — atomic release rollout, rollback, and PinGate delivery for Pinoox.
| Concept | Meaning |
|---|---|
| Host | Where to deploy (production, staging, …) |
| Bundle | What to ship (auto-detect apps, or --bundle=…) |
| Transport | How to send (ftp, ssh, pinion, local) |
| PinGate | Remote HTTP entry for install / status / rollback |
Documentation
Full guides (setup, hosts, retention, rollback, CLI):
Install
On a Pinoox platform project:
composer require --dev pinoox/pinroll
Quick start
php pinoox pinroll:init
# fill PINROLL_* credentials in .env
php pinoox pinroll:connect
php pinoox pinroll:apps
php pinoox pinroll:check
php pinoox pinroll:deploy
| Step | Command | What it does |
|---|---|---|
| 1 | pinroll:init |
Scaffold pinroll/pinroll.config.php |
| 2 | Edit .env |
Set PINROLL_* FTP/SSH keys |
| 3 | pinroll:connect |
Deploy path, site URL, upload PinGate (--reset to re-run) |
| 4 | pinroll:apps |
Set default packages for the host |
| 5 | pinroll:check |
Verify transport + PinGate |
| 6 | pinroll:deploy |
Build, upload, and install (go live) |
CLI
php pinoox pinroll:init php pinoox pinroll:connect php pinoox pinroll:apps php pinoox pinroll:push php pinoox pinroll:deploy php pinoox pinroll:install php pinoox pinroll:push --app=com_pinoox_developer php pinoox pinroll:build --bundle=single-app --package=com_pinoox_developer php pinoox pinroll:status php pinoox pinroll:history php pinoox pinroll:rollback php pinoox pinroll:cleanup php pinoox pinroll:gate php pinoox pinroll:vendor php pinoox pinroll:pull --server=https://releases.example.com
pinroll:init— scaffoldpinroll/+.envkey stubs (no prompts)pinroll:connect— configure host + upload PinGate; verifies if already set (--resetto redo)pinroll:apps— sethosts.*.apps(interactive or--apps=)pinroll:check— verify host connectivity before pushpinroll:push— build and upload only (no install)pinroll:deploy— push + install via PinGate (go live)pinroll:install— install a staged release (pinroll:applyis a deprecated alias)pinroll:rollback— switch the host back to a previous releasepinroll:cleanup— prune local/remote archives bykeep/storepinroll:gate— rebuild/upload PinGate (-zzip;--no-uploadkeep local)pinroll:vendor— export platformvendor/(pinroll/vendor.zip)pinroll:pull— pull newer manifest from a release server (alias:pinroll:poll)
Tests
composer test
composer test:platform
License
MIT — Pinoox