Halcyon examples
Halcyon is a system for installing Haskell apps and development tools, including GHC and Cabal.
These examples are intended to demonstrate advanced Halcyon features.
Each example app can be installed in one command on most recent Linux distributions, including CentOS 7, Debian 7, Fedora 20, and Ubuntu 14.04.
Additionally, each example app can be deployed in one click to DigitalOcean or Heroku.
CircuitHub
Website: CircuitHub Author: CircuitHub team Framework: yesod 1.2.19 Server: warp 3.0.1.1 Source code: private
Electronics manufacturing service, built for hardware startups.
Using Halcyon in production since June 2014.
Extra dependencies
- alex, as a sandbox extra app, with version constraints
- libpcre, as a sandbox extra OS package
- Private Cabal packages, as sandbox sources
How I Start
Website: How I Start Author: Tristan Sloughter Framework: snap-core 0.9.6.4 Server: snap-server 0.9.4.6 Source code: howistart
Collection of software development tutorials.
Using Halcyon in production since July 2014.
Extra dependencies
- alex, as a sandbox extra app, with version constraints
- Static website content, as extra data files
Usage
$ PORT=8080 howistart
Installation
$ halcyon install https://github.com/mietek/howistart
Haskell Language
Website: Haskell Language Author: Haskell Infrastructure team Framework: yesod 1.2.5.2 Server: warp 2.1.5.1 Source code: hl
Introduction to Haskell, featuring Try Haskell.
Extra dependencies
- alex and happy, as sandbox extra apps, with version constraints
- libicu, for build-time and run-time use, as a sandbox extra OS package and an extra OS package
- Static website content, as extra data files
- Workaround for Cabal issue
#2207
, as a sandbox extra configure flag
Usage
$ PORT=8080 hl
Installation
$ halcyon install https://github.com/mietek/hl
Try Haskell
Website: Try Haskell Author: Chris Done Framework: snap-core 0.9.6.4 Server: snap-server 0.9.4.6 Source code: tryhaskell
Interactive Haskell tutorial, powered by mueval.
Extra dependencies
- git
HEAD
version of mueval, as a sandbox source - Sandbox post-build hook, to set up paths for mueval
- Static website content, as extra data files
Usage
$ MUEVAL_TIMEOUT=8 PORT=8080 tryhaskell
Installation
$ halcyon install https://github.com/mietek/tryhaskell --keep-dependencies
Try Idris
Website: Try Idris Author: Brian McKenna Compiler: idris 0.9.16 Framework: scotty 0.9.1 Server: warp 3.0.6 Source code: tryidris
Idris compiler on a webpage.
Extra dependencies
- Pre-install hook, using Halcyon recursively to install Idris, with version constraints and additional dependencies:
- alex, as a sandbox extra app, with version constraints
- Static website content, as extra data files
Note: Try Idris requires a machine with at least 1 GB of memory in order to run.
Usage
$ tryidris 8080
Installation
$ halcyon install https://github.com/mietek/tryidris
Try PureScript
Website: Try PureScript Author: Phil Freeman Compiler: purescript 0.5.7.1 Framework: scotty 0.9.1 Server: warp 3.0.6 Source code: trypurescript
PureScript compiler on a webpage.
Extra dependencies
none
Usage
$ trypurescript -p 8080
Installation
$ halcyon install https://github.com/mietek/trypurescript
Try Haste
Website: Try Haste Author: Alberto G. Corona Compiler: haste-compiler 0.5 Framework: MFlow 0.4.5.9 Server: warp 3.0.6 Source code: tryhaste
Haste development environment on a webpage.
Extra dependencies
- cpphs, as a sandbox extra app, with version constraints
- Pre-install hook, using Halcyon recursively to install Haste, with version constraints and additional dependencies:
- libbz2 and libgmp, as sandbox extra OS packages
- Extra configure flags for Haste
- Pre-install hook to bootstrap Haste
- Static website content, as extra data files
Usage
$ tryplayground 8080
Installation
$ halcyon install https://github.com/mietek/tryhaste --keep-dependencies
Gitit
Website: Gitit demo Author: John MacFarlane Framework: none Server: happstack-server 7.3.9 Source code: gitit
Wiki with git file storage.
Extra dependencies
none
Usage
$ gitit -p 8080
Installation
$ halcyon install https://github.com/mietek/gitit