Requirements
Requirements
Cbox Billing installs only when your project satisfies the constraints declared in
its composer.json. The versions below are exactly what the dependency resolver
enforces — nothing invented.
PHP
- PHP
^8.4— PHP 8.4 or newer. The app usesreadonlyvalue objects, enums, first-class callable syntax, and constructor property promotion throughout.
No non-standard PHP extension is required beyond a normal Laravel install (the
standard ext-* set: mbstring, openssl, pdo, tokenizer, xml, ctype,
json, bcmath/gmp as your platform provides). On-prem licensing signs with
Ed25519 via ext-sodium (bundled with PHP 8.4).
Framework
laravel/framework^13.8— Laravel 13. This is the full framework (the app ships routes, migrations, a console, and Blade views), not just the Illuminate components the engine depends on.laravel/tinker^3.0— the REPL.
cboxdk packages (the engine and its companions)
These are the first-party packages the app composes. Their own internals are documented in their repositories; this app documents how it wires and uses them.
| Package | Constraint | Role |
|---|---|---|
cboxdk/laravel-billing |
^0.8 |
The billing engine — catalog, pricing, subscriptions, metering, ledger, wallets, invoicing, reconciliation, licensing module. |
cboxdk/laravel-billing-stripe |
^0.4 |
The Stripe payment-gateway adapter (binds the PaymentGateway + webhook verifier when configured). |
cboxdk/laravel-console-kit |
^0.2.1 |
The provider-console socket — nav registry, feature registry, current-context, plugin slots. |
cboxdk/laravel-health |
^2.0 |
Liveness/readiness + gated detail health endpoints. |
cboxdk/laravel-id-client |
^0.2 |
The Cbox ID OIDC relying-party client + federated RBAC manifest publisher. |
cboxdk/laravel-telemetry |
^1.0 |
Collector-free metrics/traces/events (off by default). |
cboxdk/license |
^0.1 |
Ed25519 license issue/verify + the capability gate the plugins read. |
Other direct dependencies
firebase/php-jwt^7.1— verifies the OIDCid_tokenon the sign-in callback.setasign/fpdf^1.9— renders invoice PDFs in pure PHP (no headless browser, no external runtime).
Development dependencies
fakerphp/faker, larastan/larastan (^3.0, PHPStan), laravel/pail,
laravel/pao, laravel/pint (^1.27), mockery/mockery,
nunomaduro/collision, and phpunit/phpunit (^12.5.12). The verification gate
(composer qa) runs Pint, PHPStan, PHPUnit, the license check, and composer audit.
Services a production deployment needs
These are not enforced by Composer — they are the runtime services the app expects once you leave local development. See the production checklist.
- A relational database — Postgres (recommended) or MySQL. Migrations use portable column types and run on Postgres, MySQL, and SQLite. SQLite is local-only.
- Redis / Valkey — for session, cache, and queue in production (the local
default is
databasefor all three). - A queue worker + scheduler — lifecycle jobs (invoicing, notifications, dunning, reconcile) run on the queue; the schedule drives the cadence.
- An SMTP / API mailer — lifecycle notifications are queued and delivered through the configured mailer.
- A Cbox ID instance — for real OIDC sign-in and federated RBAC (optional in local/demo mode).
- A payment gateway (optional) — Stripe, or the manual signed-webhook gateway.
What is not required
- No gateway SDK to boot. With no Stripe keys, the dependency-free manual gateway is the fallback.
- No license keys to boot. With no signing key, licensing is inert and the app still runs everything else.
- No live Cbox ID to boot. With no issuer, the app offers demo sign-in.