GitHub Logo

Perfect deployments with GitHub Actions

  • Professional deployments out-of-the-box
  • Easy to install
  • Zero-downtime
  • Fast 🔥 (deploys in less than a minute)
  • Automatically deploy when you `git push`
  • Fully customizable, you own the code
Screenshot of a GitHub Actions job

Here's what other developers have to say

"I had only been using Laravel for about two months when I bought this deployment script. It was easy to set up and only took me about an hour. Since then, it has been much easier and I can usually get it setup in less than 15 minutes."
Luke Bouch
Software developer
"I tried this script because I wasn't quite happy with Forge Quick Deploy. It was simple to set up, and the deployments are great."
Charlie Ewing
Software developer
Screenshot of GitHub Actions installing composer dependencies

Take a breather

GitHub has your back

GitHub installs and builds all your project dependencies. Your server doesn't have to do any of the heavy lifting.

The workflow runs composer install, npm install, and npm run production inside a GitHub Actions container. The compiled production bundle is then uploaded to your server.

Never deploy a broken release

With zero-downtime deployments

If any step in the deployment goes wrong, your deployment will fail gracefully. A broken release will never get activated.

Deploy with confidence.

Workflow that was canceled due to a safety check
The file structure of the deployment script

No dependencies, pure bash

You own the full deployment script, and it lives inside your repository. You have full control over the script.

You won't have to deal with dependencies, packages, 3rd-parties, or a SaaS subscription model.

Ready to go in less than 15 minutes

Want to see how easy it is? This video shows how to configure the script for your first deployment.

Ready to deploy?

   

One-time payment
VAT included

  • Full access to the deployment script

  • Complete "getting started" guide

  • Lifetime access to updates

  • 30-day money-back guarantee, no questions asked

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.

Upon purchase, 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 sjorsottjes@gmail.com

Frequently asked questions

How can I extend or modify the script?
The easiest way to extend the script is by adding code to the "before activation" and "after activation" hooks. These hooks, among other things, migrate the database, flush OPcache, and restart the queue. You can add any custom commands you'd like to these hooks.
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 9, it will deploy without a problem.
Do I get a notification if my deployment fails?
GitHub sends out an email when a deployment fails by default. You can add more notifications by modifying the workflow file. For example, you can use the official Slack action to send Slack messages to your team.
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?
Laravel Forge is mainly for provisioning and managing servers. Forge Quick Deploy can be used to deploy your code, but those deployments aren't a complete solution. You can use Forge to provision your server, and use this script for your deployments.
Can I deploy to multiple environments at once?
GitHub Actions is serverless, so you can deploy to as many environments you want, in parallel. For example, you can automatically deploy to your staging and acceptance environments at the same time 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, 20.04, and 22.04. The script will not work on a Windows server.
Does this script support PHP8.1?
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?
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?
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.
Does this deployment script allow for continuous integration and continuous delivery (CI/CD)?
Definitely! Set up specific branches that automatically deploy new changes. Push small changes regularly. That's all there is to it.
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.