- Docker-compose (Comes with Docker Desktop for Windows by default)
- Expose ports 9090, 8080 and 3000 on the machine on which you will be hosting the SVO
Recommended Server Specs
8GB RAM, 2 vCPU, 60GB storage for up to 20 concurrent users
Obtaining the On-Prem Setup Files
A curl command authorized by JWT can be generated on the Virtualitics Account Portal. The command will expire one hour after generation, but you can always generate a new one. SSH into your hosting machine and execute this command using your preferred terminal.
Alternatively, you can use the button to download a zip file and upload that to your machine.
Running The SVO Image With Docker Compose
Unzip the .zip file obtained in the previous step into the directory of your choosing. It will yield the following files:
- ‘svo2020.1.0.tar’: a tar file containing the docker image
- ‘grafana.tar’: a pre-configured grafana image with plugins to connect to the SVO and a preconfigured dashboard
- ‘docker-compose.yml’: a template docker-compose configuration for running the service
- ‘prometheus.yml’: a configuration file for the SVO Metrics Exporter
- ‘custom_environment.env’: a template environment file that will allow you to configure the deployment to your specifications
Navigate to the directory that you unzipped these files into using the terminal of your choosing, and then execute docker load -i svo2020.1.0.tar and docker load -i grafana.tar to load the provided images into your docker image registry. You can execute docker images to confirm that the images were loaded successfully.
Configuring Custom Settings
Now, in order to properly run the service, you will need to generate a JWT secret. Go to your Virtualitics Account Portal, and click the ‘Generate button’ in the SVO Shared Secret section. Copy the generated secret to your clipboard to use later.
Open ‘custom_environment.env’ with the text editor of your choosing, and set the following fields:
- ‘JWT_SECRET’: the string you copied from the account management page
- ‘BROADCAST_SERVICE_IP’: the uri of your server plus port 8080 (e.g. svo.your-domain.com:8080)
- ‘DATA_TRANSMISSION_HOST’: the uri of your server plus port 8080 (e.g. svo.your-domain.com:8080)
- ‘MONGO_PWD’: the root password for the mongo database, set to a secure password of your choosing
In the terminal, execute docker images and copy the ID of the image you loaded in the previous steps. It should look something like ‘d6c54516a217’. Open ‘docker-compose.yml’ with the text editor of your choosing and replace ‘<IMAGE_ID>’ for both the SVO and the Grafana container with the respective images IDs output by docker images. Additionally, you will need to replace <MONGO_PWD> with the password you set in the previous step.
Finally, you will need to navigate back to your Virtualitics Account Portal and update your Default SVO URI to the uri of your server plus port 8080 (e.g. svo.your-domain.com:8080).
Launching the service
In order to the run service on port 8080, you will need to execute docker-compose up in your terminal. This will print the logs for the running container directly out to the terminal. ‘Ctrl-C’ can be used to exit the process. Alternatively, you may run docker-compose with the optional flag -d which will run the containers as daemons. You will have to manually stop these containers using docker stop. It is recommended that you run the containers without the daemon flags initially to ensure that they are starting up correctly.
Accessing Metrics via Grafana
In order to view the metrics being exported by the SVO service, navigate to <SERVER_EXTERNAL_DNS>:3000 (e.g. svo.your-domain.com:3000). The default password and username are admin, but you will be prompted to change your password when you log in. A dashboard for viewing the JVM metrics is preloaded with the image. Information about creating your own dashboards can be found in the Grafana Docs. If you are interested in creating your own dashboards, you can explore the metrics being exported on the Prometheus Page at svo.your-domain.com:9090.