- Flora.pm
- A read-only mirror of hackage.haskell.org with an improved and lightweight interface.
- Flora Server
- An alternative package index server for the Haskell ecosystem with mirroring capabilities.
Read More
Read the Contribution Guide file to see what you will need.
For Nix users, a build system based on flakes is maintained on a “best-effort” basis. Improvements are very welcome.
The configuration is handled through environment variables. They are all prefixed by FLORA_
to avoid conflict, and the
server will tell you which ones are missing.
To start in the best of conditions, create a file called environment.local.sh
with the following content:
source environment.sh
# export FLORA_SENTRY_DSN="" # Don't forget to add your Sentry DSN if you use it!
# export FLORA_PROMETHEUS_ENABLED="true"
This will get all the variables from environment.sh
and allow you to override them.
You can then build the server with
# To start a tmux session with code reloading for frontend and backend:
$ make start-tmux
# To explore the other possible `make` rules:
$ make help
The Flora server uses PostgreSQL 14.
To create the database and apply the migrations, type:
$ make db-setup # Implies db-create
you can also use db-create
and db-drop
to create and delete the database in the PostgreSQL instance.
A docker-based workflow is provided. The idea is to develop from within a container that brings with it all dependencies, and communicates with another container for the PostgreSQL database.
# You need to build the container first. It's gonna take around 13 minutes the first time you build
$ make docker-build
# Start the container.
$ make docker-start
# Once the containers are running, you can enter the development environment and start hacking
$ make docker-enter
# You'll be in the docker container. Environment variables are automatically set
# so you should be able to start Flora
(docker)$ make start-tmux
# You'll be in a tmux session, everything should be launched
# Visit localhost:8084 from your web browser to see if it all works.
# To provision the development database, type:
$ make docker-enter
(docker)$ source environment.docker.sh
(docker)$ make db-drop # password is 'postgres' by default
(docker)$ make db-setup # password is 'postgres' by default
(docker)$ make db-provision
# And you should be good!
- Download the archive containing all packages here
- Extract it in Flora's root directory. You should now have a
01-index
folder - Run
make import-from-hackage
You can explore the Makefile rules by typing make
in your shell.