Last time we showed you how to deploy Phoenix application to Heroku. In this article we will show you how to host static website there.
Recently we wanted to setup a staging environment for one of our `Jekyll` powered websites on Heroku.
It turns out, it’s easy to host Jekyll websites as `rack` apps with the puma server - so we thought we’d share with you how to do it.
Configuration
Update Gemfile
You need to add the following gems to your `Gemfile`:
- `rack-jekyll` - for transforming your Jekyll app into a `rack` app
- `rake` - for generating pages during deploy (necessary because Heroku provides a read-only filesystem)
- `puma` - for serving your `rack` app
Create Procfile
Heroku uses `Procfile` for declaring what commands are run on dynos, so we need one as well:
web: bundle exec puma -t 8:32 -w 3 -p $PORT
This basically will start `puma` with 3 workers and 8-32 threads per worker.
You can find all the config options here.
Add config.ru
Since we are going to run a `rack` app we need `config.ru` file:
require 'rack/jekyll' require 'yaml'
run Rack::Jekyll.new
Deploy
Now are ready to deploy our app to Heroku:
git push heroku master
Simple, huh? If you have configuration issues that you would like us to handle, then let us take a look at your DevOps setup. We have helped many software companies in the USA and around the world with their systems configuration. Reach out to us at iRonin now!