Skip to content

Configuring VIVO

michel-heon edited this page Mar 11, 2026 · 10 revisions

Configuring VIVO

🇫🇷 Cette page est également disponible en français : fr_Configuring-VIVO

VIVO configuration is written to /etc/vivo/install.conf and applied to runtime.properties on first boot. For Marketplace deployments, supply these values via the Advanced → Custom data field (see Deploying-from-Marketplace). For direct ARM deployments, the ARM template writes the file automatically.


Key configuration file

/etc/vivo/install.conf

Contains:

VIVO_NAMESPACE=http://vivo.myuniversity.edu/individual/
VIVO_ADMIN_EMAIL=vivo_root@myuniversity.edu
VIVO_LANGUAGES=en_US
VIVO_LANGUAGE_FILTER=false
TOMCAT_HEAP_MIN=2g
TOMCAT_HEAP_MAX=6g
DATA_DISK_SIZE_GB=128
ADMIN_USERNAME=azureuser
# VIVO_FQDN=vivo.myuniversity.edu   # optional: enables automatic Let's Encrypt TLS

runtime.properties location

VIVO's main configuration file is located in the VIVO home directory:

/data/vivo/home/config/runtime.properties

This is the vivo_home_dir/config/runtime.properties path referenced in the official VIVO documentation.


Changing the VIVO namespace

The namespace is a permanent identifier for your institution's RDF entities. It should be set correctly before adding any data.

To update it:

sudo sed -i 's|^Vitro.defaultNamespace.*|Vitro.defaultNamespace = http://vivo.myuniversity.edu/individual/|' \
  /data/vivo/home/config/runtime.properties
sudo systemctl restart tomcat

Changing the admin password

The initial admin password is rootPassword (hardcoded in Vitro). VIVO requires a password change on first login.

  1. Log in to VIVO at https://<public-ip>/ with the email from VIVO_ADMIN_EMAIL and password rootPassword
  2. Click on your name (top right) → Edit profile
  3. Update the password field

Or reset it via the VIVO admin interface at https://<public-ip>/admin/sparql.


TLS Certificate (Let's Encrypt)

If you set VIVO_FQDN in the Custom data block (or /etc/vivo/install.conf), the first-boot script automatically requests a Let's Encrypt certificate via certbot --nginx.

# Optional — add to your Custom data block
VIVO_FQDN=vivo.myuniversity.edu

Prerequisites:

  • The FQDN must resolve to the VM's public IP before first boot (ACME HTTP-01 challenge).
  • Port 80 must be reachable from the internet (the ARM template adds this NSG rule automatically).
  • If omitted or if certbot fails, the self-signed certificate baked into the image is used.

Renewal is handled automatically via certbot.timer (systemd) or /etc/cron.d/certbot.


Internationalization (i18n)

VIVO supports two language modes, controlled by VIVO_LANGUAGES and VIVO_LANGUAGE_FILTER in /etc/vivo/install.conf.

Configuration parameters

Variable Default Description
VIVO_LANGUAGES en_US Comma-separated list of locale codes (e.g. en_US,fr_CA)
VIVO_LANGUAGE_FILTER false Filter RDF data to active locale only (true / false)

Mode 1 — Single locale (one value in VIVO_LANGUAGES)

The UI is locked to the specified locale — no language selector is shown.

# /data/vivo/home/config/runtime.properties (set automatically on first boot)
languages.forceLocale = en_US
RDFService.languageFilter = false

Use this mode when your instance serves a single-language audience.

Mode 2 — Multi-locale (two or more values in VIVO_LANGUAGES)

A language selector appears in the VIVO interface. The first locale in the list is the default.

# /data/vivo/home/config/runtime.properties (set automatically on first boot)
languages.selectableLocales = en_US, fr_CA
RDFService.languageFilter = true

Use this mode when your RDF data contains rdfs:label values in multiple languages and you want users to switch between them.

RDF language filter (RDFService.languageFilter)

When enabled (true), VIVO filters RDF triples to display only values matching the user's active locale. If no exact match is found, VIVO falls back to the closest matching language tag.

Set it to false if your data is not consistently tagged with language literals — untagged strings will always be shown regardless of locale.

Note: Locale codes use an underscore in runtime.properties (fr_CA) but a hyphen in RDF data files (@fr-CA). This is standard Java i18n behaviour.

Supported locales

This Marketplace image ships with language packs for:

Locale code Language
en_US English (United States)
en_CA English (Canada)
fr_CA French (Canada)
de_DE German
es Spanish
pt_BR Portuguese (Brazil)
ru_RU Russian
sr_Latn_RS Serbian (Latin, Serbia)

Source: vivo-project/VIVO-languages and vivo-project/Vitro i18n.

For other locales, see Creating new language files in the official VIVO documentation.

Changing language settings after deployment

Edit runtime.properties directly on the VM:

Switch to single locale:

sudo sed -i \
  -e 's|^languages\.selectableLocales|#languages.selectableLocales|' \
  -e 's|^#\?languages\.forceLocale.*|languages.forceLocale = en_US|' \
  -e 's|^RDFService\.languageFilter.*|RDFService.languageFilter = false|' \
  /data/vivo/home/config/runtime.properties
sudo systemctl restart tomcat

Switch to multi-locale:

sudo sed -i \
  -e 's|^languages\.forceLocale|#languages.forceLocale|' \
  -e 's|^#\?languages\.selectableLocales.*|languages.selectableLocales = en_US, fr_CA|' \
  -e 's|^RDFService\.languageFilter.*|RDFService.languageFilter = true|' \
  /data/vivo/home/config/runtime.properties
sudo systemctl restart tomcat

Verify current i18n settings:

grep -E "languageFilter|forceLocale|selectableLocales" \
  /data/vivo/home/config/runtime.properties

References

Clone this wiki locally