multiapi / arco-laravel
Laravel integration for Arco (Octane on AWS Lambda Web Functions)
v0.8.1
2026-10-19 01:41 UTC
Requires
- php: ^8.3
- illuminate/console: ^11.0 || ^12.0 || ^13.0
- illuminate/http: ^11.0 || ^12.0 || ^13.0
- illuminate/queue: ^11.0 || ^12.0 || ^13.0
- illuminate/support: ^11.0 || ^12.0 || ^13.0
Requires (Dev)
None
Suggests
- ext-curl: Used by arco:work to talk to the Lambda Runtime API (present in Arco's runtime)
- ext-pcntl: Gives queue jobs on Lambda a time limit (present in Arco's runtime)
- aws/aws-sdk-php: Required by the SQS queue (Laravel's sqs driver) when Arco deploys queues
- laravel/tinker: Required by arco tinker (installed by default in Laravel apps)
- multiapi/arco: The Arco CLI (install with --dev); it loads LaravelPreset when building and deploying
Provides
None
Conflicts
None
Replaces
None
README
Laravel integration for Arco, which deploys Laravel to AWS Lambda Web Functions with FrankenPHP and Octane.
composer require multiapi/arco-laravel laravel/octane composer require --dev multiapi/arco
Install it as a regular dependency: its service provider ships with your app. On Lambda (only when Arco runs the app) it:
- trusts the AWS front end's
X-Forwarded-*headers, so Laravel seeshttps, the real host and client IP; - passes Lambda's session token to every AWS client configured with the function's key (DynamoDB cache, SQS, S3, SES, failed jobs, your own services);
- sends stock logging to stderr as JSON, with a request id in every line, and keeps sessions out of files.
- registers each
storage()ofarco.phpas a disk of the same name (Storage::disk('uploads')), points the DynamoDB cache store at a table Arco created, and sends failed jobs to the table offailedJobsTable().
It also provides the Laravel preset Arco uses to package your app (Octane worker, storage in
/tmp, /up health route, cached asset paths).
Documentation, issues and pull requests: multi-api/arco. This repository is a read-only split.
License
MIT