Firevel is a modified, serverless version of Laravel Framework designed to work inside Google App Engine standard environment, together with Google Firestore as database and cache.
In addition to standard Laravel Framework benefits it offers:
- Simple, serverless setup.
- Downscaling to zero.
- Micro-service friendly design.
- Free tier eligibility.
- Capacity to deal with high loads.
-
Create a project in the Google Cloud Platform Console.
-
Create firevel project with:
composer create-project firevel/firevel
- Deploy project with:
gcloud app deploy
Firevel does not require any credentials while running inside App Engine. If you like to run it locally you will also need to set GOOGLE_CLOUD_PROJECT
and GOOGLE_APPLICATION_CREDENTIALS
.env variables.
Differences between Laravel and Firevel.
Firevel is a Laravel 5.8 after small updates and packages installation:
- Firestore Session driver
- Firestore Cache driver
- Stack driver log channel
- Laravel Firestore wrapper
- Firequent
You can use Firevel in the same way you use Laravel. Be aware of Firebase limits and Google App Engine limits.
You should also replace Eloquent models with Firequent, by using use Firevel\Firequent\Model;
instead of use Illuminate\Database\Eloquent\Model;
inside a model class. Keep in mind that Firequent is in beta and support only basic queries.
You can run a simple CI process with gcloud builds submit --config cloudbuild.yaml --substitutions _APP_KEY=
with your production API key at the end. You can also connect it with your existing repository but remember to setup _APP_KEY.
- Serverless PHP on App Engine + Cloud Firestore with Firevel
- App Engine documentation
- How Requests are Routed
- Get to know Cloud Firestore
- Taylor Otwell - for building Laravel.
- SpringboardVR - for allowing this project to happen by providing initial production case.
- Google Cloud - for building great products.