LearnHow to Deploy a Static Website to Heroku

Andrew Chalkley
writes on February 1, 2016

Heroku is a cloud application platform that allows developers to deploy dynamic applications in Rails, PHP, Node.js and Python web applications. This platform can also help with managing and scaling apps, and is incredibly user-friendly.

Before Using Heroku

In order to deploy a site you need a couple of things:

  1. Have Git installed
  2. Create a Heroku Account – sign up here
  3. Download the Heroku Toolbelt – a command line application for managing your Heroku account
  4. Run heroku login in your terminal or command prompt and fill in your Heroku credentials

Step 1: Navigate to Your Project

First, you need to navigate to your project in the command prompt.

cd Projects/my-site

Step 2: Create an Index.php File

If you’re happy with the state of your application – create an index.php file. We can trick Heroku to deploy a static site by including 1 dynamic file.

The index.php file will be served by Heroku before your index.html. We need to make the browser redirect from index.php to index.html. We only need to include one line of PHP code.

<?php header( 'Location: /index.html' ) ;  ?>

Pro Tip: Make sure there’s no spaces before the <?php or else it won’t work!

Step 3: Use Git to Prepare for Deployment

Then we’ll use the command line tool called git to initialize or create a version of the site you want to deploy. To do that run the command:

git init
git add .

The add . means add all the files to the git repository.

Step 4: Save All Changes for Your Site

Then you want to commit or save all the changes for your site. With a message describing what you’ve done.

git commit -m "My site ready for deployment."

Step 5: Create Site on Heroku

Now you want to create your site on Heroku. If you’re already logged in (because you ran heroku login earlier), you can issue the following command:

heroku apps:create my-static-site-example

Insert your desired name instead of my-static-site-example.

If the name isn’t taken you can deploy your site using git.

git push heroku master

Once you see “remote: Verifying deploy…. done.”

You can now visit your site at https://<whatever-name-you-selected>.herokuapp.com/ or my example site here https://my-static-site-example.herokuapp.com/.

If you want to add your own domain check out the Heroku documentation.

Step 6: Make Changes as Necessary

If you need to, make changes to your site of the following 3 commands.

Add the changes…

git add .

Save the changes…

git commit -m "Add useful message"

Then deploy…

git push heroku master

If you’re new to git or want to get a better understanding check out the Treehouse course Git Basics. If you want to deploy a Node.js application we have a workshop for you too!

23 Responses to “How to Deploy a Static Website to Heroku”

  1. Great article. Thanks. One update as of March 2018. Heroku Toolbelt is now replaced by Heroku CLI – https://devcenter.heroku.com/articles/heroku-cli

  2. service dee femme de ménage
    Professionnelle de l’entretien, notre dynamique entreprse saura
    réaliser pour vous l’ensemble des travaux ménagers.

    G.E.M. s’engage sur unee prestation de qualité !
    Notre équipe de spécialistes chevronnés accomplira un travail à la fois soigné,
    rapide et économique.
    De plus, nous utilisons exclusivement des produits écologiques et
    hautement performants, issus des toutes dernières technologies.

    La vie modsrne véhicule aussi de lourdes menaces. D’apparence inoffensive, meubles, appareils ménagers, matériaux de construction, jouets ou objets familiers peuvent dégager des phtalates ou
    autres redoutable composéschimiques.
    entretien ménager résidentiel
    Franchise de Nettoyage Résidentiel eet Commercial,
    service de femme de ménage ,entretien ménager commercial,entretien ménager
    commercial, ménage résidentiel, service d’entretien ménager montréal
    Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir des
    professionnels du nettoyage commercial et de la maintenance.
    En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi quee d’une aide apportée par un modèle d’affaires éprouvé
    vou assurant de travailler avec un leader du domaine disposant
    de l’expérience et la stabilité.
    Vous disiez augmentez vos revenus afin d’améliorer votree
    quotidien ? Faites Appel a G.E.M Ménage!
    service de femkme dee ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal, service de
    femme de ménage ,entretien ménager commercial,entretien ménager commercial,
    ménage résidentiel, service d’entretien ménager montréal
    Franchises de Nettoyage Résidentiel et Commercial disponible
    Partout A Montréal ,Rive Noord et Rive Sud.

    Financement Sans Intérêt par G.E.M .
    Un dépôt est obligatoire

    Un Investissement de 24 000$ Vous Rapporte (4800$
    et plus de Revenus par Mois)!

    Matériel et formation fourni

    Nous aidons les personnes désireuses d’être propriétaires d’entreprises
    prospères à devenir des professionnels du nettoyage commercial et dee la maintenance.
    En rejoignant notre réseau d’entreprises, vous
    bénéficierez d’un avantage concurrentiel ainsi que d’une aide apportée par un modèle d’affaires éprouvé vous
    assurant de travailler avec un leader du domaine disposant de l’expérience et la
    stabilité.

    G.E.M Ménage vous ofdfre l’opportunité de travailler pendant la
    journée de lunmdi a vendredi .

    G.E.M Vous propose des contrats d’entretien ménager avec
    ddes horaires souples et un revenu garanti.

    Pour les ersonnes libres,les nouveaux arrivants ou lees sans-emplois G.E.M
    peut favoriser vootre accès au marché du travail !

    G.E.M vous propose des contrats stables et rémunérateurs!

    Dans le secteur résidentiel idéal pour uun couple, ou un homme seul dans
    lle secteur commercial
    Voous débuterdes maintenant

    Des techniques et méthodes de travail éprouvées.
    Une aide à la consyitution ou à l’enregistrement de
    leur entreprise.
    Des territoires d’exercice protégés.
    Entreprise clés en main.
    Un garantie qui protège votre investissement

    Exigences de l’entrée de notre réseau:

    Les demandes sont examinées attentivement ett une enquête relative à la candidature est menée.

    Les candidats doivent passer une entrevue dde sélection.
    Avant tout début d’activité, les candidats doivent assister à des sessions de formation.

    Au G.E.M. nous nous assurons que nos franchisés puissent offrir à leurs clients un service professionnel d’une qualité supérieure à celle de
    la concurrence.
    Franchise disponible au résidentiel et commercial

    N’hésitez pas à nous contacter
    469 Jean-Talon Ouest Suite # 222
    Montreal QC
    gemmenage.net
    gemmenage.com

  3. grand ménage Terrebonne, service de femme de ménage
    Profeessionnelle de l’entretien, notre dynamique
    enteprise saura réaliser pou vous l’ensemble des treavaux
    ménagers.
    G.E.M. s’engage suur unne prestation de qualité !
    Notre équipe de spécialistes chevronnés accomplira unn travsil à
    la fois soigné, rapide et économique.
    De plus, nous utilisons exclusivement des
    produits écologiques et hautement performants, issus des toutws dernières technologies.

    La vie moderne véhicule aussi de lourdes menaces.
    D’apparence inoffensive, meubles, appareils ménagers,
    matériaux de construction, jouets ou objets familiers peuvent dégager des phtalates ouu autres redoutables composés chimiques.

    entretien ménager résidentiel
    Franchise de Nettoyage Résidentiel et Commercial,
    service de femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal
    Noous aidons les personnes désireuses d’être propriétaires d’entreprises prospères
    à devenir des professionnels du nettoyage commercial et de la maintenance.
    En rejoigmant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi que d’une aide apportée par un modèle d’affaires
    éprouvé vouus assurant dee travailler avec un leader du domaine
    disposant de l’expérience et la stabilité.

    Vous disiez augmentez voss revenus afin d’améliorer votre quotidien ?
    Faites Appel a G.E.M Ménage! service de femme dee ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal, service de femme dee ménage ,
    entretien ménager commercial,entretien ménager commercial, ménage résidentiel,
    service d’entretien ménager montréal
    Franchises de Nettoyage Résidentiel et
    Commercial disponible Partout A Montréal ,Rive Nord et Rive Sud.

    Financement Sans Intérêt par G.E.M .
    Un dépôt est obligatoire

    Un Investissement de 24 000$ Vous Rapporte (4800$ et
    plus de Revenus par Mois)!

    Matériel et formatioon fourni

    Nous aidobs less personnes désireuses d’être propriétaires d’entreprises prospères à devenir des professionnels du nettoyage commercial et de la maintenance.
    En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi que d’une
    aide apportée par un modèle d’affaires éprouvé vous assurant de travailler avec un leader du domaine disposant de l’expérience
    et la stabilité.

    G.E.M Ménage vous offre l’opportunité de travailler pendant la journée de lubdi a
    vendredi .

    G.E.M Vous propose des contrats d’entretien ménager aavec des horaires souples ett un revenu garanti.

    Pour lles personnes libres,les nouveaux arrivantts ou les sans-emplois G.E.M peut favoriser votre accès au
    marché du travail !

    G.E.M vous propose des contrats stables et rémunérateurs!

    Dans le secteur résidentiel idéal pour un couple, ou un homme seul dans le secteur commercial
    Vous débuter des maintenant

    Dess techniques et méthodesde travail éprouvées.
    Une aide à la constitution oou à l’enregistrement de leur entreprise.

    Des territoires d’exercice protégés.
    Entreprise clés enn main.
    Un garantie qui protège votre investissement

    Exigences de l’entrée de notre réseau :
    Les demandes sont examinées attentivement et une enquête relative
    à lla candidature est menée.
    Les candidats doivent passer une entrevue de sélection.
    Avant tout début d’activité, les candidats doivent assister à des sessions de
    formation.

    Au G.E.M. nous nous assurons que nos franchisés puissent offrir à leurs clients unn service
    professionnel d’une qualité supérieure à celle de la concurrence.

    Franchise disponible au résidentiel et commercial

    N’hésitez pas à nous contacter
    469 Jean-Talon Ouest Suite # 222
    Montreal QC
    gemmenage.net
    gemmenage.com

  4. does any know why this is changing some of my css?

  5. Tiffany on May 17, 2017 at 2:19 am said:

    Thank you! That one line of php code is what I was looking for 🙂

  6. I have follows the same instructions but im getting this errors and my page was broken.

  7. Thank you! This really saved me a lot of time today! hero of the day!!!!!

  8. Very nice article. very helpful and easy.

  9. Thank you so very much! It worked!

  10. Very nice article. Helped us to save lot of time. Thanks

  11. Works great! Thanks!

  12. Alexis Williams on September 1, 2016 at 6:39 pm said:

    Thanks for the article. Very helpful and painless!

  13. sam north on April 16, 2016 at 3:14 am said:

    Good advice here that helped me get a site up on heroku. But now my problem is that the part of the site controlled by AJAX doesn’t work. It uses the Flickr API to get the latest photos from 3 cities. Does anyone know how to make this setup work?
    This is the link: https://glacial-journey-83612.herokuapp.com/index.html

    • Alan Hohn on June 14, 2016 at 1:23 pm said:

      Check your JavaScript console. When I visit your site I see an error relating to fetching fonts and jQuery from an insecure (HTTP) location even though your Heroku app is secure (HTTPS). Browser security rules forbid that.

      Just change “http” to “https” for those items in your index.html (and anywhere else) and you should get past this issue.

  14. The free tier on both Heroku and Netlify doesn’t really give you much.

    Neither is very good at hosting large assets (like libraries of videos).

    *****

    My vote is for Amazon at this point.

    I’m playing around with Netflix’s open source Spinnaker (but waiting for Azure support):

    http://spinnaker.io/online_docs/overview/overview.html

  15. May be netlify.com could also be a good alternative for hosting static sites.
    incl CDN / free SSL
    Drag’n Drop Interface
    Build and Deploy automatically
    Instant Cache Invalidation

  16. Don’t put large assets into your GIT repository. Host them on a dedicated service like Amazon S3 instead.

    You might also want to look at this buildpack: https://github.com/hone/heroku-buildpack-static

    • Any advice on migrating assets on existing static sites to s3 without manually doing everything? I have a couple of completed sites I’d like to move over from an old host.

  17. How do you suggest dealing with large assets? Git really doesn’t like committing videos

  18. Using a static site generator with a static site host like Github Pages is better suited for static sites. Heroku’s free dyno sleeps after 30 minutes of inactivity and must sleep 6 hours in a day (https://www.heroku.com/pricing).

    I am bit biased though, I have been building https://zammu.in/?invitation_code=TEAMTREEHOUSE which does Automatic builds and deploys of static sites.

Leave a Reply

You must be logged in to post a comment.

Learning to code can be fun!

Get started today with a free trial and discover why thousands of students are choosing Treehouse to learn about web development, design, and business.

Learn more