Skip to main content
Ctrl K

ESFRI Science Analysis Platform

ESAP is a science platform toolkit: an integrated set of software components which ESFRIs, ESCAPE project partners, and other groups can use to rapidly assemble and deploy platforms that are customized to the needs of their particular user communities and which integrate their existing service po...

34
contributors
Get started
63 commitsLast commit ≈ 39 months ago2 stars0 forks

Cite this software

Description

ESAP Deployment

This repository contains blueprints on how to quickly deploy an instance of ESAP on your own infrastructure.

This documentation is intentionally minimal. For more information about ESAP itself see the documentation wiki, and for a much wider range of possible installation routes check out the installation overview.

This repository currently provides two flavours of deployment:

  • A Docker Compose file for deploying on a host with Docker.
  • A Helm Chart for deployment on a Kubernetes cluster.

Components

ESAP currently consists of three major components. Their repositories can be found below.

Docker Compose

Install on a host supporting Docker and Docker Compose. Installation instructions for docker Compose can be found here.

Configuration

The compose file uses the following environment variables:

NameDescriptionDefault
HOSTNAMEHostname, used in docker-compose for traefik routingNone
RUCIO_AUTH_TOKENToken used for authenticating with Rucio""
RUCIO_HOSTURI where to access the Rucio APIhttps://escape-rucio.cern.ch
RUCIO_AUTH_HOSTRucio authenticaion host URIhttps://escape-rucio-auth.cern.ch/
SECRET_KEYDjango secret (Django docs)"" (empty string)
OIDC_OP_JWKS_ENDPOINTODIC JSON Web Key URIhttps://iam-escape.cloud.cnaf.infn.it/jwk
OIDC_OP_AUTHORIZATION_ENDPOINTOIDC auth endpointhttps://iam-escape.cloud.cnaf.infn.it/authorize
OIDC_OP_TOKEN_ENDPOINTOIDC token endpointhttps://iam-escape.cloud.cnaf.infn.it/token
OIDC_OP_USER_ENDPOINTOIDC user info endpointhttps://iam-escape.cloud.cnaf.infn.it/userinfo
OIDC_RP_CLIENT_IDOIDC Client ID""
OIDC_RP_CLIENT_SECRETOIDC Client Secret""
LOGIN_REDIRECT_URLURI where to redirect to after loginhttp://localhost:8080/esap-gui/login
LOGOUT_REDIRECT_URLURI where to redirect to after logouthttp://localhost:8080/esap-gui/logout
LOGIN_REDIRECT_URL_FAILUREURI where to redirect to in case of auth errorhttp://localhost:8080/esap-gui/error
OIDC_RENEW_ID_TOKEN_EXPIRY_SECONDSOIDC token duration (in seconds)43200

These can be provided in an .env file (see docker-compose/.env.example)

Reverse proxy options

It is strongly recommended to run ESAP behind a reverse proxy.

This repository uses Traefik, an easy to configure dynamic reverse proxy which also handles TLS (https) termination and certificate management via Let's Encrypt.

You can use docker-compose-local.yml to quicky deploy local instances of both ESAP and Traefik. ESAP will be made available at http://localhost:8080/esap-gui/.

Alternatively, if you are hosting other web applications on the same node, you may wish to deploy a general-use Traefik instance managed independently of ESAP. See here for more information on how to configure Traefik. When you have that set up, you can then use docker-compose-existing-traefik.yml to start ESAP.

Bringing the service up

# replace by docker-compose if using compose V1
# or install compose V2 with the `docker-compose-plugin` package
docker compose up -d

For the initial run you need to migrate the databases. You can use the provided script for this, executing in the same directory as the docker-compose.yml file.

./init_db.sh

NOTE: Sometimes the configuration is not correctly loaded. All SQLite files should be larger then 0 bytes. If not, remove the file and run the init script again.

Updating the service

docker compose pull
docker compose up -d --force-recreate

Helm Chart

Work in progress

Contributing

For developer access to this repository, please send a message on the ESAP channel on Rocket Chat.

Contributors

SB
Sara Bertocco
author
INAF - Italian National Institute for Astrophysics
0000-0003-2386-623X
CB
Catherine Boisson
author
Laboratoire Univers et Théories, Observatoire de Paris, Université PSL, Université Paris Cité, CNRS, F-92190 Meudon, France
0000-0001-5893-1797
DB
Dominique Boutigny
author
Laboratoire d'Annecy de Physique des Particules, Univ. Savoie Mont Blanc, CNRS/IN2P3, Annecy, France
0000-0003-4887-2150
EL
Evgeny Lavrik
author
MF
Matthias Füßling
author
Cherenkov Telescope Array Observatory, Saupfercheckweg 1, 69117 Heidelberg, Germany
0000-0001-7503-9821
GV
Gangadharan Vigeesh
author
Leibniz-Institut für Sonnenphysik (KIS), Schöneckstraße 6, 79104 Freiburg, Germany
0000-0002-9820-9114
JC
Jose Luis Contreras
author
EMFTEL department and IPARCOS, Universidad Complutense de Madrid, E-28040 Madrid, Spain
0000-0001-7282-2394
RdM
Riccardo di Maria
author
ETH Zurich - CSCS (previously CERN)
0000-0002-0186-3639
MS
Mathieu Servillat
author
Laboratoire Univers et Théories, Observatoire de Paris, Université PSL, Université Paris Cité, CNRS, F-92190 Meudon, France
0000-0001-5443-4128
MV
Marjolein Verkouter
author
Joint Institute for VLBI in Europe: Dwingeloo, The Netherlands
0000-0003-2884-9834
LV
Lourdes Verdes-Montenegro
author
Instituto de Astrofísica de Andalucía - CSIC, Glorieta de la Astronomía s/n, 18008, Granada, Spain
0000-0003-0156-6180
RG
Rafael Garrido
author
Instituto de Astrofísica de Andalucía - CSIC, Glorieta de la Astronomía s/n, 18008, Granada, Spain

Member of community

ESCAPE OSSR