Developing and Administering OpenVRE - inab/openVRE GitHub Wiki
3. Developing and Administering OpenVRE
This section describes the core configuration, system setup, and administrative tasks needed to deploy, customize, and maintain openVRE in production or development environments.
It is primarily intended for developers, integrators, and system administrators.
3.1 Core Configuration and Setup
The following topics guide you through the initial configuration and administration of the VRE environment.
They include visual interface customization, manual SGE setup, Keycloak authentication, and HashiCorp Vault integration.
3.1.1 Apply Manual SGE Configuration
Manual configuration is required only for custom SGE cluster setups, where Docker-based automation is not used.
β’ sgecore username
Before initializing SGE to recognize jobs sent from the frontend, identify the Docker hostname:
docker exec -it sgecore /bin/bash
qconf -as ${FRONT_END_HOSTNAME}
qconf -mconf # change UID from 1000 to 33
β’ sgecore usage permissions
Grant SGE proper permissions to use Docker:
groupmod -g 120 docker # or adjust to your system's Docker group
usermod -aG docker application
chown root:docker /var/run/docker.sock
chmod 660 /var/run/docker.sock
3.1.2 Keycloak Configuration
A sample realm configuration is imported by default. You can customise this realm through the Keycloak UI or create a new one from scratch.
Customise default realm
- Go to
Clients, selectopen-vreand change theRoot URL,Home URLandValid redirect URIswith your instance values. - On this same client, go to
Credentialstab, click onRegenerateinside theClient Secretsection, copy your newClient Secretand paste it on theKEYCLOAK_SECRETof your.envfile.
New realm from scratch
- Create a new realm with the project name.
- Create a new client scope: set
TypetoDefault,ProtocoltoOpenID Connectand check onInclude in token scope. - Create a new client with the id
open-vre: setClient typetoOpenID Connect, check onClient authentication,Standard flowandDirect access grants, define your URLs (e.g. https://myopenvre.com/) andValid redirect URIs(e.g. https://myopenvre.com/*). - Go to
Realm settings->Loginand check onUser registration - Go to
Clients, selectopen-vre, go toCredentialstab, copy yourClient Secretand paste it on theKEYCLOAK_SECRETof your.envfile.
Troubleshooting
Some systems may require allowing Keycloak access through iptables:
sudo iptables -I INPUT -s {keycloak internal IP} -p tcp --dport 8080 -j ACCEPT
3.1.3 HashiCorp Vault Configuration
The following configuration details apply to the production deployment of openVRE:
Once your Keycloak realm and client are defined, you can start Vault following the steps here: Vault Init.
Vault will be launched following this configuration:
- Sealed on every restart: It must be unsealed to enable access to secrets. Unseal keys should be securely stored.
- JWT authentication and verification through OIDC Discovery: Vault allows authentication via a JWT. This JWT is verified against public keys from the issuer, which are fetched from the OIDC Discovery endpoint (i.e. your Keycloak instance). Other validation criteria (e.g.
iss,aud, etc.) are also applied. For more details, read the official Vault documentation. - RBAC with policies: The default template policy limits the access to user's secrets based on user's
subattribute of the JWT. - No secrets versioning: KV secrets engine version 1 is used, meaning only most recently written value is stored. To use versioning use KV version 2. For more details, read the official Vault documentation.
- End-to-end TLS: The path of the certificates needs to be defined in the
.envfile.
Development environment note:
The development setup already includes all necessary default settings for Vault. No additional configuration is required in development, and TLS/unseal workflows are simplified for convenience.
3.2 Tools Integration
openVRE integrates modular computational components called Tools, enabling reproducible and extensible research workflows.
These tools can be brought, configured, and executed directly from the platform by researchers or administrators.
3.2.1 Tools Overview
openVRE Tools are modular computational units within the openVRE analysis platform that enable diverse research workflows.
Developed by third-party tool developers, these tools can be parameterized by researchers to suit specific project needs.
Once configured, they are executed by the platformβs compute back end.
Each tool runs within a software container (e.g., Docker, Singularity), ensuring compatibility, portability, and isolation β making integration seamless and reproducible.
3.2.2 Types of Tools
There are two main categories of tools in openVRE:
- Non-Interactive Tools β Operate in batch mode without user input. Ideal for large-scale or automated analyses.
- Interactive Tools β Provide a web-based interface for real-time interaction and visualization of results.
3.2.3 How to Bring Your Own Tool
openVRE supports multiple methods for integrating your own tools:
- Bring Your Own Tool β Manual integration of tools using the openVRE API and configuration templates.
- Bring Your Own Tool β Dockerized β Container-based approach for portable and reproducible tool deployment.
- Register a New Tool
- Register a New Interactive Tool
Each guide provides step-by-step instructions for registration, configuration, and validation within the platform.
3.3 Repository and Resources
openVRE supports modular integration of external repositories and resources, enabling smooth data exchange and access to computation or visualization back ends.
3.3.1 Repository Interfaces
openVRE provides pre-built repository interfaces that allow integration with popular research data storage and sharing services. These interfaces enable seamless transfer, management, and publication of data from within openVRE.
3.3.2 Supported Repository Interfaces
- OpenStack Swift Object Storage β Scalable, distributed storage service used for archiving large research datasets.
- WebDAV-based Integrations:
- Nextcloud β Open-source file sharing and collaboration platform supporting WebDAV for secure access and synchronization.
- HTTP API-based Integrations:
- XNAT (eXtensible Neuroimaging Archive Toolkit) β Biomedical and neuroimaging data management platform.
- ArrayExpress β EMBL-EBI repository for gene expression and functional genomics datasets.
- BigNASim β Repository for nucleic acid simulations and bioinformatics data involving DNA/RNA structures.
- European Genome-Phenome Archive (EGA) β Secure repository for sensitive genomic and phenotypic data, supporting controlled-access research.
- B2SHARE β EUDAT open data repository for storing, publishing, and sharing research data with metadata compliance.
- Rclone (in progress) β Command-line tool supporting 40+ cloud storage backends, ideal for syncing and secure data transfers.
3.3.3 Puggable Resources
openVRE supports puggable resources, which are modular connectors for extending access to external computational, data, or visualization services. Administrators can configure new back ends or link remote HPC/cloud systems, enabling hybrid or distributed computing environments.
3.4 Sites and Linked Accounts
In openVRE:
- Sites represent external infrastructures β such as HPC clusters, cloud services, or data repositories β that can be registered and managed by admins.
- Linked Accounts securely store user-specific credentials and authentication tokens, enabling access to those connected sites.
- These connections are handled securely through Vault-based secret management and Keycloak authentication integration.
For detailed instructions on extending openVRE with external infrastructures and user authentication, see the following dedicated guides:
3.4.1 Register a New Linked Site
Steps to define and register a new computational, storage, or data site in openVRE.
See: Add New Linked Site
3.4.2 Adding a New Data Repository
Instructions for integrating new data repositories or catalog interfaces into the platform.
See: Adding a New Data Repository
3.5 Graphic and UI Extensions
These extensions enable developers to enhance and customize the openVRE user interface and visual experience.
3.5.1 Graphic configuration
For a full extensive tutorial on the graphic modules of the VRE, refers to the graphic configuration page
3.5.2 Extending Frontend Components
Guidelines for extending or adapting frontend elements to integrate new components, menus, or UI modules.
Examples include adding menu tabs for external resources or customizing account settings views.
See also: Integrating Front-End References
3.6 Related Topics β Admin Configuration
For further extensions and configuration details on the administrative and development side, see: