Need help with heroku-buildpack-stack?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

mfine
221 Stars 67 Forks MIT License 66 Commits 2 Opened issues

Description

Haskell Stack support for Heroku

Services available

!
?

Need anything else?

Contributors list

Heroku Buildpack for Stack

Heroku buildpack for Stack. Based on the excellent heroku-buildpack-ghc

Usage

Create an app with this buildpack:

$ heroku create --buildpack https://github.com/mfine/heroku-buildpack-stack.git

Set this buildpack on an existing app:

$ heroku buildpacks:set https://github.com/mfine/heroku-buildpack-stack

Binary executables are placed in

/app/.local/bin/
after compilation, a directory which Heroku includes in your
$PATH
, so assuming that your application is binding to
$PORT
, you can serve your app by creating a
Procfile
at your project root that defines a
web
process type for the
executable
defined in your
.cabal
file:
$ cat *.cabal | grep executable
executable YOURAPPNAME-exe

$ echo "web: YOURAPPNAME-exe" >> Procfile

Templating stack.yaml

To avoid committing secrets into

stack.yaml
for access to private repos, an app's config vars values can be substituted for tags enclosed in double brackets. For example, given a
stack.yaml
containing:
packages:
-location:
    git: https://mfine:{{GITPASS}}@github.com/mfine/heroku-buildpack-stack.git

and an application with config vars:

$ heroku config -app calm-storm-51595
=== murmuring-beyond-51595 Config Vars
GITPASS: abc123
$

before compilation, the

stack.yaml
will be substituted as follows:
packages:
-location:
    git: https://mfine:[email protected]/mfine/heroku-buildpack-stack.git

Makefile Support

This buildpack now supports an optional Makefile, in case you need to coordinate other build steps with Stack. It assumes that the Makefile includes a

make
install
target that uses the Stack build command with the flag
--copy-bins
. For example, a possible
install
target configuration in the Makefile could be:
install:
    stack build --copy-bins

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.