Skip to content

Helm chart config

The configuration for the Helm chart is provided as a YAML file. It has the following fields:

General Settings

FieldTypeDefaultDescription
nameString”Loculus”The name of the Loculus instance
logoObjectConfiguration for the logo
logo.urlStringLoculus logoURL path to the logo image file
logo.widthInteger100Width of the logo in pixels
logo.heightInteger100Height of the logo in pixels
accessionPrefixString”LOC_“Prefix used for accession numbers
environmentString”server”Deployment environment. Options: “local” for development, “server” for production.
hostStringHostname where Loculus will be accessible. Used for generating URLs and configuring ingress.
bannerMessageString”This is a demonstration environment. It may contain non-accurate test data and should not be used for real-world applications. Data will be deleted regularly.”

Banner message (as HTML) to display at the very top of the page

welcomeMessageHTMLString

A custom welcome message to be shown on the landing page

additionalHeadHTMLString

Additional HTML to inject into the <head> of pages

createTestAccountsBooleanIf true, creates the users testuser and superuser (the username and password are the same).
robotsNoindexHeaderBooleanIf true, adds a noindex header to prevent search engine indexing
seqSets.enabledBooleanEnable/disable SeqSets. If false, seqSets.crossRef can be omitted.
seqSets.crossRefObjectConfiguration for CrossRef integration. Set to null to disable CrossRef integration (you can still use SeqSets without CrossRef DOIs).
seqSets.crossRef.DOIPrefixStringThe DOI prefix for SeqSets
seqSets.crossRef.endpointStringThe API endpoint for CrossRef
seqSets.crossRef.databaseNameStringThe database name for CrossRef
seqSets.crossRef.emailStringThe email address associated with the CrossRef account
seqSets.crossRef.organizationStringThe organization name for CrossRef
seqSets.crossRef.hostUrlStringThe host URL for CrossRef callbacks
gitHubMainUrlStringhttps://github.com/loculus-project/loculusThe link that the GitHub icon in the footer points to

Website Settings

FieldTypeDefaultDescription
websiteObjectWebsite specific setting
website.websiteConfigObjectSettings for the website_config.json
website.websiteConfig.enableLoginNavigationItemBooleantrueWhether the website should show the login button.
website.websiteConfig.enableSubmissionNavigationItemBooleantrueWhether the website should show “Submit” link in the top navigation bar.
website.websiteConfig.enableSubmissionPagesBooleantrueWhether to completely disable submission related pages. Setting this to false is useful when hosting Loculus for analysis-only purposes.
website.runtimeConfig.publicObjectSettings for the public section of the runtime_config.json
website.runtimeConfig.public.backendUrlStringtrueOverwrite the URL where the client-side website code expects the Loculus backend
website.runtimeConfig.public.keycloakUrlStringtrueOverwrite the URL where the client-side website code expects the Keycloak
website.runtimeConfig.public.lapisUrlTemplateStringtrueOverwrite the URLs where the client-side website code expects the LAPIS instances. Must contain %organism% as a placeholder.

User registration and authentication

FieldTypeDefaultDescription
authObjectUser authentication (Keycloak settings)
auth.smtpObjectConfiguration for email sending
auth.smtp.hostStringSMTP server hostname
auth.smtp.portIntegerSMTP server port
auth.smtp.userStringSMTP username for authentication
auth.smtp.replyToStringReply-to email address for sent emails
auth.smtp.fromStringFrom email address for sent emails
auth.smtp.envelopeFromStringEnvelope from address for sent emails
auth.verifyEmailBooleantrueIf true, requires email verification for new accounts
auth.resetPasswordAllowedBooleantrueIf true, allows users to reset their passwords
auth.registrationAllowedBooleantrueIf true, allows users to register new accounts in Keycloak.
insecureCookiesBooleanfalseIf true, allows insecure cookies.
registrationTermsMessageString

"You must agree to the <a href='http://main.loculus.org/terms'>terms of use</a>."

Message displayed during user registration, typically including terms of service.

Database deployments

FieldTypeDefaultDescription
runDevelopmentMainDatabaseBooleantrueIf true, runs a development database within the cluster.
runDevelopmentKeycloakDatabaseBooleantrueIf true, runs a development Keycloak database within the cluster.
developmentDatabasePersistenceBooleantrueIf true, makes the database on the argocd preview persistent.

For production environments, these should always be set to false. Instead, external managed databases should be used.

Services

FieldTypeDefaultDescription
disableWebsiteBooleanfalseIf true, disables the frontend website deployment.
disableBackendBooleanfalseIf true, disables the backend API deployment.
disablePreprocessingBooleanfalseIf true, disables preprocessing pipelines.
disableIngestBooleanfalseIf true, disables ingestion services.
disableEnaSubmissionBooleanfalseIf true, disables ENA (European Nucleotide Archive) submission service.
customWebsiteImageStringOptional custom Docker image for the website.

Organism Configuration

FieldTypeDefaultDescription
organismsObjectAn object where the keys are the organism IDs and values are an Organism (type)

Organism (type)

Each organism object has the following fields:

FieldTypeDefaultDescription
schemaSchema (type)
preprocessingA list of Preprocessing (type)Configuration for the preprocessing pipeline(s)
ingestIngest (type)Configuration for the ingest pipeline(s)
referenceGenomesObjectReference genome sequences for the organism
referenceGenomes.nucleotideSequencesArray of NucleotideSequence (type)
referenceGenomes.genesArray of Gene (type)

Schema (type)

FieldTypeDefaultDescription
organismNameStringDisplay name for the organism
imageStringURL to an image that will be shown on the landing page
loadSequencesAutomaticallyBooleantrue

Whether sequences be loaded automatically on the sequence details page , rather than users having to press a button to do so. (For small genomes, this should probably be true.)

descriptionString
metadataArray of Metadata (type)Metadata fields associated with the organism.
earliestReleaseDateObject

Configuration object for enabling and configuring the earliestReleaseDate metadata field. For each version of an accession, the earliestReleaseDate is calculated as the earliest date of the internal release date, the dates in the configured externalFields and the value from the previous version of the accession (if there is one). This can be used when having a mix of sequences imported from other databases, as well as sequences released first in this Loculus instance, to have a field that shows the earliest release date regardless of where the sequence was first released.

earliestReleaseDate.enabledbooleanWhether to enable the earliestReleaseDate metadata field.
earliestReleaseDate.externalFieldsArray of strings

Field names to use when calculating the earliest release date. The fields need to be nullable strings formated with yyyy-mm-dd.

websiteObjectConfiguration for how the organism data is displayed on the website
website.tableColumnsArray of StringsColumns to display in the browse table
website.defaultOrderByStringDefault column to sort the browse table
website.defaultOrder”ascending” | “descending”Default order direction
siloObjectConfiguration regarding the SILO database engine
silo.dateToSortByString

Name of a field of type date. This might speed up date range searches on this field and improve sequence compression.

silo.partitionByString

Metadata (type)

FieldTypeDefaultDescription
nameStringKey used across app to refer to this field
displayNameStringName displayed to users
type
headerStringGrouping of fields in sequence details UI
requiredBooleanWhether the field is required by backend
noInputBoolean

Whether a field with this name is expected as possible input, and so should be included in the metadata template and as a form field. (If set to true it will not be included).

generateIndexBoolean

Whether the field should be indexed for search. This is only allowed for string fields and facilitates faster filters. It is recommended if the number of different values is rather small.

columnWidthNumberThe minimum column width for this field on the search table.
orderNumberOrder for the column in the search table, lower first
autocompleteBoolean

Whether autocomplete should be offered for the field. This is only allowed for string fields and probably generateIndex should be true.

enableSubstringSearchBoolean

If true, search results will contain results that contain the given value as a substring. If false (the default), only exact matches will be returned. This only works for string fields, and you cannot also enable autocomplete.

rangeSearchBooleanIf true, enables range search for numeric fields.
rangeOverlapSearchObjectThe config settings for enabling range overlap search.
rangeOverlapSearch.rangeIdStringThe range that this field belongs to. Two fields (the upper and lower bound) need to be defined with the same range ID.
rangeOverlapSearch.rangeDisplayNameStringThe display name of the range.
rangeOverlapSearch.bound”lower” | “upper”Whether this field is the lower or upper bound of the range.
initiallyVisibleBooleanIf true, the field is initially visible in the UI.
hideOnSequenceDetailsPageBooleanIf true, hides the field on the sequence details page.
perSegmentBoolean

Whether this is a metadata field that should exist for each segment. If so fields will be created as fieldName_A, fieldName_B in the case of an organism with segments A and B.

customDisplayObjectCustom display of the field on the sequence details page
customDisplay.type
customDisplay.url
ontology_idString
definitionString
guidanceString
exampleStringExample value for the field.
ingestStringWhich NCBI field to map to this field
preprocessingObject

The values of this field will be added to the preprocessing pipeline config file and the available values depend on the chosen pipeline. For the Nextclade pipeline, please see here.

Preprocessing (type)

FieldTypeDefaultDescription
versionIntegerVersion of the preprocessing pipeline
imageStringDocker image for the preprocessing pipeline
argsArray of stringsArguments passed to the preprocessing pipeline
configFileObjectFields that should be added to the preprocessing pipeline config file

The values for args and configFile depend on the used preprocessing pipeline. For the Nextclade preprocessing pipeline, please see here.

Ingest (type)

FieldTypeDefaultDescription
image”ghcr.io/loculus-project/ingest”Docker image for the ingest pipeline
configFileObjectFields that should be added to the ingest pipeline config file

The values for configFile depend on the used preprocessing pipeline. For our ingest pipeline which downloads data from NCBI GenBank using NCBI Datasets, the config file needs to contain the taxon_id of the organism and additionally, if the organism is multi-segmented, it requires a list of segment names (nucleotide_sequences) and the nextclade_dataset that can be used for segment identification and alignment.

NucleotideSequence (type)

FieldTypeDefaultDescription
nameStringName of the sequence
sequence
insdcAccessionFullStringINSDC accession of the sequence

Gene (type)

FieldTypeDefaultDescription
nameStringName of the sequence
sequence