Documentation
Haskell Module
Our Haskell module works well for most Haskell setups. It automatically installs your dependencies, builds your library and executables, and runs all your tests. It additionally caches your dependencies (so you don't have to build lens every time!).
It expects either a Cabal file or a package.yaml (for hpack-based projects) in the directory that you specify. Instead of Cabal's dependency-resolution system, it uses a snapshot-based system based on stackage. Note that currently, there is no way of specifying other versions of packages, or adding packages that are not on Hackage. If you need this feature, open an issue or a pull request on the Haskell module repo.
If your application happens to be a web server, you can easily deploy it too. Just enable the "Web Server" module, tell us which command to run (you can assume here that your executables have been installed), which port your application listes on, and the API path. The API path is in particular useful if you have multiple servers running (e.g., a backend and a frontend), and it allows you to, for example, route /api to your backend server.
Once deployed your server will be available on a URL based on your branch name, or directly via IP address. You can see your running servers in your servers tab. See also the custom domains section of our docs for how to use custom domains with your deployment.
Remember that you can combine modules, so if you have a Haskell web server, you might want to look at the User module so you can SSH into your server, the NodeJS module so you can have a JavaScript or TypeScript frontend, and the PostgreSQL module for a database.