Posts Learn Snippets Categories Tags About
/
How to Deploy Your Laravel Website to Heroku for Free cover

How to Deploy Your Laravel Website to Heroku for Free

Learn how to deploy your Laravel website Production for free with Heroku

2 weeks ago

12 mins read

1369 views

In this post, you'll learn how to deploy your Laravel website to production for free with Heroku. The steps are very simple and straight forward so let's get started.

Heroku Homepage


What is Heroku?
Heroku is a platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud. Everything from the server instance, database, caching, monitoring, and all of those features will be handled by Heroku so the developer can focus on developing the website.

1 - Register an Account
In order to get started with Heroku, you will have to register for an account it's free so let's get into it.

2 - Create a New Heroku App
Once you have access to your account, you can create a new app from the dashboard.
Heroku Dashboard


Upon pressing the "create new app" button you will have to provide the necessary details. Fill in the app name, and the region which is closer to you, and finally define the pipeline like below.
Heroku Create New App


Now that the application has been created you will see the dashboard page which contains the details of the application. You can have a look through it but let's focus on the "deployment method" first.
Heroku Application Details


2.5 - Initialise new Laravel Project
For this example, a new Laravel 8 project will be created and the only addition that you have to add is "Procfile" which is a configuration that's necessary to instruct Heroku build. Do note that the file name itself is "Procfile" with no extension and it has to be saved in the project root.
// Procfile
web: vendor/bin/heroku-php-nginx /public

The above profile will be using "nginx" as the webserver, but if you prefer to use "apache" webserver then you can define it like below.
// Procfile
web: vendor/bin/heroku-php-apache2 /public

3 - Connect With the Deployment Provider
The provider is the place where the application source code is hosted and how this works is that every time a new update is made to the application and it's pushed ("git push") to GitHub or any other online repository, Heroku will get notified and perform its build process and then deploy the application to production. By default, Heroku has 3 providers and they are the:
  • Heroku Git
  • GitHub
  • Container Registry 

In this post, the "Github" method will be used so it's necessary to "Connect to Github" to provide Heroku access to the repository.
Heroku Connect to Provider


Once it's connected to GitHub, you can connect to the specific repository for the application to be initialised for deployment.
Heroku Connect to Github Repo


Do note that by default the branch that will be used is the "main" branch and from the settings like on the screenshot below, you can "enable automatic deploys" for a faster push to deployment.
Heroku Deployment Branch


4 - Define Environment Configs
Before deploying the branch, the environment configuration has to be set up from the "Settings" tab. You can reveal the "config vars" but by default will be empty.
Heroku Application Settings Page


Fill in the necessary config variable as the "key" and "value" pair a line at a time. The least necessary config to have is the APP_DEBUG, APP_ENV and APP_KEY.
Heroku Configuration Variable


By now it should be ready to be deployed to production so head back to the "deploy" tab.

5 - Trigger the Manually Deploy Button
From the "manual deploy" section, press the "deploy branch" and let the build process run, it will take few seconds and once it's ready, you can view it from the link provided or just click the "view" button.
Heroku Manual Deploy


6 - Preview in Browser
Finally, you can preview the application in production and it should look like below. If you have come across any errors, do enable the APP_DEBUG to "true" and APP_ENV to "local", this way the errors will appear when you access the link.
Heroku Preview Deployment


This URL is fully accessible to the public but do note that if your website doesn't receive any traffic within 30 mins then the instance/heroku will be in a sleep/hibernate mode so it will take few seconds for the website to load.

By now you should be able to deploy your Laravel app to production with Heroku for free and in the next tutorial, you'll learn how to set up a database on Heroku. If you found this tutorial to be helpful do share it with your friends, cheers and happy coding 🍻

Other Heroku Related Post