fpco/stackage-server

Server for stable, curated Haskell package sets

108

stars

1,100

commits

Haskell

primary language

Jun 20, 2026

updated

Browse cluster: Haskell development tools and environments

README

stackage-server

Server for stable, curated Haskell package sets

This repo is part of the Stackage project, and the live server can be viewed at https://www.stackage.org.

Building locally

Build locally by passing the dev flag to it:

$ stack build . --flag stackage-server:dev

Simple testing with sqlite:

To test the UI without real data, just run:

$ yesod devel

(install the yesod executable from yesod-bin).

Testing with postgresql

Now, initially you need to run the cron job to create and populate the database:

$ export PGSTRING=postgresql://postgres:password@localhost:5432/stackage
$ stack exec stackage-server-cron

Note that you need to modify the PGSTRING environment variable according to your actual database configuration. Also, you need to create an empty database before running the cron job. Note that it takes quite some time for it to load your database.

After this, run the stackage server:

$ export PGSTRING=postgresql://postgres:password@localhost:5432/stackage
$ stack exec stackage-server

Contributors

(top 30 of 33)

snoyberg

601 commits

chrisdone

138 commits

chreekat

92 commits

juhp

49 commits

fpco/stackage-server

Server for stable, curated Haskell package sets

108

stars

1,100

commits

Haskell

primary language

Jun 20, 2026

updated

Browse cluster: Haskell development tools and environments

README

stackage-server

Server for stable, curated Haskell package sets

This repo is part of the Stackage project, and the live server can be viewed at https://www.stackage.org.

Building locally

Build locally by passing the dev flag to it:

$ stack build . --flag stackage-server:dev

Simple testing with sqlite:

To test the UI without real data, just run:

$ yesod devel

(install the yesod executable from yesod-bin).

Testing with postgresql

Now, initially you need to run the cron job to create and populate the database:

$ export PGSTRING=postgresql://postgres:password@localhost:5432/stackage
$ stack exec stackage-server-cron

Note that you need to modify the PGSTRING environment variable according to your actual database configuration. Also, you need to create an empty database before running the cron job. Note that it takes quite some time for it to load your database.

After this, run the stackage server:

$ export PGSTRING=postgresql://postgres:password@localhost:5432/stackage
$ stack exec stackage-server

Contributors

(top 30 of 33)

snoyberg

601 commits

chrisdone

138 commits

chreekat

92 commits

juhp

49 commits

Languages

Haskell

89.6%

Nix

5.5%

CSS

3.9%