All Projects → dwyl → Learn Heroku

dwyl / Learn Heroku

🏁 Learn how to deploy your web application to Heroku from scratch step-by-step in 7 minutes!

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Learn Heroku

Phoenix Chat Example
💬 A Step-by-Step Beginners Tutorial for Building, Testing & Deploying a Chat app in Phoenix 1.5.5 🚀
Stars: ✭ 452 (+310.91%)
Mutual labels:  heroku, tutorial, learn, beginner
Llvm 9.0 Learner Tutorial
A blog for LLVM(v9.0.0 or v11.0.0) beginner, step by step, with detailed documents and comments. Record the way I learn LLVM and accomplish a complete project for FPGA High-Level Synthesis with it.
Stars: ✭ 58 (-47.27%)
Mutual labels:  tutorial, learn, beginner
Phoenix Todo List Tutorial
✅ Complete beginners tutorial building a todo list from scratch in Phoenix 1.5.3 (latest)
Stars: ✭ 65 (-40.91%)
Mutual labels:  tutorial, learn, beginner
Javascript Todo List Tutorial
✅ A step-by-step complete beginner example/tutorial for building a Todo List App (TodoMVC) from scratch in JavaScript following Test Driven Development (TDD) best practice. 🌱
Stars: ✭ 212 (+92.73%)
Mutual labels:  tutorial, learn, beginner
Phoenix Liveview Counter Tutorial
🤯 beginners tutorial building a real time counter in Phoenix 1.5.5 + LiveView 0.14.7 ⚡️
Stars: ✭ 115 (+4.55%)
Mutual labels:  tutorial, learn, beginner
Hacktoberfest
This hacktoberfest project exists to help you submit your first Pull Request and welcome you to the world of open source!
Stars: ✭ 216 (+96.36%)
Mutual labels:  tutorial, beginner, learning-by-doing
Elm Cheat Sheet
An overview of Elm syntax and features
Stars: ✭ 928 (+743.64%)
Mutual labels:  tutorial, learn
Notebooks
Learn Python for free using open-source notebooks in Hebrew.
Stars: ✭ 877 (+697.27%)
Mutual labels:  tutorial, learning-by-doing
Phoenix Ecto Append Only Log Example
📝 A step-by-step example/tutorial showing how to build a Phoenix (Elixir) App where all data is immutable (append only). Precursor to Blockchain, IPFS or Solid!
Stars: ✭ 58 (-47.27%)
Mutual labels:  tutorial, learn
Learn Vim
Vim 实操教程(Learning Vim)Vim practical tutorial.
Stars: ✭ 1,166 (+960%)
Mutual labels:  tutorial, beginner
Hello World
🙆 Are you a beginner? send your test pull requests here!
Stars: ✭ 70 (-36.36%)
Mutual labels:  learn, beginner
Deploying Flask To Heroku
Deploying a Flask App To Heroku Tutorial
Stars: ✭ 81 (-26.36%)
Mutual labels:  heroku, tutorial
Vst24 Hello World
This project contains a "Hello World" style application for building a VST 2.4 plugin
Stars: ✭ 18 (-83.64%)
Mutual labels:  tutorial, beginner
Rust Learning
A bunch of links to blog posts, articles, videos, etc for learning Rust
Stars: ✭ 7,431 (+6655.45%)
Mutual labels:  tutorial, learn
Try Django
Learn Django bit by bit in this series
Stars: ✭ 767 (+597.27%)
Mutual labels:  tutorial, learn
Learn Vim
Learning Vim and Vimscript doesn't have to be hard. This is the guide that you're looking for.
Stars: ✭ 7,221 (+6464.55%)
Mutual labels:  tutorial, beginner
Ansible Interactive Tutorial
Interactive Ansible tutorials with dead simple setup via Docker
Stars: ✭ 1,309 (+1090%)
Mutual labels:  tutorial, devops
100 page python intro
🐍 Short, introductory guide for the Python programming language 📗 ⚡️
Stars: ✭ 90 (-18.18%)
Mutual labels:  beginner, learning-by-doing
It Starts With Clojure
a Practical guide to Clojure
Stars: ✭ 93 (-15.45%)
Mutual labels:  tutorial, learning-by-doing
Java8 Guides Tutorials
Java 8 Guides and Tutorials - A lot of awesome examples using Java 8 features like Stream, Lambda, Functional Interface, Date and Time API and much more
Stars: ✭ 100 (-9.09%)
Mutual labels:  tutorial, learning-by-doing

Learn (How to Deploy a Web Application on) Heroku

heroku logo

Why?

You know how to create a web application, but that knowledge is only useful if you know how to show the app to people!

What?

Easily deploy your node.js web application to Heroku so you can start testing it with end-users as soon as possible!

You'll have a public URL for your app in 5 minutes which you can share with real people and get feedback/validation for your idea!

"Top 7" Key Benefits:

  • Basic apps are Free!! (e.g. Demo, Hackathon or "Low Traffic" Personal "Blog" or Portfolio site)

  • Quick and Easy Deployment from your development machine or GitHub! A couple of clicks or a single command is all it takes!

  • Excellent knowledge base / documentation for both simple and advanced topics! (if you get stuck, ask a question we can/will help!)

  • Continuous Deployment is easy from a GitHub repository using "Hooks". (see step-by-step tutorial below!)

  • Great Range of "Addon Services" you can use with your app in a couple of clicks (e.g: PostgreSQL, ElasticSearch, Monitoring etc.)
    and most have a "free tier" so you can get started without spending a penny! See: https://elements.heroku.com/addons

  • "Industry Standard" Service Quality is really good (under the hood Heroku uses Amazon Web Services but they do all the "plumbing" so you don't have to waste time on "DevOps" until you're ready to scale, at which point just pay for a pro!)

  • Cost-effective for your first 10k users (don't waste your time on "DevOps" till you have validated your App Idea with real people!)

Who?

Anyone building for the web who values their time and wants/needs a painless way to deploy, monitor and automatically scale an app!

How?

Beginner: Basic Heroku Deployment of Node.JS App in 5 Minutes

Pre-requisites:

No Experience/Knoweldge Required

  • No Node.js or other knowledge required
  • All web-based (no command line, we can learn that "CLI" later!)

1. Fork this repository on GitHub!

In your web browser navigate to: github.com/dwyl/learn-heroku (if you aren't already on the page)

After you have starred the repository, click the "fork" button:
learn-heroku-fork-button

You should now see something similar to this: image
(with your GitHub username in place of mine)

2. Log into your Heroku Account and Create a New App

Note: if you don't already have a Heroku account set one up now!

Visit: https://dashboard.heroku.com/new and create your new app.
example:
create-new-app
(you will need to give your app a different name; all heroku apps are unique.)

3. Use Heroku (Web) UI to Deploy the Application

Once you create your app in Heroku you will be shown the "Deploy" screen:

learn-heroku-deployment

Connect your Heroku app to the GitHub Repository you created (by forking) in step 1 (above).

Steps:
  • Click on the "Connect to GitHub" button
  • Search for the repository learn-heroku in our case
  • Click on "Connect" button.

Now click "Enable Automatic Deploys" to ensure that any changes made on GitHub are automatically deployed on Heroku:

enable-automatic-deploys

4. Test The Deployment Works by Updating a File in the Forked Repo

Back in GitHub, use the Web user interface (UI) to edit one of the files in your fork of learn-heroku.

My suggestion is update (increment) the version number in the package.json file:

Click the edit icon:
edit-package-json-button

In the edit view, increment the version number: edit-version-number

Now scroll down to the Commit changes section of the edit view:

learn-heroku-commit-changes

write a descriptive commit message and click the "Commit changes" button.

Note: we typically don't encourage people to commit directly to master but given that this is your personal fork you can do it this one time.

You should see something like this: learn-heroku-changes-committed

That will trigger the Heroku deployment of the Hello World Application!

5. Visit the Heroku App in your Web Browser

In my case the URL for my app is: https://hello-world-heroku-node.herokuapp.com

You should expect to see:
learn-heroku-hello-world

Congratulations! You just deployed your first app on Heroku!




Intermediate: Detailed Step-by-Step Instructions a "Real" App

See: elixir-phoenix-app-deployment.md

Intermediate: Environment Variables on Heroku

See: github.com/dwyl/learn-environment-variables#environment-variables-on-heroku

Intermediate: Using a Custom Domain Name on Heroku

To use a custom domain name on your heroku app, the first thing to do is to purchase your domain name. There are a number of services you can use for this (we like iwantmyname.com).

The next step is to add this domain to your heroku app. You can do this using the command line interface, or the settings dashboard on heroku.com.

heroku dashboard - domains and certificates

Once you've added your domain, you should see a DNS target:

heroku - dns target

This is what you need to give to your DNS provider (which is most likely the site you purchased your domain from).

If your domain starts with www., you will need to add the DNS target as a CNAME record with a name of www

If your domain just consists of the domain name and the top level domain (eg. github.com instead of www.github.com; This is known as the root domain), you might be able to add it as a CNAME, but will most likely need to add it as an ANAME or an ALIAS record. In this case, either leave the name blank, or use @

Some services will not allow you to add the root domain as a CNAME, and will not have ANAME or ALIAS as an option, instead requiring you to give an IP address as the A record. This is not possible with heroku, as they use dynamic IP addresses, meaning they will change regularly and your DNS record will no longer be correct.

However, if you still want people to be able to access your site using the root domain, there are still a few things you can do.

Some services (iwantmyname.com included) have a feature where they will automatically configure DNS records for popular web services (tumblr, squarespace, heroku etc.).

Another alternative is to just add the www DNS record, and to add a redirect (it may also be known as forwarding) from your root domain to that. This does mean that the www will show in the browser address bar, but both addresses will lead to your site.

See the heroku docs or your DNS providers help page for specific instructions.

Background Reading

Frequently Asked/Ansered Questions (FAQ)

Isn't Heroku "Expensive" for the CPU/RAM You're Getting?

Heroku costs more per unit of computing resource than the equivalent infrastructure provider (e.g: AWS / DigitalOcean / GoogleCloud / Azure / etc.) but it's cheap if you factor developer's time as your biggest cost/constraint!
Setting up deployment to AWS with all the benefits/features Heroku has out-of-the-box will take hours. So unless your developer's time is free or you are the developer and want to spend a day on deployment instead of building features to solve the end-user's problem, use Heroku and focus on building the product!
See: https://github.com/dwyl/learn-heroku/issues/3

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].