NBIS repository for the Local EGA project
The code is written in Python (3.6+).
You can provision and deploy the different components:
- locally, using docker-compose;
- on an OpenStack cluster, using terraform;
- on a Kubernetes/OpenShift cluster, using kubernetes;
- on a Docker Swarm cluster, using Gradle.
LocalEGA is divided into several components, whether as docker containers or as virtual machines.
|db||A Postgres database with appropriate schema|
|mq||A RabbitMQ message broker with appropriate accounts, exchanges, queues and bindings|
|inbox||SFTP server, acting as a dropbox, where user credentials come from CentralEGA|
|keyserver||Handles the encryption/decryption keys|
|ingesters||Split the Crypt4GH header and move the remainder to the storage backend. No cryptographic task, nor connection to the keyserver.|
|verifiers||Connect to the keyserver (via SSL) and decrypt the stored files and checksum them against their embedded checksum.|
|vault||Storage backend: as a regular file system or as a S3 object store.|
|ID mapper||Handles the so-called Stable ID filename mappings from CentralEGA.|