Search code examples
haskellherokucedar

Serve using your own binary on Cedar, Heroku


I am trying to run Haskell on Heroku. I have compiled a binary app and created a Procfile as follows:

web: ./app +RTS -N4

When I push it to Heroku, it says:

-----> Heroku receiving push
 !     Heroku push rejected, no Cedar-supported app detected

Now I think, Cedar does not support rolling in your binaries. Is there any way to deploy it?

I have seen https://github.com/mwotton/heroku_haskell_demo. This guy seems to have deployed to Heroku but, it no longer works. Heroku sees the Gemfiles and thinks that it is a Ruby app and runs its default Procfile with Bundle install which fails obviously.


Solution

  • You can deploy your Haskell app as Node.js. Cedar stack recognizes an app as Node.js by the existence of a package.json file. So, you should create a package.conf as follows:

    package.json:

    { "name": "project-name", "version": "0.0.1", "dependencies": {} }