GameAP Daemon
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
components/server
src
tests
.gitignore
.travis.yml
CMakeLists.txt
README.md
build-debian-buster.sh
build-debian-jessie.sh
build-debian-sid.sh
build-debian-stretch.sh
build-debian-wheezy.sh
build-linux.sh
build-ubuntu-bionic.sh
build-ubuntu-cosmic.sh
build-ubuntu-precise.sh
build-ubuntu-trusty.sh
build-ubuntu-xenial.sh
daemon.cfg
gdaemon.cfg
version

README.md

GameAP Daemon

The server management daemon

Branches Build
develop Build Status
master Build Status

Compiling

Dependencies

Compiling on Linux

git clone https://github.com/gameap/GDaemon2
cd GDaemon2
cmake .
make gameap-daemon

Compiling on Windows

Coming soon

Configuration

Configuration file: daemon.cfg

Base parameters

Parameter Required Type Info
ds_id yes integer Dedicated Server ID
listen_ip no (default "0.0.0.0") string Listen IP
listen_port no (default 31717) integer Listen port
api_host yes string API Host
api_key yes string API Key

SSL/TLS

Parameter Required Type Info
client_certificate_file yes string Client Certificate
certificate_chain_file yes string Server Certificate
private_key_file yes string Server Private Key
private_key_password no string Server Private Key Password
dh_file yes string Diffie-Hellman Certificate

Base Authentification

Parameter Required Type Info
password_authentication no boolean Login+password authentification
daemon_login no string Login. On Linux if empty or not set will be used Linux PAM
daemon_password no string Password. On Linux if empty or not set will be used Linux PAM

Stats

Parameter Required Type Info
if_list no string Network interfaces list
drives_list no string Disk drivers list
stats_update_period no integer Stats update period
stats_db_update_period no integer Update database period

Example daemon.cfg

; Dedicated server list
ds_id=1337
; listen_port=31717

api_host=localhost
api_key=h1KhwImgjTsvaOIgQxxQkbKxzOMfybI1U1p0ALq1NB54hNw0d1X3vVWFXpkZZPDH

; Disable login password authentication
password_authentication=false

; SSL/TLS

client_certificate_file=/path/to/client.crt
certificate_chain_file=/path/to/server.crt
private_key_file=//path/to/server.key
private_key_password=abracadabra
dh_file=/path/to/dh2048.pem

; Interfase list

; Space is delimiter
; Example:
; if_list=lo eth0 eth1
; Default Value: eth0 eth1
if_list=eth0 eth1

; Drives list

; No Spaces in path. Space is delimiter
; Example:
; drives_list=/ /home/servers
drives_list=/ /home/servers

stats_update_period=60
stats_db_update_period=300

Creating certificates

Generate root certificate:

openssl genrsa -out rootca.key 2048
openssl req -x509 -new -nodes -key rootca.key -days 3650 -out rootca.crt

Generate server certificate:

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr

openssl x509 -req -in server.csr -CA rootca.crt -CAkey rootca.key -CAcreateserial -out server.crt -days 3650

Generate client certificate:

openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr

openssl x509 -req -in client.csr -CA rootca.crt -CAkey rootca.key -CAcreateserial -out client.crt -days 3650

Generate Diffie-Hellman Certificate:

openssl dhparam -out dh2048.pem 2048

Configuration:

client_certificate_file=client.csr
certificate_chain_file=server.csr
private_key_file=server.key
dh_file=/home/path/to/dh2048.pem

Clients API