You know how to create a web application, but that knowledge is only useful if you how to show the app to people!
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!
-
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!)
Anyone building for the web who values their time and wants/needs a painless way to deploy, monitor and automatically scale an app!
- Computer with a Web Browser
- Internet Connection
- GitHub Account ... if you don't have one see: github.com/dwyl/github-reference#how-to-sign-up
- Heroku account ... if you don't have one, sign up now: https://signup.heroku.com (it's free! and no credit card required!)
- No Node.js or other knowledge required
- All web-based (no command line, we can learn that "CLI" later!)
In your web browser navigate to: github.com/dwyl/learn-heroku (if you aren't already on the page)
You should now see something similar to this:
(whith your GitHub username in place of mine)
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:
(you will need to give your app a different name;
all heroku apps are unique.)
Once you create your app in Heroku you will be shown the "Deploy" screen:
Connect your Heroku app to the GitHub Repository you created (by forking) in step 1 (above).
- 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:
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:
In the edit view, increment the version number:
Now scroll down to the Commit changes section of the edit view:
write a descriptive commit message and click the "Commit changes" button.
Note: we typically don't encourage people to
commit
directly tomaster
but given that this is your personal fork you can do it this one time.
You should see something like this:
That will trigger the Heroku deployment of the Hello World Application!
In my case the URL for my app is: https://hello-world-heroku-node.herokuapp.com
See: elixir-phoenix-app-deployment.md
See: github.com/dwyl/learn-environment-variables#environment-variables-on-heroku
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: dwyl#3