Hesperides is an open sourced tool, allowing to generate any kind of file type considering on one hand the templates, and the other hand the applications.
It should be used as much as possible ! Concretely you can use it to generate :
Several fundamental concepts underly and drive the Hesperides system. If you are a new user, knowing about them will help you use or integrate Hesperides into your environment.
Secondly you have to valuate your properties
Now you have created a module, a template, a platform and valuated your properties, you can generate your files. Hesperides offers two steps :
Building & running the Docker image from the sources
Backend:
git pull https://github.com/voyages-sncf-technologies/hesperides
docker build -t hesperides .
docker run --rm -e SPRING_PROFILES_ACTIVE=noldap,fake_mongo hesperides
It can also be launched along a Mongo instance using docker-compose
:
docker-compose -f docker/docker-compose.yml -f docker/docker-compose-mongo.yml up -d
Frontend:
git pull https://github.com/voyages-sncf-technologies/hesperides-gui
docker build -t hesperides-gui .
docker run --rm -it -p 80:80 -e API_ENDPOINT=... hesperides-gui
$API_ENDPOINT
must be an URL to access the backend, like http://localhost:8080
This section provides a few guidelines on how to deploy Hesperides on Heroku, from our experience deploying the live demo.
An heroku.yml
configuration file is provided in each repository as a starting point.
You will need to create 2 apps:
There is a reason behind this choice of Heroku apps naming: we wanted to have the frontend answering on the URL https://hesperides.herokuapp.com.
For each app, there are the steps to deploy it on Heroku:
API_ENDPOINT: https://hesperides-back.herokuapp.com
SPRING_PROFILES_ACTIVE: noldap,fake_mongo
heroku stack:set -a $app container
heroku git:remote -a $app
git push heroku master
heroku ps:scale web=1 -a $app
heroku ps -a hesperides
heroku logs --tail -a hesperides
You can either use the noldap
Spring profile, that defines some dummy in-memory users, or use the ldap
Spring profile and configure the following environment variables:
$LDAP_URL
: required, example value: ldaps://ldap.example.com:636
$LDAP_DOMAIN
: optional$LDAP_USER_SEARCH_BASE
: required, example value: dc=example,dc=com
$LDAP_USER_ROLE_BASE
: required, example value: ou=Groups,dc=example,dc=com
$LDAP_TECH_GROUP_DN
: optional, group of users with global Tech permissions, example value: cn=HESPERIDES_TECH,ou=Groups,dc=example,dc=com
$LDAP_PROD_GROUP_DN
: optional, group of users with global Prod permissions, example value: cn=HESPERIDES_PROD,ou=Groups,dc=example,dc=com
$LDAP_BIND_DN
: optional. If set, enable bindDn authentication; otherwise authentication on the LDAP server is performed with the credentials provided by the user when authenticating with Hesperides$LDAP_BIND_PASSWORD
: optional but required if $LDAP_BIND_DN
is set