Personal tools

Web/Cloud

From HaskellWiki

< Web(Difference between revisions)
Jump to: navigation, search
m (OpenShift)
(OpenShift: moved repo to BitBucket)
 
(12 intermediate revisions by one user not shown)
Line 7: Line 7:
   
 
{| class="wikitable"
 
{| class="wikitable"
! License:
 
| GPL3
 
|-
 
 
! GHC version:
 
! GHC version:
| 7.6.3
+
| 7.6.3 / 7.8.2
 
|-
 
|-
 
! Author:
 
! Author:
Line 17: Line 14:
 
|-
 
|-
 
! Home page:
 
! Home page:
| https://github.com/accursoft/Haskell-Cloud
+
| http://code.accursoft.com/haskell-cloud/
 
|-
 
|-
 
! Documentation:
 
! Documentation:
| https://github.com/accursoft/Haskell-Cloud/blob/master/README.md
+
| http://code.accursoft.com/haskell-cloud/src/tip/README.md
 
|}
 
|}
   
The cartridge is built in several flavours, with different pre-installed packages:
+
The cartridge comes in several flavours, with just the network package (GHC 7.8.2) or a pre-installed framework (GHC 7.6.3 *):
   
 
{| class="wikitable"
 
{| class="wikitable"
! Packages || Cartridge || Installation Link
+
! Framework || Cartridge || QuickStart || Deploy || QuickStart Template
 
|-
 
|-
 
| network
 
| network
| [https://haskell-accursoft.rhcloud.com/build/manifest/master manifest]
+
| [http://www.accursoft.com/cartridges/network.yml manifest]
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fbuild%2Fmanifest%2Fmaster create application]
+
| [https://www.openshift.com/quickstarts/haskell quickstart]
  +
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fnetwork.yml deploy]
  +
| ✓
 
|-
 
|-
| yesod-platform esqueleto happy
+
| Yesod
| [https://haskell-accursoft.rhcloud.com/build/manifest/yesod manifest]
+
| [http://www.accursoft.com/cartridges/yesod.yml manifest]
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fbuild%2Fmanifest%2Fyesod create application]
+
| [https://www.openshift.com/quickstarts/yesod quickstart]
  +
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fyesod.yml deploy]
  +
| ✓
 
|-
 
|-
| snap
+
| Snap
| [https://haskell-accursoft.rhcloud.com/build/manifest/snap manifest]
+
| [http://www.accursoft.com/cartridges/snap.yml manifest]
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fbuild%2Fmanifest%2Fsnap create application]
+
| [https://www.openshift.com/quickstarts/snap quickstart]
  +
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fsnap.yml deploy]
  +
| ✗
 
|-
 
|-
| happstack-foundation hsx2x happy
+
| Happstack
| [https://haskell-accursoft.rhcloud.com/build/manifest/happstack manifest]
+
| [http://www.accursoft.com/cartridges/happstack.yml manifest]
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fbuild%2Fmanifest%2Fhappstack create application]
+
| [https://www.openshift.com/quickstarts/happstack quickstart]
  +
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fhappstack.yml deploy]
  +
| ✗
 
|-
 
|-
 
| MFlow
 
| MFlow
| [https://haskell-accursoft.rhcloud.com/build/manifest/mflow manifest]
+
| [http://www.accursoft.com/cartridges/mflow.yml manifest]
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fbuild%2Fmanifest%2Fmflow create application]
+
| [https://www.openshift.com/quickstarts/mflow quickstart]
  +
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fmflow.yml deploy]
  +
| ✗
 
|-
 
|-
 
| Scotty
 
| Scotty
| [https://haskell-accursoft.rhcloud.com/build/manifest/scotty manifest]
+
| [http://www.accursoft.com/cartridges/scotty.yml manifest]
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fbuild%2Fmanifest%2Fscotty create application]
+
| [https://www.openshift.com/quickstarts/scotty quickstart]
|-
+
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fscotty.yml deploy]
| -
+
|
| [https://haskell-accursoft.rhcloud.com/manifest/plain manifest]
 
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fmanifest%2Fplain create application]
 
 
|}
 
|}
   
If an application link isn't working, check [https://haskell-accursoft.rhcloud.com/ which builds are available]. (The plain cartridge should always be available as it doesn't require building.)
+
<small>* GHC 7.8 requires dynamic libraries for Template Haskell and Quasiquoting. OpenShift gears default to a 1Gb quota, which is insufficient for a full web framework with two copies (dynamic and static) of every library.</small>
  +
  +
Frameworks that don't have their own quickstart template use the network template (also included in every cartridge). I'll be happy to include any contributed framework-specific templates - please open an [http://code.accursoft.com/haskell-cloud/issues/new issue] with a link to your Github repo.
   
 
== Heroku ==
 
== Heroku ==
Line 77: Line 74:
 
* [http://docs.dotcloud.com/services/custom/ dotCloud]
 
* [http://docs.dotcloud.com/services/custom/ dotCloud]
 
* [https://www.stormcloudsystems.com/ Storm Cloud Systems]
 
* [https://www.stormcloudsystems.com/ Storm Cloud Systems]
  +
* [https://www.fpcomplete.com/ FP Haskell Center]

Latest revision as of 13:23, 10 June 2014

Haskell Web Development

Software:
Servers - Libraries - Frameworks
Deploy - Cloud
Interfaces to frameworks
Databases and Persistence
Testing and Verification
Content Management

Community & Research:
Forums and Discussion
Literature (research, talks and blogs)
Existing Haskell web applications
Ongoing projects and ideas

PaaS (platform as a service) cloud providers generally limit you to a fixed technology stack. However, OpenShift and Heroku allow third-party extensions, which can be used to support Haskell.

[edit] 1 OpenShift

GHC version: 7.6.3 / 7.8.2
Author: Gideon Sireling
Home page: http://code.accursoft.com/haskell-cloud/
Documentation: http://code.accursoft.com/haskell-cloud/src/tip/README.md

The cartridge comes in several flavours, with just the network package (GHC 7.8.2) or a pre-installed framework (GHC 7.6.3 *):

Framework Cartridge QuickStart Deploy QuickStart Template
network manifest quickstart deploy
Yesod manifest quickstart deploy
Snap manifest quickstart deploy
Happstack manifest quickstart deploy
MFlow manifest quickstart deploy
Scotty manifest quickstart deploy

* GHC 7.8 requires dynamic libraries for Template Haskell and Quasiquoting. OpenShift gears default to a 1Gb quota, which is insufficient for a full web framework with two copies (dynamic and static) of every library.

Frameworks that don't have their own quickstart template use the network template (also included in every cartridge). I'll be happy to include any contributed framework-specific templates - please open an issue with a link to your Github repo.

[edit] 2 Heroku

GHC version: 7.4.1
Author: Brian McKenna
Home page: https://github.com/puffnfresh/heroku-buildpack-haskell
Documentation: https://github.com/puffnfresh/heroku-buildpack-haskell/blob/master/README.md

[edit] 3 See also