Technical details

<< Click to Display Table of Contents >>

  Server and client installation >

Technical details

General

 

This chapter contains general information about servers, data encryption and other technical details related to data transfer and storage.

 

System Requirements

 

RAM: 32 MB for installation + 1 МB additionally for each Virola user

Disk space: 2 MB for each Virola user + the total volume of all attachments

 

Client-server data encryption

 

All data is protected during the transfer by public-key cryptography and SSL. The security certificate for self hosted Virola can be defined by a user. If it is not defined, it is generated automatically on a server when it is launched.

 

For voice chats symmetric-key encryption AES is used. The keys are generated on the server when it is running and are renewed within specific time period. The keys are stored in RAM only while the server is running.

 

How to check APK file for viruses

 

File of the Android app is uploaded to Google Play as Android Application Bundle, then it is converted to APK file by Google. An example of checking APK file for viruses: https://www.virustotal.com/gui/file/c3e664edbe833c8fee06167a98d810bbf5cd5a56e1b1f556ee620004db0ec1b5

 

Virola Server command line options help

 

run Virola Server with --help or -? or -h parameter to get help on Virola Server command line usage.

Example:

 

./virola_server_app.exe --help

 

Commands for changing SSL certificate

 

You can run Virola Server with your own SSL certificate / Private key pair.

Example:

 

virola_server_app.exe --listen-host 127.0.0.1 --listen-port 7777 --database-dir ./storage --use-ssl --ssl-certificate ./cert.pem --ssl-private-key ./key.pem --ssl-private-key-password QWERTY

 

For detailed information please use Virola Server command line options help.

 

Ports used for audio

 

Audio in Virola uses UDP protocol. You need to open UDP for the port on which Virola server is running.

 

How to transfer data to a new server

 

All data is stored on your server, thus you can do whatever you need with the folder where the data is stored. You can just set the path to it or copy it to a new machine.

 

If I upgrade my server, will the data get lost?

 

There should not be any data losses if you upgrade your server. However, before you do anything on your server, we recommend making a back up of your data.

 

 

 

How to start Virola server automatically on Linux Ubuntu and Debian

 

To run Virola as a daemon on Ubuntu and Debian server you need to do the following:

 

1.Create user virola

2.Create file virola-server.service in /etc/systemd/system directory

3.Add the following to the file:

                     [Unit]
                       Description=Virola chat server
                       [Service]
                       WorkingDirectory=/home/virola
                       User=virola
                       ExecStart=/usr/bin/virola-server --listen HOST:PORT --storage-dir ./
                       StandardOutput=append:/home/virola/virola-server.log
                       StandardError=append:/home/virola/virola-server.log
                       Restart=on-failure
                       ExecStartPost=/bin/sh -c 'umask 022; pgrep -f virola-server > /home/virola/virola-server.pid'
                       [Install]
                       WantedBy=multi-user.target
                     

where

HOST is the IP you've chosen for the Virola server

PORT is the port you've chosen for the Virola server

4.Execute the following commands

                     sudo systemctl daemon-reload
                       sudo systemctl start virola-server
                       sudo systemctl enable virola-server

 

The storage of messages logs

 

At present messages logs are stored on the server in the database the path to which a user provides as an argument in --storage-d. They are also stored locally in the database of Virola client in C:\Users\USERNAME\AppData\Roaming\Virola\. In this database are stored only logs of the messages from those chat-rooms the user has access to.

 

Cannot open database: "C:/Program Files (x86)/Virola/Server/virola_server_database_v8.db"

 

The database should be stored in a different folder. The directory C:\Program Files (x86)\Virola\Server is read only and data cannot be stored there.

 

Does Virola support end-to-end encryption?

 

Messages are stored unencrypted on a server. However, you can store the database on an encrypted server to keep messages encrypted.

 

We plan to have end-to-end encryption in the near future, however, many enterprise features such as issue tracking will not work with end-to-end encryption. On the other hand, self-hosted server is a pretty secure solution compared to a third-party cloud, even if they promise end-to-end encryption.

 

Will conversation history be removed if the user is removed from the group chat-room?

 

For the removed user. The group chat-room with its conversation history disappears immediately if the user is logged into Virola client. If the user is offline, the room will disappear as soon as the user logs into the Virola client. However, if the user is added to the group chat-room again, all the chat history will be restored for him/her.

For other room participants. Nothing will change. Regardless whether the user was removed from the room or deactivated at all, all his/her messages and transferred files will be kept intact.

 

Can I use proxy?

 

At present server app requires direct connection to the Internet through the defined port.