Skip to content

Setup Versio.io Managed

For all customers who want to run Versio.io in their own environment, Versio.io Managed is available.

Installation & startup package

Please carry out the installation by following the steps below:

  1. Verify server prerequisites
  2. Installation
  3. Recommended activities after installation
  4. Customize configuration
  5. Startup Versio.io Managed

Usefull activities to operate Versio.io Managed: 1. Shutdown Versio.io Managed 1. Backup & restore Versio.io Managed data

Prerequisites

Supported operating systems and sizing

The following operating systems are supported:

  • Ubuntu
  • Red Hat
  • Fedora
  • Debian
  • AlmaLinux

The following sizing depending on the usage is recommended: setup-system-requirements

Software components

The installer assumes that the following software components are already installed on the host:

  • tar & gzip
  • curl & wget
  • openssl (not necessary if own SSL certificates are available)
  • docker (>= version 24.0.0)
  • pv
  • grep
  • ss
  • which
  • systemctl
  • jq

Check system requirements

Before starting any installation, please run our system requirement check script to ensure that all requirements are met!

# Download from GitHub
wget https://raw.githubusercontent.com/versio-io/check-versio.io-system-requirements/main/check-versio.io-system-requirements.sh

# Execute script
bash check-versio.io-system-requirements.sh

Command line: Download and execute the system requirements check before Versio.io Managed installation

Installation

Your Versio.io contact will provide you with a link to download the Versio.io Managed core installer. The installer can be downloaded and executed with the following commands. After the installation you will find the Versio.io application files in /opt/versio.io and the Versio.io data files in /home/versio.io.

wget -nv -N --no-check-certificate https://<my-link>/install-versio.io-managed.sh // your get authentification from Versio.io contact

bash install-versio.io-managed.sh

Command: Download and install Versio.io managed core

Before starting or updating the Versio.io Managed instance for the first time, you must log in to the Versio.io Docker image registry once.

docker login registry.versio.io // your get authentification from Versio.io contact

Command: Download Versio.io docker images

Initialize database, startup Versio.io Managed plattform and import Versio.io artificial intelligence content repository:

# Update the Versio.io Managed instance
bash update.sh

Command: Download Versio.io docker images

After successful installation and startup, we recommend that you perform the following activities as soon as possible:

  1. Login with the default user and password
  2. Configure SMTP server for e-mail notification (necessary for initial password set/reset!)
  3. Create new admin user (see Environment settings - User & rights)
  4. Deactivate default admin user
    • Change default password
    • Remove from default environment (see Environment settings - User & rights)
  5. Create a new environment (see Server settings - Environment settings)
  6. Invite new user to the new environment (see Environment settings - User & rights)
  7. Install an OneImporter (see Environment settings - OneImporter - Install)
  8. Configure OneImporter configuration (see Environment settings - OneImporter - Configurations)

Customizing

Environment variable

The following environment variables can be set to accommodate customer specific wishes, when starting Versio.io:

Environment variable Purpose of use Description Default value
VERSIO_DOMAIN Web server config Define the URL domain address under which the Versio.io browser user interface can be accessed on the network. The domain address must match the domain specified in the SSL certificate, otherwise the browser will display an error message.
All deep links sent from the Versio.io platform use the domain address!
Host name
VERSIO_ADDITIONAL_DOMAINS Web server config Optionally define the additional comma-separated URL domain addresses under which the Versio.io browser user interface can also be accessed in the network. It is important for the identity and access management. For example, for internal access via the IP. Please note that the SSL certificate must support the specified domains accordingly.
VERSIO_PORT_HTTPS Web server config Define the port on which Versio.io can be accessed via HTTPS. 443
VERSIO_PORT_HTTP Web server config Define the port on which Versio.io should be accessible via HTTP. Please note that the HTTP has to be enabled in 'docker-compose.yml'. 80
VERSIO_VALIDITY_CERTIFICATE Self generated SSL certificates Validity of self-generated SSL certificates in days. 365
VERSIO_DATA Versio.io server and backup.sh Define the folder to store all Versio.io logging and database data. /home/versio.io
VERSIO_LOGGING_FOLDER Versio.io server Define the folder to store Versio.io logging data. /home/versio.io/log
VERSIO_BACKUP_FOLDER backup.sh Define the folder to store Versio.io backup data. /home/versio.io/backup
VERSIO_STAGE Versio.io server Define the stage and logging behavior of the Versio.io instance. If the value is not equal to production or loadtest, the amount of logged information is increased.
VERSIO_DEPLOYMENT_PROFILE Versio.io server Define the profile to deploy Versio.io as a standalone or a distributed system (separated application and database stack) on different servers. Use application to deploy the application stack and database to deploy the database. standalone
VERSIO_DB_IP Versio.io server If the database is operated on a separate host, then define the IP of the database host in the environment variable. This is usually used in conjunction with the environment variable VERSIO_DEPLOYMENT_PROFILE. Internal IP address
VERSIO_GRC_REPLICAS GRC microservice Define the number of replicas for the GRC microservice (governance risk compliance). A higher number of replicas can parallelize the processing of GRC verifications and thus achieve higher processing performance. A value >= 1 should always be defined. 2
VERSIO_TOPOLOGY_REPLICAS Topology microservice Define the number of replicas for the topology microservice. A higher number of replicas can parallelize the processing of changes and thus achieve higher processing performance. A value >= 1 should always be defined. 2
VERSIO_EVENT_PROCESSING_REPLICAS Event processing microservice Define the number of replicas for the Event processing microservice. A higher number of replicas can parallelize the processing of changes and thus achieve higher processing performance. A value >= 1 should always be defined. 2
VERSIO_GATEWAY_REPLICAS Gateway microservice Define the number of replicas for the gateway microservice. A higher number of replicas can parallelize the processing of changes and thus achieve higher processing performance. A value >= 1 should always be defined. 2

Configuration: Environment variables with default values

SSL certificate

The Versio.io startup script automatically generates an SSL certificate for HTTPS support if no certificate authority is available in the ./ssl folder (ca-root.pem and ca-private-key.pem).

For productive systems we recommend to store company specific SSL certificates in the ./ssl/versio.reverse-proxy folder of the startup script with following file names: * cert-private-key.pem for the private key * cert-public-key.pem for the public key

Please note that for self generated SSL certificates the certification authority 'ssl/ca-root.pem' should or must be made known on the client side:

  • Browser: Import of the certification authority into the certificate memory of the browser. If this is not done, you will receive a browser warning where you can again indicate that you accept the risk.
  • API usage: Announcement of the certification authority to the operating system or manual specification when starting the corresponding client application.

Startup

If the installation is finished, the Docker images are available and your customizing is ready, the Versio.io instance can be started:

bash startup.sh

Command: Start Versio.io instance

Enclosed is a sample output for starting a Versio.io instance:

Versio.io Managed Installer

Image: Versio.io Managed installer

After successful installation and startup, we recommend that you perform the following activities as soon as possible:

  1. Login with the default user and password
  2. Configure SMTP server for e-mail notification (necessary for initial password set/reset!)
  3. Create new admin user (see Environment settings - User & rights)
  4. Deactivate default admin user
    • Change default password
    • Remove from default environment (see Environment settings - User & rights)
  5. Create a new environment (see Server settings - Environment settings)
  6. Invite new user to the new environment (see Environment settings - User & rights)
  7. Install an OneImporter (see Environment settings - OneImporter - Install)
  8. Configure OneImporter configuration (see Environment settings - OneImporter - Configurations)

Shutdown

To shut down a Versio.io instance the corresponding command must be executed:

bash shutdown.sh

Command: Stop Versio.io instance

Then, for example, updates of Versio.io Docker images or other maintenance work can take place before Versio.io is started again.

Update

Platform

To update a Versio.io Managd instance the corresponding commands should be executed in /opt/versio.io/install folder as root user:

bash update.sh

Command: Update Versio.io Managed instance

It is recommended to make a backup before each update!

AI content

Versio.io provides Artifical Intelligance (AI) content for the assessment of product lifecycle and vulnerabilities. These change daily and should therefore be updated daily. We recommend running the update as a cron job.

bash /opt/versio.io/install/update-ai-rep.sh

Command: Update AI content on command line

0 6 * * * /bin/bash /opt/versio.io/install/update-ai-rep.sh > /opt/versio.io/install/update-ai-rep.log 2>&1

Command: Update AI content as cron job

Backup & restore

To backup a Versio.io server instance with all environment data the corresponding command must be executed (see environment varibale VERSIO_BACKUP_FOLDER):

bash /opt/versio.io/install/utils/backup-database-content.sh

Command: Backup Versio.io instance includes all environment data

The backup script creates a physical backup with name versio.io-backup-<date>-<time>.tar.gz. Physical backups are performed by copying the individual data files or directories (see logical versus physical backups).

To ensure data integrity, the Versio.io Server instance is stopped, the backup is performed and the Versio.io Server instance is restarted. This means that during this time the Versio.io Server is not available. The downtime depends on the data volume to be backed up and is displayed at the end of the backup execution.

It is recommended to run the backup continuously e.g. based on cron jobs:

40 0 * * * /opt/versio.io/install/utils/backup-database-content.sh

Configuration: Cronjob configuration for daily backup

To restore all Versio.io Managed data you can execute the follwoing script. Please note - All data of the current Versio.io Managed Instance will be overwritten!!!

bash /opt/versio.io/install/utils/restore-database-content.sh <backup-date-time>

Configuration: Cronjob configuration for daily backup

Please note that a repocessing of the full-text search and topology detection reprocessing for each (!) environment must be performed when restoring backup data:

  • see Environment Settings - Full-text search - Reprocess environment
  • see Environment Settings - Topology detection - Reprocess environment

External identity provider

For a Versio.io Managed instance, external identity providers can be integrated in order to be able to use authentication and other security functions, such as single sign-on or two-factor authentication (2FA).

An identity provider is set up in the file /opt/versio.io/install/conf/auth.json. An example configuration with the name 'auth.example.json' is available in the same directory. After changing the auth.json file, the Versio.io Managed instance must be restarted.

On the following page you will find instructions on how to set up your Versio.io Managed instance with your identity provider.