====== Vigilia Server Installation ======
//**Requires a Viglia Server licence**. To use the official HVAC.IO servers instead, jump to [[.:recording]].//
The installation is separated in 3 main components:
* [[#Database]]
* [[#Vigilia Server]]
* [[.:recording#client_side_loggers|Loggers]]
They can all be installed on the same machine, or on separate servers and devices, depending on your network architecture.
Once this is done, you might want to take a look at [[#Adding Vigilia as a Service]]
===== Database =====
For the time being, Vigilia only supports TokuMX.
It is a fork of MongoDB, which features mind boggling increase in performance and reduction in the database size.
(The choice was not made lightly; we tried many databases before settling with this one.)
TokuMX is supported on **64-bit Linux only**, but a virtual image should work too.
We recommend to use SSD drives, as their increased speed directly translate in how fast Vigilia will react.
250 to 500 Go should be plenty of space to store many years of data for networks composed of hundreds of thousands of objects. (Tokumx compression is really useful for this!)
To install TokuMX, add the following [[https://launchpad.net/~exponea/+archive/ubuntu/tokumx|PPA]] and enter the following in your shell :
sudo apt install tokumx-enterprise
(Alternatively, you can try to follow the official instructions on this [[https://www.percona.com/doc/percona-tokumx/installation.html|page]].)
Once the database is installed, make sure everything works as intended by running the command
**mongo** in the shell.
The command should be recognized AND it should connect successfully.
{{:suppliers:hvac.io:vigilia:installation:tokumx-shell.png?|}}
You can stop the process by pressing Ctrl-C in the shell.
===== Vigilia Server =====
For maximum speed, we recommend you install the Vigilia server on the same machine as the database.
Vigilia server runs on [[http://www.java.com|Java]], meaning it can work on Linux, Windows and Mac.
==== Java ====
Make sure you have Java on your machine. (preferably 8 or higher)
To do so, open a command window and type
java -version
You should see the current Java installed, if any:
{{:suppliers:hvac.io:vigilia:installation:java-version.png|}}
==== vigilia-server.jar ====
The entire Vigilia server is contained within a single .jar file.
This makes it surprisingly easy to update: just download the latest compiled version and overwrite the .jar file.
(Your license and configurations are stored separately and will continue to work as expected.)
The application can be started with the following command:
java -jar vigilia-server.jar
(where is the port you want to use. If you don't know which one to take, use 47900.)
After a few seconds, the server should be up and running.
You can now take your browser and go to:
http://localhost:
=== Create Admin Account ===
If Vigilia is able to connect to the database, you will be invited to create an account.
The first account created will have the administrator rights.
=== Load License ===
Now that you have the administrator rights, you should load the license files.
On the upper right, you should see your username. Click on it and go to **Server Administration**. Then click on **License**. Select the license files and click upload.
You should see something similar to this:
{{:suppliers:hvac.io:vigilia:installation:license.png|}}
=== Configure Service (optional) ===
If you want the application to start automatically when your server boot up, you should make sure to [[#Adding Vigilia as a Service|create a service]] (shown below), or configure your web server (like Tomcat) to use vigilia-server.jar.
=== Good to Go ===
Once your Vigilia server is up and running, you can follow the steps to [[suppliers:hvac.io:vigilia:recording|record a BACnet network]].
===== Adding Vigilia as a Service =====
==== (Upstart Users) ====
You might want to make sure the Vigilia server always starts as soon as the server boots, or that it restores itself in case of a crash.
For this, you'll have to add Vigilia as a service.
Start by creating a file named "**vigilia.conf**".
Open it and paste the following:
description "Vigilia Server"
author "Christian Fortin, HVAC.IO"
start on runlevel [2345]
stop on runlevel [!2345]
#Respawn the process if it crashes
#If it respawns more than 10 times in 60 seconds stop
respawn
respawn limit 10 60
expect fork
#replace PATH-TO-THE-JAR with something like /home/hvacio/vigilia
#replace PORT with the desired port number
script
cd PATH-TO-THE-JAR
java -jar vigilia-server.jar PORT &
end script
Now, once you replaced PATH-TO-THE-JAR and PORT with their correct values, move the file to /etc/init:
sudo mv vigilia.conf /etc/init/vigilia.conf
That's it!
Now reboot and Vigilia should start automatically.
To get more info about Upstart and services, see http://upstart.ubuntu.com/cookbook/.
===== Troubleshooting =====
==== Database Crash ====
If you database is becoming quite large (thousands of files in the dbpath), it's possible that your OS is going to refuse opening that much files simultaneously.
In Linux, you can change the number of allowed files by editing the file ''/etc/security/limits.conf'' and adding the following lines :
tokumx soft nofile 1000000
tokumx hard nofile 1000000
If you are using **systemd**, you might need to [[https://superuser.com/a/1322187|update a different file]].