<< Click to Display Table of Contents >>
Server and client installation >
This chapter contains general information about servers, data encryption and other technical details related to data transfer and storage
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.
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
1.Firebase platform from Google is used to send push notifications in Android Virola client app
2.APNs (Apple Push Notification service) platform is used to send push notifications in iOS Virola client app
Below is the detailed scheme of using push notifications in Virola:
Push notifications in Virola
The following scheme shows how Virola works without push notifications enabled:
Virola without push notifications enabled
To send notifications your server should have access through HTTPs protocol to the following resources:
•https://fcm.googleapis.com for Android
•https://api.push.apple.com for iOS
•https://virola.io/pushtoken/api/v1/push_tokens push token
You need to allow them in your Firewall
run Virola Server with --help or -? or -h parameter to get help on Virola Server command line usage.
You can run Virola Server with your own SSL certificate / Private key pair.
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.
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.
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:
Description=Virola chat server
ExecStart=/usr/bin/virola-server --listen HOST:PORT --storage-dir ./
ExecStartPost=/bin/sh -c 'umask 022; pgrep -f virola-server > /home/virola/virola-server.pid'
•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.
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.
The conversation history is removed immediately if the user is logged into Virola client. However, if the user is offline, the history will be removed as soon as the user logs into the Virola client