For Developers#
Guidelines#
User documentation about requirements, deployment and configuration of your own instance of the EUDAT B2SHARE software.
Synopsis#
The B2SHARE service is intended for European researchers who do not have adequate facilities for storing and publishing data, cannot otherwise guarantee long-term persistence of their locally stored data and lack means to easily share such data with colleagues worldwide. B2SHARE provides long-term preservation and storage of data sets together with persistent identifiers, metadata annotation and incorporation of community publication requirements.
For communities or institutes that want to limit usage to specific users, set their own rules and limitations regarding publications and have full control over the administration of the service, an instance of B2SHARE can be deployed. Deploying your own instance of B2SHARE requires web server or cloud infrastructure as well as storage infrastructure for the datasets published. EUDAT supports deployment using Docker containers, although bare metal deployment is possible as well.
Why instancing?#
Although EUDAT provides its own instance of B2SHARE, there are several reasons why an individual, institution or community would deploy its own installation of the B2SHARE software stack:
- Benefit from full control over service and data stored
- Configure your own:
- Storage infrastructure and locations
- Communities & users & roles
- Metadata schemas
- User access requirements and limitations
- Set your own service limits & data requirements
- Community / institute branding
- Define multiple communities/projects
- Add logos, information and landing pages
Requirements#
Although deployment of new instances of B2SHARE is easy and straightforward, there are the following requirements for any person who will administer the service:
- Basic knowledge of Linux or Unix environments, how to configure components and make sure storage infrastructure is available
- Knowledge of Docker technology, configuration and containers is a must
- As in many cases, security and access rights are essential and therefore knowledge on how to set these at the right locations is very important
- In many instances, specific storage requirements are of concern and therefore the right configuration and hardware can significantly alter the performance of your service
- A backup strategy for all generated data, including all databases amd ingested files
Technology#
B2SHARE is developed on top of the Invenio v3 repository software platform developed by CERN.
The B2SHARE front-end is developed by EUDAT using Python and the Invenio end-points.
Quick deployment overview#
Deploying your own instance of B2SHARE can be achieved by downloading the B2SHARE software stack, configuring it and connected services and making it available to the intended audience. In short the following steps are necessary:
- Install the necessary packages, Docker and Docker Compose
- Clone the dockerize GitHub repository of B2SHARE
- Edit the docker-compose.yml file
- Configure B2ACCESS with an OAuth Client user
- Set up the environment variables for B2SHARE
- Run the Docker containers
For more in-depth information on how to install and configure your instance, please follow our dedicated guide published in the EUDAT Training GitHub repository.
Configuration#
B2SHARE instances can be deployed using the configuration files provided by the B2SHARE installation. All other object-specific configuration is done using the provided internal tools.
Creating new records and uploading files can be achieved by using the HTTP REST API endpoints or the internal command-line tools.
Content administration#
As soon as your instance is running smoothly you can start adding necessary objects, users and their roles. Most objects can be administered using the b2share command-line tool which is available in the B2SHARE Docker container.
Some of the options available are listed below:
- Create and set users & roles:
- Administer users & roles
- Super administrator
- Community administrators & members
- Communities:
- Administer communities/projects
- Community metadata schemas and branding
- Policies and access
- Access and roles
- Metadata schemas:
- Define metadata schemas per community
- Define required and optional metadata fields and their structure
- Define additional community-specific fields
Other features#
B2SHARE provides even more features:
- Monitoring services, like file fixity checks
- Simple configuration for integration with other services
- Customisation of UI
Integration of other EUDAT services#
B2SHARE uses several other EUDAT services in order to make sure new records are correctly created and users can be authenticated.
To see which other services can be integrated in your B2SHARE instance, please refer to the EUDAT Training material on B2SHARE deployment regarding services configuration.
Known Issues#
There are some known issues to take into account when deploying B2SHARE. Please refer to the EUDAT Training material on B2SHARE deployment regarding known issues.
Support#
Please visit our training site on GitHub for B2SHARE and other hands-on training material.
Our B2SHARE presentations offer training material for the service.
Support for B2SHARE is available via the EUDAT ticketing system through the webform.
If you have comments on this page, please submit them through the EUDAT support request system.
Last update: 30.11.2023