Skip to the content.

Germinate Configuration

This page describes the content of Germinate’s configuration folder. This folder does not exist and has to be created somewhere on the system where Germinate can access it. The structure of this folder is shown below. At a minimum, the config.properties file needs to exist. The logos under images/template are used on the interface and should be adjusted to meet your requirements.

+-- data
|   +-- allelefreq
|   +-- download
|   +-- genotypes
+-- images
|   +-- climate
|   +-- database
|   +-- news
|   +-- template
|       +-- crop.svg
|       +-- logo.svg
|       +-- logo-horizontal.svg
+-- template
|   +-- carousel.json
|   +-- en_GB.json
|   +-- locales.json
+-- config.properties
# Database server host
database.server = <string>
# Name of the database
database.name = <string>
# Database user name
database.username = <string>
# Database password (optional, depending on your configuration)
database.password = <string>
# Database port (only needed if not 3306)
database.port = <integer>
# Create automatic database backups every X days (optional); stored under <GERMINATE_FOLDER>/backups
database.backup.every.days = <integer>
# Maximum disk space (in GB) that Germinate backups may take up (optional)
database.backup.max.size.gb = <integer>

# Base URL of the client, so the server can generate files that link back to the user interface, e.g. https://ics.hutton.ac.uk/germinate-demo/
germinate.client.url = <url>

# Base URL of Gatekeeper (if used)
gatekeeper.url = <url>
# Username of a Gatekeeper user with admin permissions for Gatekeeper (not Germinate)
gatekeeper.username = <string>
# Password of that Gatekeeper user
gatekeeper.password = <string>
# Should new users be able to register for an account?
gatekeeper.registration.enabled = <boolean>
# If registration is enabled, does it require approval from an administrator?
gatekeeper.registration.requires.approval = <boolean>
# Salt value (work factor) used for bcrypt password hashing. Higher is more secure but slower. Default is 10
bcrypt.salt = <integer>

# Primary color of the user interface (hex code, e.g. #00acef)
color.primary = <hex color>
# Colors used for charts (comma-separated hex codes)
colors.charts = <comma-separated list of hex colors>
# Colors used for the user interface (comma-separated hex codes)
colors.template = <comma-separated list of hex colors>
# Colors used for gradients (comma-separated hex codes)
colors.gradient = <comma-separated list of hex colors>

# Directory containing the configuration files. Should be /data/germinate when using the Docker image
data.directory.external = <path>

# Authentication mode: NONE disables authentication (and Gatekeeper), FULL requires login to see any data, SELECTIVE only requires login for features that alter the database
authentication.mode = <SELECTIVE | FULL | NONE>

# Data import mode: NONE disables verification and upload, VERIFY allows checking of templates, IMPORT additionally allows importing data after verification
data.import.mode = <IMPORT | VERIFY | NONE>

# Column of the germinatebase table used to link to an external resource from the marked germplasm page
external.link.identifier = <string>
# Template for the external link. Must include {identifiers}, e.g. https://www.google.co.uk/search?q={identifiers}
external.link.template = <string>

# Hours after which files created by async import/export tasks are deleted
files.delete.after.hours.async = <integer>
# Hours after which temporary files (chart files, synchronous downloads, etc.) are deleted
files.delete.after.hours.temp = <integer>

# Google Analytics key (analytics is enabled if set)
google.analytics.key = <string>

# Plausible Analytics: your site's domain as declared in Plausible's settings
plausible.domain = <string>
# Plausible Analytics: should hash mode be used?
plausible.hash.mode = <boolean>
# Plausible Analytics: API host to use (change this if self-hosting)
plausible.api.host = <url>

# Dashboard categories to show (comma-separated): germplasm, markers, maps, traits, climates, compounds, locations, datasets, datasetsGenotype, datasetsTrials, datasetsAllelefreq, datasetsClimate, datasetsCompound, experiments, groups, images, fileresources
dashboard.categories = <comma-separated list of strings>
# Dashboard information sections to show (comma-separated): publications, news, projects, dataupdates, datastories
dashboard.sections = <comma-separated list of strings>
# Pages to hide from the user interface (see https://github.com/germinateplatform/germinate-vue/blob/master/src/mixins/pages.js)
hidden.pages = <comma-separated list of strings>
# Auto-discover which pages to show based on the data available in the database
hidden.pages.autodiscover = <boolean>

# Table column hiding only takes effect the first time Germinate is loaded, as users may later choose to show/hide different columns.
# Values are comma-separated column keys from the client components at https://github.com/germinateplatform/germinate-vue/tree/master/src/components/tables
# Columns to hide in the germplasm table
hidden.columns.germplasm = <comma-separated list of strings>
# Columns to hide in the germplasm attributes table
hidden.columns.germplasm.attributes = <comma-separated list of strings>
# Columns to hide in the images table
hidden.columns.images = <comma-separated list of strings>
# Columns to hide in the climates table
hidden.columns.climates = <comma-separated list of strings>
# Columns to hide in the climate data table
hidden.columns.climate.data = <comma-separated list of strings>
# Columns to hide in the compounds table
hidden.columns.compounds = <comma-separated list of strings>
# Columns to hide in the compound data table
hidden.columns.compound.data = <comma-separated list of strings>
# Columns to hide in the comments table
hidden.columns.comments = <comma-separated list of strings>
# Columns to hide in the file resources table
hidden.columns.fileresources = <comma-separated list of strings>
# Columns to hide in the maps table
hidden.columns.maps = <comma-separated list of strings>
# Columns to hide in the markers table
hidden.columns.markers = <comma-separated list of strings>
# Columns to hide in the map definitions table
hidden.columns.map.definitions = <comma-separated list of strings>
# Columns to hide in the datasets table
hidden.columns.datasets = <comma-separated list of strings>
# Columns to hide in the dataset attributes table
hidden.columns.dataset.attributes = <comma-separated list of strings>
# Columns to hide in the experiments table
hidden.columns.experiments = <comma-separated list of strings>
# Columns to hide in the entities table
hidden.columns.entities = <comma-separated list of strings>
# Columns to hide in the groups table
hidden.columns.groups = <comma-separated list of strings>
# Columns to hide in the institutions table
hidden.columns.institutions = <comma-separated list of strings>
# Columns to hide in the locations table
hidden.columns.locations = <comma-separated list of strings>
# Columns to hide in the pedigrees table
hidden.columns.pedigrees = <comma-separated list of strings>
# Columns to hide in the pedigree definitions table
hidden.columns.pedigreedefinitions = <comma-separated list of strings>
# Columns to hide in the traits table
hidden.columns.traits = <comma-separated list of strings>
# Columns to hide in the trials data table
hidden.columns.trials.data = <comma-separated list of strings>
# Columns to hide in the collaborators table
hidden.columns.collaborators = <comma-separated list of strings>
# Columns to hide in the publications table
hidden.columns.publications = <comma-separated list of strings>

# Should the comments feature be enabled?
comments.enabled = <boolean>
# Should the PDCI be calculated and shown on the user interface?
pdci.enabled = <boolean>
# Enable the BrAPI endpoints
brapi.enabled = <boolean>
# Show the GDPR compliance banner. Users can deny cookies, which disables some features. Enable if expecting users from the EU
gdpr.notification.enabled = <boolean>
# Show the link to Hutton Unearthed on the "About Germinate" page
donations.section.enabled = <boolean>
# URL of the GridScore instance used with Germinate (defaults to the official URL)
gridscore.url = <url>
# URL of the Helium instance used with Germinate (defaults to the official URL)
helium.url = <url>
# URL of the FielDHub instance used with Germinate (defaults to the official URL)
fieldhub.url = <url>
# URL of GenesysPGR for ordering material
genesys.url = <url>
# Client ID provided by Genesys for this instance of Germinate
genesys.client.id = <string>
# Client secret provided by Genesys for this instance of Germinate
genesys.client.secret = <string>
# Custom path to the MySQL Dump executable for database backups. Don't use this with the Germinate Docker image
mysqldump.path = <path>

Gatekeeper Configuration

If you’re using Gatekeeper for user authentication or you would like to use the data upload mechanisms offered by Germinate, then Gatekeeper needs to be properly configured. Please follow the documentation at https://germinateplatform.github.io/gatekeeper-server/ to set up Gatekeeper.

Once running, you will need to create a new user in Gatekeeper that Germinate can use to authenticate itself. To this end, create a new user with Administrator permissions for the default Gatekeeper (not Germinate) database. You can then use the username and password of this new account in the Germinate configuration by providing: gatekeeper.username and gatekeeper.password.