Installation

Environment

First of all you need to make sure you have the Mono runtime installed. For most Linux distributions this can be installed via the package manager (e.g. sudo apt-get install mono-complete on Debian / Ubuntu), otherwise you can go to http://www.mono-project.com/ and download it from there.

Mono's GUI implementation uses X11. Most Linux distributions already have X11 installed but some (notably OS/X) do not. If you plan on using the GUI then you will need to have X11 installed, however if you intend to use the web admin interface to configure VRS then you can ignore X11.

Virtual Radar Server

Once Mono is installed you can download VRS from here:

Virtual Radar Server Mono Tarball

Decompress that somewhere, making sure that you preserve the directory structure.

Configuration via X11 GUI

Running

mono VirtualRadar.exe

from the command prompt will start the GUI and open the main screen. From there you can go to Tools | Options to configure the receiver.

Configuration via Web Browser

You will need to install the web admin plugin before you can configure the program via the web browser. Download the plugin's tarball from here:

Web Admin Plugin Tarball

Unpack the plugin into the folder where you unpacked the server, keeping the directory structure intact.

If you have unpacked everything correctly then you should have a folder under the Virtual Radar Server folder called Plugins, within which is a folder called WebAdmin.

You will need to create an administrator user within VRS before you can access the admin pages. You can use the -createAdmin and -password switches on the command line for this, and you can use the -nogui switch to start VRS headless:

mono VirtualRadar.exe -nogui -createAdmin:admin -password:password

Once the server is up and running you should be able to reach the admin pages at /WebAdmin/Index.html. Assuming that you are using the default port number and that the browser is running on the same computer that VRS is running on then this address should work:

http://127.0.0.1:8080/VirtualRadar/WebAdmin/Index.html

Go to the Options page to configure the server.

Mono 4 Issues

Virtual Radar Server is built against version 3.5 of the .NET framework, which is what ships with Windows 7. Version 4 of Mono does not support .NET 3.5, it will run the program under the .NET 4 framework instead.

This is fine, VRS will run under .NET 4 without a problem. All you'll see is a warning message from the Mono runtime that you can ignore.

However, Mono 4 also ships with version 4 of an assembly called Mono.Data.Sqlite. VRS expects to see version 2 of this assembly. If you get an exception when you start VRS that says

SQLiteConnectionStringBuilderWrapper does not implement ISQLiteConnectionStringBuilder

then it's because VRS cannot load Mono.Data.SQLite.

This can be fixed by adding a configuration file to the same folder where you unpacked the server. You can download the file from here:

VirtualRadar.exe.config.tar.gz

After downloading decompress it into the same folder as the server (it should contain a file called VirtualRadar.exe.config and it should be in the same folder as VirtualRadar.exe).

Or if you prefer you can create the configuration file yourself - this is what it should contain:

<?xml version="1.0"?>
<configuration>
    <configSections>
    </configSections>
    <startup>
        <supportedRuntime version="v2.0.50727"/>
    </startup>
    <runtime>
        <assemblyBinding  xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Mono.Data.Sqlite"
                                  publicKeyToken="0738eb9f132ed756"
                                  culture="neutral" />
                <bindingRedirect oldVersion="2.0.0.0"
                                 newVersion="4.0.0.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

Installing Plugins

Unpack the plugin's .tar.gz file into the same folder that you unpacked VRS into. Make sure that you preserve the directory structure when you unpack the plugin.

This should create a folder called Plugins (if it's not already there) and underneath that should be a folder for the plugin, which will contain the plugin's files.

Restart Virtual Radar Server and then configure the plugin if necessary.

Installing Translations

The language pack provides translations of the server and plugins. There is just a single language pack tarball that contains all of the translations for every supported language.

The server ships with translations for the web site, you do not need the language pack to obtain these. However, the language pack continues to be updated after the server has been released and it can be used to update the web site's translations.

To install the translations unpack the following file into the Virtual Radar binaries folder. When you unpack the file be sure to preserve the directories:

VirtualRadar.LanguagePack.tar.gz

That should create a folder for each supported language. Restart Virtual Radar Server.

If Virtual Radar Server remains in English after a restart, and if you are sure that the language files are in the correct place (i.e. directly under Virtual Radar Server's folder), then you can force Virtual Radar Server to use a language with a command-line option:

mono VirtualRadar.exe -culture:xx-YY

xx-YY is the ISO country and language code. For example:

mono VirtualRadar.exe -culture:de-DE (to use the German translation)
mono VirtualRadar.exe -culture:fr-FR (to use the French translation)
mono VirtualRadar.exe -culture:ru-RU (to use the Russian translation)

Running Without a GUI

You can start Virtual Radar Server without a GUI by supplying the -nogui switch on the command-line:

mono VirtualRadar.exe -nogui

However, when you run without a GUI you can't configure the site. To add configuration support you will need to install the Web Admin plugin, which you can download from here:

Web Admin Plugin Tarball

The Web Admin plugin can only be accessed by administrator users. You can create an admin user from the command line by using the -createAdmin and -password switches:

mono VirtualRadar.exe -nogui -createAdmin:name -password:password

Note that there is no space around the colons in -createAdmin and -password.

Once you have an administrator user configured you can reach the Web Admin pages at this address (replace 127.0.0.1:8080 with the correct address and port for your installation):

http://127.0.0.1:8080/VirtualRadar/WebAdmin/Index.html

Missing Features and Known Bugs

There are some things that are not quite polished in the Mono version of Virtual Radar Server and some things I will never be able to fix.

Audio does not work. Mono does not support speech synthesis so it will never work.
UPnP does not work. Virtual Radar's UPnP relies on a Windows-only COM module so that will never work under Mono. However, Mono appears to have its own UPnP library so it could be up and running one day.
The Flight Simulator X link will never work, it relies on a Windows-only library.
Not a bug as such but the "VirtualRadar" part of the website address http://127.0.0.1:8080/VirtualRadar/GoogleMap.htm is case sensitive under Mono on Linux.
Virtual Radar Server does not draw text onto the aircraft markers when it's running under Mono because this can cause problems with libcairo on some Linux distributions. Instead it uses a JavaScript library to display the marker text in an HTML element under the marker image.

This is the largest visual difference between a Windows instance and a Mono instance of Virtual Radar Server.
The aircraft pictures are not anti-aliased. Mono's graphics library does not support the full set of anti-aliasing options.
The Mono version of VRS does not support keep-alive packets. This is because Mono does not support the IOCTL call that VRS uses to configure keep-alive packets. VRS under Mono uses the idle timeouts feature instead.

If you notice anything else, or have questions about installing or running VRS under Mono, please let me know via the forum.

Changing the Web Server Port

By default VRS will listen to port 8080. If you have other software listening to port 8080, or you just want to use another port, then you can change the port via a configuration file.

Start VRS and click Help | About. Click the link to take you to the configuration files folder. For most Linux distributions it will be ~/.local/share/VirtualRadar.

In the configuration folder create a text file called InstallerConfiguration.xml.

Open the file and paste this into it:

<?xml version="1.0" encoding="utf-8" ?>
<InstallerSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <WebServerPort>8080</WebServerPort>
</InstallerSettings>

Change the 8080 in the file to the port number you want to use.

Plugin Support

If you are writing a plugin and you need to know when you're running under Mono then you can use the IRuntimeEnvironment interface to find out:

var isMono = Factory.Singleton.Resolve<IRuntimeEnvironment>().Singleton.IsMono;