The Heroku CLI requires Git, the popular version control system. If you donβt already have Git installed, complete the following before proceeding: Git installation & First-time Git setup
Once you have an account and the Heroku CLI installed you have to login from the terminal
> heroku login
These are the instructions to deploy a Frontity project on Heroku, once you are ready to deploy your project:
Heroku will automatically execute your build script before starting your app. You should have this one already defined in your project.
Notice how we're using $PORT to read this value from an environment variable. It is because Heroku will set a different port for each process and that port will be stored in a PORT environment variable
Deploy
The way to deploy to Heroku by is pushing to the heroku git remote, so we can do
git push heroku master
You should get something like this
β¬’ my-frontity-project ξ master β¦Ύ git push heroku master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 290 bytes | 290.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Node.js app detected
remote:
remote: -----> Creating runtime environment
remote:
remote: NPM_CONFIG_LOGLEVEL=error
remote: NODE_ENV=production
remote: NODE_MODULES_CACHE=true
remote: NODE_VERBOSE=false
remote:
remote: -----> Installing binaries
remote: engines.node (package.json): unspecified
remote: engines.npm (package.json): unspecified (use default)
remote:
remote: Resolving node version 12.x...
remote: Downloading and installing node 12.16.2...
remote: Using default npm version: 6.14.4
remote:
remote: -----> Restoring cache
remote: - node_modules
remote:
remote: -----> Installing dependencies
remote: Installing node modules (package.json + package-lock)
remote: audited 10234 packages in 7.144s
remote:
remote: 15 packages are looking for funding
remote: run `npm fund` for details
remote:
remote: found 0 vulnerabilities
remote:
remote:
remote: -----> Build
remote: Running build
remote:
remote: > my-frontity-project@1.0.0 build /tmp/build_00b81abd8c2a36d3f2525857753e0188
remote: > frontity build
remote:
remote: mode: production
remote:
remote: Building es5 bundle
remote: Building module bundle
remote: Building server bundle
remote:
remote:
remote: -----> Caching build
remote: - node_modules
remote:
remote: -----> Pruning devDependencies
remote: audited 10234 packages in 6.44s
remote:
remote: 15 packages are looking for funding
remote: run `npm fund` for details
remote:
remote: found 0 vulnerabilities
remote:
remote:
remote: -----> Build succeeded!
remote: -----> Discovering process types
remote: Procfile declares types -> (none)
remote: Default types for buildpack -> web
remote:
remote: -----> Compressing...
remote: Done: 52.3M
remote: -----> Launching...
remote: Released v14
remote: https://shielded-gorge-51896.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/shielded-gorge-51896.git
ee9c4d2..ab9b152 master -> master
Heroku will assign you a domain (something like your-project-name.herokuapp.com) that will allow you to check your site online
β¬’ my-frontity-project ξ master β¦Ύ heroku domains:add www.variables-demo.com
βΊ Warning: heroku update available from 7.25.0 to 7.38.2.
Adding www.variables-demo.com to β¬’ shielded-gorge-51896... done
βΈ Configure your app's DNS provider to point to the DNS Target damp-whale-rln632baq4jdhcj5aw495bst.herokudns.com.
βΈ For help, see https://devcenter.heroku.com/articles/custom-domains
The domain www.variables-demo.com has been enqueued for addition
βΈ Run heroku domains:wait 'www.variables-demo.com' to wait for completion
Add a CNAME in your domain provider's DNS settings
Once you have added your domain to your Heroku app, you can use the command heroku domains to see the value for the CNAME record that you have to set in your domain settings.
β¬’ my-frontity-project ξ master β¦Ύ heroku domains
βΊ Warning: heroku update available from 7.25.0 to 7.38.2.
=== shielded-gorge-51896 Heroku Domain
shielded-gorge-51896.herokuapp.com
=== shielded-gorge-51896 Custom Domains
Domain Name DNS Record Type DNS Target
ββββββββββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββββ
www.variables-demo.com CNAME damp-whale-rln632baq4jdhcj5aw495bst.herokudns.com
With this info you can add a CNAME in your domain provider's DNS settings.
If you don't know how to do this, contact your domain provider (GoDaddy, CloudFlare, etc)
Deploy
Then, deploy Frontity using this command (from the root of your project):
> git push heroku master
If no changes are detected you may have to do: npx frontity build β to generate a new build git commit --allow-empty β to force a empty commit git push heroku master β to push this lateste build into heroku and launch its deploy process
Still have questions? Ask the community! We are here to help π