deploy/ automate exactly what is
described here and nothing more. If a script and a document disagree, the
document is right and the script is a bug.
Choosing a method
Both are supported and neither is a lesser path. They differ in who provides the
runtime, not in how the application is configured: after either one you run the
same
php artisan install, and the same services must be running.
Read Requirements first regardless of method — it lists
what the application needs from a host, including the two things most often
missed: the pcntl/posix extensions and the CREATE privilege on the database.
The shape of an installation
Whatever the method, a working install has the same parts:Order of operations
- Prepare the host — Requirements
- Install the runtime — Docker Compose or bare metal
- Configure the application —
php artisan install, covered in both guides - Start the long-lived services — Services
- Optionally put the Go gateway in front of webhooks — Webhook gateway
- Verify — each guide ends with the checks worth running
Upgrades
See Upgrading and rollback. The short version: migrations are additive, tenant schemas migrate separately from the landlord schema, and queue workers must be restarted after a deploy because they hold the old code in memory.Not covered here
- Local development — see Local setup
- Extension development — see the developer portal
- High availability and multi-node setups. Nothing prevents them, but nothing has been tested or documented, so treat it as unexplored rather than supported.