vapor-cli
The command-line client for Laravel Vapor, the serverless deployment platform for Laravel on AWS Lambda.
Repository Health
Technical Analysis
laravel/vapor-cli is the official command-line client for Laravel Vapor, an auto-scaling, serverless deployment platform for Laravel applications powered by AWS Lambda. It lets you manage your Vapor-hosted infrastructure and deployments entirely from the terminal.
Through the vapor command you can provision projects and environments, deploy applications, and coordinate the surrounding AWS resources Vapor manages, including SQS queues, databases, Redis clusters, networks, and the CloudFront CDN, without wrestling directly with Lambda’s complexity.
What You Get
- A
vaporcommand for deploying and managing Laravel apps on Vapor - Commands to provision and configure projects, environments, and resources
- Manifest-driven configuration of deployments and infrastructure
- Build and packaging steps tailored for serverless Laravel on AWS Lambda
- Integration with Vapor-managed AWS services like SQS, databases, Redis, and CloudFront
Common Use Cases
- Deploying a Laravel application to a serverless AWS Lambda environment
- Managing multiple Vapor environments (staging, production) from CI or a terminal
- Provisioning databases, caches, and queues that back a Vapor-hosted app
- Automating serverless deployments within a Laravel team’s release pipeline
Under The Hood
Architecture - vapor-cli is a Symfony Console application bootstrapped from the executable vapor script, which builds an Illuminate Container and registers Commands. Command classes under src/Commands drive workflows via a ConsoleVaporClient (a Guzzle-based API client), a Manifest reader, and BuildProcess/Docker helpers that package the application, with AWS S3 uploads handled through league/flysystem.
Tech Stack - PHP ^7.2|^8.0 with ext-zip. It leans on Illuminate components (container, filesystem, support), Symfony Console/Process/Yaml, Guzzle, league/flysystem plus the AWS S3 adapter, ramsey/uuid, and vlucas/phpdotenv. PHPStan and PHPUnit cover static analysis and testing.
Code Quality - The source is organized into clear domains (Commands, BuildProcess, Aws, Models, Solutions), ships a tests directory run under PHPUnit, and enforces static analysis via phpstan.neon, reflecting the maintenance standards of a first-party Laravel package.
API Design - As a CLI, its developer experience centers on discoverable, well-named subcommands and a declarative project manifest, so deploying is largely a matter of running vapor deploy after configuring the manifest, hiding the underlying AWS orchestration.