Deploy Haskell's Snap on Heroku
In this post we will deploy our Snap app to Heroku.
First, we need to put a
Procfile in the root of our project; Save this as
web: cabal run -- -p $PORT
If you’ve been following along and haven’t yet put the code into version
control, now is the time to do that by running
git add and
commit -m "message".
This command will create a new Heroku app with a Haskell buildpack. You can find more information on the buildpack here
heroku create --stack=cedar --buildpack https://github.com/begriffs/heroku-buildpack-ghc.git
note: You can now deploy the app to Heroku, but you will get an error about connecting to PostgreSQL
At this point we have two basic choices: We can run PostgreSQL as a Heroku
extension or we can host PostgreSQL somewhere else. For this example, we’ll
devel.cfg looks like this:
host = "localhost"port = 5432user = "postgres"pass = ""db = "testdb"# Nmuber of distinct connection pools to maintain. The smallest acceptable# value is 1.numStripes = 1# Number of seconds an unused resource is kept open. The smallest acceptable# value is 0.5 seconds.idleTime = 5# Maximum number of resources to keep open per stripe. The smallest# acceptable value is 1.maxResourcesPerStripe = 20
The final option is to just host PostgreSQL somewhere other than Heroku and modify the config file to point there.