-
Notifications
You must be signed in to change notification settings - Fork 1
Configuration
This section will highlight some of the configurations of Germinate. The configurations are stored in the file instance-stuff/<your instance>/config.properties
. Currently the following settings are available:
Germinate.Database.Username=<username for the database>
Germinate.Database.Password=<password for the database
Germinate.Database.Server=<server of the germinate database>
Germinate.Database.Name=<name of the germinate database>
Germinate.Database.Port=<port for database connection>
Gatekeeper.URL=<base url of gatekeeper>
Gatekeeper.Database.Server=<server of the gatekeeper database>
Gatekeeper.Database.Name=<name of the gatekeeper database>
Gatekeeper.Database.Port=<port for database connection>
Gatekeeper.BCrypt.Rounds=<number of rounds for the bcrypt hashing algorithm>
Gatekeeper.Registration.Enabled=<allow user registration?>
Gatekeeper.Registration.Needs.Approval=<user registration needs manual approval?>
Germinate.UseAuthentication=<users have to log in to see data?>
Germinate.CookieLifespanMinutes=<the lifespan of cookies in minutes>
Germinate.Debug=<enable to see sql queries run on the server>
Germinate.KeepTemporaryFileForHours=<how long should temporary files be kept?>
Germinate.UploadSizeLimitMB=<file size limit of uploads in MB>
Germinate.AvailablePages=<list of comma separated pages that are available for this instance of germinate>
Germinate.ShowHomeOnLogin=<show the content of the home page on the login page as well?>
Germinate.Server.Logging.Enabled=<should exceptions be logged on the server?>
Germinate.IsUnderMaintenance=<is the server under maintenance?>
Germinate.IsReadOnly=<is the database in read-only mode?>
Germinate.ExternalDataFolder=<optional external data directory outside tomcat>
Germinate.HideIdColumns=<should internal id columns be hidden from tables?>
Germinate.Gallery.Images.Per.Page=<determines the number of images per page>
GoogleAnalytics.Enabled=<should google analytics be enabled?>
GoogleAnalytics.TrackingId=<the google analytics tracking id>
Germinate.Download.Tracking.Enabled=<should download events be tracked?>
CookieNotifier.Enabled=<should the cookie notifier for EU cookie law be enabled?>
Germinate.Build.Additional.Locales=<any additional locales that you would like to support>
Germinate.Template.CustomMenu=<the custom menu structure in XML format>
Germinate.Template.CategoricalColors=<colors used for some of the charts>
Germinate.Template.GradientColors=<colors used for the gradients>
Germinate.Template.Social.ShowFacebook=<show facebook share button?>
Germinate.Template.Social.ShowTwitter=<show twitter share button?>
Germinate.Template.Social.ShowGooglePlus=<show google+ share button?>
Germinate.Template.Logo.Contains.Link=<does the svg logo contain links?>
Germinate.Template.Show.Parallax.Banner=<show parallax image banner?>
Germinate.Template.EmailAddress=<contact email email address>
Germinate.Template.Title=<title of the germinate instance>
Germinate.Template.DatabaseName=<name of the germinate instance>
Germinate.Template.TwitterLink=<twitter link>
Path.Java=<path to the java installation>
Path.R=<path to the r installation>
All items starting with Germinate.Database
have already been discussed in Section Setup. Items starting with Gatekeeper.Database
can be configured analogously.
We will now explain the meaning and possible settings of all the items. Non-optional properties are marked with "°" whereas "*" marks properties that are non-optional if you want to use the associated functionality. Unmarked properties either have a default value after the type or aren't crucial for Germinate to work properly.
-
Germinate.Database.Username
° [String] - The MySQL username used for the Germinate database.
-
Germinate.Database.Password
* [String] - The MySQL password associated with the username.
-
Germinate.Database.Server
° [String] - The server MySQL is running on.
-
Germinate.Database.Name
° [String] - The name of the database.
-
Germinate.Database.Port
* [x ∈ {0, ..., 49151}] - The port number to use for the database connection.
-
Gatekeeper.URL
* [URL] - The URL of Gatekeeper. This is required if the registration feature is enabled. Refer to property
Germinate.Registration.Enabled
and Section Setup. -
Gatekeeper.Database.Server
* [String] - The server MySQL is running on.
-
Gatekeeper.Database.Name
* [String] - The name of the Gatekeeper database..
-
Gatekeeper.Database.Port
* [x ∈ {0, ..., 49151}] - The port number to use for the database connection.
-
Gatekeeper.BCrypt.Rounds
[x ∈ {4, ..., 10}], default: 10 - Gatekeeper uses BCrypt to hash passwords. The number of rounds determines how long the hashing will take. A larger number will make it harder to use brute-force to find the password, but at the same time it will influence how long users will have to wait for their password to be verified. The default is a value of
10
which results in2^10
rounds. Increasing this to11
will double the runtime to2^11
. -
Gatekeeper.Registration.Enabled
[true | false], default:false
- Germinate and Gatekeeper support user registration. If this property is set to
true
, users will be able to register for access to your instance of Germinate. The registration will be accessible from the login page. See Section Features for more details. -
Gatekeeper.Registration.Needs.Approval
[true | false], default:true
- If registration is enabled, there are two ways how users are approved for access to Germinate. If this property is set to
false
, users will automatically be approved and can start using Germinate right away. If this is not what you want, set this tofalse
which will require you to approve requests manually through the Gatekeeper interface. Users will be notified with your decision via mail. -
Germinate.UseAuthentication
[true | false], default:false
- If set to
true
, the user will have to log in using the credentials stored in Gatekeeper, otherwise no login procedure is required. -
Germinate.CookieLifespanMinutes
[x ∈ N+], default: 1440 - The lifespan of all cookies given in minutes.
-
Germinate.Debug
[true | false], default:false
- Set to
true
if you want to see the SQL queries that are run against the database on each page. This is very handy when debugging or searching for errors. However, this should never (!) be used in production use, since it exposes the database internals. -
Germinate.KeepTemporaryFileForHours
[x ∈ N+], default: 24 - The number of hours temporary files should be kept for. Temporary files are generated whenever the user wants to download parts of the database. They are kept locally at least for the given amount of hours and after this amount of time they will be deleted the next time a user requests any temporary file.
-
Germinate.UploadSizeLimitMB
[Float], default: 0.5 - The file size limit of uploads in MB.
-
GoogleAnalytics.Enabled
[true | false], default:false
- Germinate supports Google Analytics. Page navigation as well as user interactions will be tracked if this property is set to
true
. -
GoogleAnalytics.TrackingId
° [String] - The tracking id provided by Google Analytics.
-
Germinate.Download.Tracking.Enabled
[true | false], default:false
- Determines whether Germinate should track downloads of datasets internally. This includes, when Germinate operates without authentication, that users need to provide details about themselves before they can use a dataset. If authentication is enabled, everything happens in the background, because we already have that information about the users.
-
CookieNotifier.Enabled
[true | false], default:false
- In accordance with the EU Cookie Law we provide a notify banner at the bottom of the page that informs users that we use cookies. Set this to
false
to disable this banner. -
Germinate.AvailablePages
* [CSV] - Not all pages are useful for all instances of Germinate. List the names of those pages that should be available for this instance in a comma-separated fashion, e.g.
climate, megaEnvironments, gallery
. -
Germinate.ShowHomeOnLogin
[true | false], default:false
- If set to
true
, the login page will show the content of the home page as well. If set tofalse
, the login page will only contain the text fields for the username and password. -
Germinate.Server.Logging.Enabled
[true | false], default:true
- If set to
true
, exceptions will be logged on the server side. Otherwise, they will only be forwarded to the client and the client decides what to do with them. -
Germinate.IsUnderMaintenance
[true | false], default:false
- If set to
true
, the web interface will be completely disabled, just showing a notification that the system is under maintenance. -
Germinate.IsReadOnly
[true | false], default:false
- If set to
true
, the web interface will not allow the user to perform changes to the database, i.e., the generation/modification of user-created content will be disabled. -
Germinate.ExternalDataFolder
° [Path] - If this property is set, Germinate will use the given path to look for files like images, data files and external applications. If the property is not set, Germinate will use the internal folders. This option can be useful if your data is huge and you don't want to include it in the generated war file, but rather want to store it in a different location on the server. Make sure that Germinate has read and write access to this folder.
-
Germinate.HideIdColumns
[true | false], default:false
- If set to
true
, the internal id column will be hidden from all tables. -
Germinate.Gallery.Images.Per.Page
[x ∈ N+], default: 12 - This setting determines how many images are shown per page on the gallery page.
-
Germinate.Gallery.Make.Thumbnails.Square
[true | false], default:false
- If set to
true
, the automatically generated thumbnails of images will be square to keep a uniform look across all thumbnails. The default isfalse
to keep it consistent with previous versions. -
Germinate.Build.Additional.Locales
* [CSV] - A comma separated list of additional locales that you would like to support. See section Customization for more details.
-
Germinate.Template.CustomMenu
° [XML] - This allows you to customize the main menu of Germinate. Please consult Section Germinate Menu for more details and an example.
-
Germinate.Template.CategoricalColors
[CSV(HEX)], default:#1f77b4,#ff7f0e,#2ca02c,#d62728,#9467bd,#8c564b,#e377c2,#7f7f7f,#bcbd22,#17becf
- A list of comma separated HEX color values (including the hash) that are used to color categories in some of the charts.
-
Germinate.Template.GradientColors
[CSV(HEX)], default:#000000,#570000,#ff0000,#ffc800,#ffff00,#ffffff
- A list of comma separated HEX color values (including the hash) that are used for gradients (low to high).
-
Germinate.Template.Social.ShowFacebook
[true | false], default:false
- Set to true if a Facebook share button should appear on the site.
-
Germinate.Template.Social.ShowTwitter
[true | false], default:false
- Set to true if a Twitter share button should appear on the site.
-
Germinate.Template.Social.ShowGooglePlus
[true | false], default:false
- Set to true if a Google+ share button should appear on the site.
-
Germinate.Template.Logo.Contains.Link
[true | false], default:false
- Set to
true
if the main website logo SVG file contains links. In that case, Germinate will disable the default logo link to "home" and prioritize the SVG-internal links. -
Germinate.Template.Show.Parallax.Banner
[true | false], default:true
- Determines if the parallax scrolling image banner is shown at the top of selected pages or not.
-
Germinate.Template.EmailAddress
° [E-Mail] - The email address that will be displayed on the page as a contact address. Make sure that this is an email address only and nothing else.
-
Germinate.Template.Title
[String], default: "Germinate" - The text to show in the browser title.
-
Germinate.Template.DatabaseName
[String], default: "Germinate Database" - The text to show in the "featured banner" on the page.
-
Path.Java
[Path] - The path to the Java installation. This is optional, since Germinate can get it from the JVM it's running in. However, if required, Germinate can be pointed to a different Java version and will use this to run all internal Java calls.
-
Path.R
° [Path] - The path to the R installation.
Any change to these properties will automatically be picked up by Germinate, i.e. no reload of the web interface on Tomcat is required.
There is also a configuration page directly in Germinate. This page is only visible to administrators and can be reached by going to:
http://Your web server
:8080/project.name
/#admin-config
An example of this page can be seen in the figure above.
Germinate uses a predefined menu structure by default. This default menu setup is based on what we think is a reasonable structure. However, even we are not infallible, so we decided to make the menu customizable.
We will now explain how you can define your own, custom menu structure and we will then give an example of how this can be used.
The menu of Germinate can be defined in XML format. We will explain this format using the example below:
<menu>
<item key="home" icon="mdi-home-outline">
<label key="en_GB">Home</label>
<label key="de_DE">Home</label>
</item>
<item key="category.data">
<label key="en_GB">Data</label>
<label key="de_DE">Daten</label>
<item key="browse-accessions">
<label key="en_GB">Accessions</label>
<label key="de_DE">Muster</label>
</item>
<item key="category.molecular">
<label key="en_GB">Molecular data</label>
<label key="de_DE">Molekulare Daten</label>
<item key="genotype-datasets">
<label key="en_GB">Genotypes</label>
<label key="de_DE">Genotypen</label>
</item>
<item key="map-details">
<label key="en_GB">Maps</label>
<label key="de_DE">Molekulare Karten</label>
</item>
</item>
</item>
<item key="category.environment">
<label key="en_GB">Environment</label>
<label key="de_DE">Umwelt</label>
<item key="geographic-search">
<label key="en_GB">Geographic search</label>
<label key="de_DE">Geografische Suche</label>
</item>
</item>
</menu>
This will result in the following menu structures (English, then German):
-
Home
-
Data
- Accessions
- Molecular Data
- Genotypes
- Maps
-
Environment
- Geographic search
-
Home
-
Daten
- Muster
- Molekulare Daten
- Genotypen
- Genetische Karten
-
Umwelt
- Geographische Suche
We will now explain the individual elements of the XML file:
menu
- The root element of the XML file.
item
- This is used for any menu element. This can either be a link to an actual page, or a submenu.
item key
- If this item represents an actual Germinate page (cf. Section Features) then this has to be the name of the page. If this item is a sub-menu, then this has to be a unique id.
item icon
- The icon that should be used for this menu item. It has to be one of the icons from https://materialdesignicons.com/. They are all prefixed with "
mdi-
". If no icon is provided, no icon will be shown. label
- Labels are used as the text content of the menu item, i.e. what the user will see. Every item has to provide this information for ALL of the supported languages (cf. Section Customization).
label key
- The locale of the supported language.