Herculus is a web application for quickly and easily creating custom data processing apps.
You can play with it at www.herculus.io.
This repository works with the Nix package manager and direnv, so make sure you have both installed.
The server uses MongoDB as a database. You can run it on your machine using Docker:
docker volume create mongodbdata
docker run --name mongodb -v mongodbdata:/data/db -p 27017:27017 -d mongo
If you need to make manual changes to the database you can do something like this (on MacOs):
brew tap mongodb/brew
brew install mongodb-community-shell
mongo --host localhost --port 27017
> show dbs
> use herculus
> db.users.find()
> db.dropDatabase()
PDF generation requires LaTeX with a recent version of TeX Live to be installed on the system. See http://pandoc.org/MANUAL.html for details on the required packages.
PDFs are generated with the Lato font. Is included in the debian package
texlive-fonts-extra
or directly:
http://www.ctan.org/tex-archive/fonts/lato/
The project is divided into four main components (each link refers to the respective README with development instructions):
-
Landing page: Static site generator for the landing page.
-
Documentation: Static site generator for the documentation.
-
Backend Server: Haskell backend server that handles data processing.
-
Frontend Client: PureScript frontend client.
-
Error:
server-exe: connect: does not exist (Connection refused)
Solution: Check if your local
mongodb
has been started before.
Right now there is no automated deployment process (the old NixOps process is bitrotten). Each component has individual deployment instructions that can then be stiched together with Nginx, where the server is proxied and the static sites as well as the frontend assets are served by Nginx. Here is an example nginx.conf.