GitLab Logo

Perfect deployments with GitLab CI/CD

Use GitLab CI/CD pipelines for perfect Laravel deployments. All from inside your own repository.

Screenshot of successful GitLab CI/CD pipelines

Automatically deploy on push

GitLab automatically starts deploying when you push a new commit. No manual action required.

Zero downtime deployments

Your new release won't be activated until it is completely ready, causing no downtime for your users.

Done in under a minute

The GitLab pipeline takes less than a minute to deploy your application. That's barely enough time to check Twitter.

Screenshot of a GitLab Pipeline deploying a Laravel application

Production ready

and easy to modify

The deployment script is production ready out of the box. Just drag & drop the script into your repository, push a commit, and watch the deployment in action.

Customizing the deployments is easy. The script lives in your repository, you are in full control. For example, you can easily modify the script to run your tests or static analysis before each deployment.

No dependencies

just a bash script in your repository

You have full control over the deployment script. You can add all the hooks and build steps you'd like.

A lot of time was spent making the script as clean and clear as possible. The script also contains plenty of comments that explain what is going on.

The file structure of the deployment script

Ready to deploy?

One-time payment

You buy it, you own it. Forever.

What's included

  • Full GitLab Pipelines workflow file

  • Well-documented bash deployment script

  • Support by email

  • Complete "getting started" guide

  • Lifetime access

  • 30-day money back guarantee

VAT included
Payments are handled by Paddle

Already deployed your application?

Compatibility with other popular tools is built in. These examples should give you an idea of just how easy replacing your current workflow is.

A full "getting started" guide is included that explains exactly how to run your first deployment.

Using Deployer?
This deployment script is fully compatible with deployments done by Deployer. Just make the deployment to the same directory as you always deploy to. Deployer's shared directory will be automatically detected, no changes required.
Using Laravel Envoyer?
This deployment script is fully compatible with deployments done by Laravel Envoyer. Just point the script to the same directory as Envoyer deploys to, no changes required.
Using git clone or Forge Quick Deploy?
Migrating to a zero-downtime structure is easy. Deploy to the same directory your project is currently in. Point your virtualhost (such as Apache2 or Nginx) to /current/public instead of /public, and you're all done.
Still uploading by hand using FTP?
Migrating to a zero-downtime structure is easy. Deploy to the same directory your project is currently in. Point your virtualhost (such as Apache2 or Nginx) to /current/public instead of /public, and you're all done.
Haven't deployed your project yet?
Run your first deployment. Fill in the .env file on your server. Point your Apache2 or Nginx to /current/public, and you're all done.

Have any questions?

A picture of Sjors If you have any questions, please don't hesitate to send me a message. You can use this contact form to send a message straight to my inbox.

You can also email me directly at

Frequently asked questions

Does the script have pre- and post-deployment hooks?
The script, by default, comes with two hooks. The first is a "before activation" hook, that, among other things, migrates the database. The second is an "after activation" hook that flushes OPcache and restarts the queue.
Which Laravel versions are supported?
The script supports Laravel 5.0 and higher. Laravel's directory structure and console commands (such as config:cache) haven't changed in the last few years. It doesn't matter if you're deploying Laravel 5.8, or the latest Laravel 8, it will deploy without a problem.
Is this script a good alternative for Laravel Envoyer?
Yes, this deployment script is a good alternative for Laravel Envoyer. The script deploys your application in almost exactly the same way as Envoyer does. If you are currently using Envoyer, no changes are required to start using this script.
How does this compare to Laravel Forge?
Apples and oranges! Laravel Forge is mainly for provisioning and managing servers. Forge can also be used to deploy code, but those deployments aren't a complete solution. You can use Forge to provision your server, and you can use this deployment script for a robust deployment strategy.
Can I deploy to multiple environments at once?
Yes, the serverless architecture of GitLab pipelines allows you to deploy to as many environments you want, in parallel. You can, for example, automatically deploy to your staging and acceptance environments when a new commit is pushed to your develop branch.
What operating systems are supported?
The deploy script is made to deploy your application to a Linux server. It is tested with Ubuntu 16.04, 18.04, and 20.04. The script will not work on a Windows server.
Does this script support PHP8?
Yes, every PHP version is supported. The deployment script uses bash to deploy your application. This means it doesn't matter if you're using php5.6, php7.4 or the latest and greatest php8.1, deployments will always work.
Can I use the script for multiple applications?
Yes. After purchasing the script you can use it for as many environments and applications as you want. Buy it once, own it for life.
Can this automatically run my unit tests?
Yes. You can modify the build step to also run your PHPUnit tests and Laravel Dusk tests. If a test fails, your deployment will instantly be canceled.
Can I deploy a non-Laravel application using this script?
Not out of the box, but the deployment script is well-documented and easy to modify. With some changes to the script I'm convinced you can use it to deploy anything from Symfony to Magento.