fgms 0.13.5
FlightGear MultiPlayer Server
Installation Guide

This is a short overview about installing the fgms. The reader is assumed to be reasonably familiar with working in a Unix/Linux shell environment.

First, make sure to read about pre-requisites and bandwidth etc in Hosting

The examples below use the following directory structure:

/home/my/stuff < working directory
/home/my/stuff/fgms-0-x < the git checkout of the source code
/home/my/stuff/build_fgms < the temp build directory

Getting & Building fgms

There are currently no 'pre built binary packages' for fgms. Its expected that you have a server that you are in control of, can install packages and compile with root permissions if necessary. Also the install is more focused on *nix style systems which is the primary development platform.
  • You will need the build tools cmake and make, and also g++ to compile the fgms application. These can usually be found in the package manager for most the common Linux distributions.
  • You will also need the git client to fetch the source code from the repository.
  • Once the build tools are installed on your machine, create a directory to hold the source code.
    mkdir ~stuff
    cd ~stuff
  • Now clone the source code with git
    git clone https://git.code.sf.net/p/fgms/src fgms-src
  • Create and enter a temp directory (this is where all the compilers working files will be written to) and configure using cmake
    mkdir build_fgms
    cd build_fgms
    cmake ../fgms-src
  • At this point you should have a working fgms binary in the build_fgms/ directory.

Setting up the config file

  • Create and edit a Configuration file according to the instructions found in example.
    cp ../fgms-0-x/src/server/fgms_example.conf ./my-test.conf
    > edit ./my-test,conf
    If the server will be offline or for private use (i.e. LAN-only, please comment out the relay servers section. This will save bandwidth from the server being consumed.)

Run fgms for the first time

./fgms -c ./my-test.conf

In addition to its configuration file, fgms supports a number of configuration parameters that can be passed at startup (and that will by default override any configuration file settings), to get a summary of supported parameters, you may want to run:

./fgms --help
By default the file names and options are: fgms.conf - for config fgms-exit, fgms-stat - as the file interface files fg_server.log - as the log file

Installing and Running

For a system wide install you will need root (sudo) permissions

cmake ../fgms-0-x
su make install

By default fgms installs to:

  • /usr/bin/fgms - the executable
  • /usr/etc/fgms.conf - the config file (SYSCONFDIR, DEF_CONF_FILE)
  • /var/log? - the log file

Install Options

  • There are other options that can be used during the build process.
  • For all the options, see the README.cmake file

Server #2

Normally, the requirement is for one production server, however there is a situation to run both a production and test, ie a second server. To build a second server configuration, use:

cmake ../fgms-0-x -DBUILD_SERVER2:BOOL=TRUE
  • The defaults are: - fgms2.conf, fgms-exit2, fgms-stat2, and fg_server2.log
  • Traditionally
    • ports 5000 / 5001 - used for production udp and telnet
    • ports 5002 / 5003 - used for test udp and telnet

Tracker Install

By default, the Tracker Server is not build.

  • A postgres database and its header files need to be installed (currently postgres is the only database supported)
  • The ::DEF_IP_ADDRESS, ::DEF_PORT, ::DEF_USER_LOGIN, ::DEF_USER_PWD and ::DEF_DATABASE macros need to be set*
  • To enable this option use:
    cmake ../fgms-0-x -DBUILD_TRACKER=ON
See also
README.tracker file and create_db.sql

RunTime and Startup


Do not run as deamon as supervisor will deamonize