Single Server Installation
With this installation model, all of the components required to run the GameBench platform are deployed to a single server.
The GameBench platform is composed of:
- Docker Compose
- Credentials for our private Docker registry
- A valid GameBench enterprise license
- Only ports 80, 443 and the port you select for the backend should be externally accessible
- Hardware requirements suggested for production deployments: 8GB of RAM and 2 vCPU
You’ll need your credentials for our Docker registry supplied to you by your account representative. Please get in touch with firstname.lastname@example.org if you are unable to log in and we’ll be happy to assist.
If you have been provided with quay.io credentials:
docker login -u <username> quay.io
Alternatively, please run the following command to load the docker images from the downloaded archive:
docker load < /path/to/web-archive.tar.gz
# Below is just an example, you may use any directory mkdir ~/gamebench cd ~/gamebench
curl -L -s --output gbctlv2 https://downloads.gamebench.net/gbctlv2/latest chmod +x gbctlv2
Before GameBench enterprise can be started, two files need to be created:
nginx.conf. The CLI tool
gbctlv2 takes care of this for you. By default
./gbctlv2 generate-config will ask a series of questions to help set up your configuration. If you wish, you can create the
gamebench.toml file yourself and then run
./gbctlv2 generate-config --no-interaction to skip the questions. Please see the configuration reference.
# Generate gamebench.toml, docker-compose.yml, nginx.conf ./gbctlv2 generate-config
If the server you’re running the command on does not have external internet access, please run the command with the
--skip-version-check option, i.e.:
./gbctlv2 generate-config --skip-version-check
The below answers assume the following:
- The license zip file has been extracted into
- The DNS for gamebench.example.com is set up and pointing to the server
Version GameBench Enterprise version (Default: v2.0.0) (Current: v2.0.0) Frontend host Host frontend is accessible on. The frontend container runs nginx which serves HTML, JS etc. and proxies API calls to the backend container. (Default: ) (Current: ) gamebench.example.com Frontend port (Default: 80) (Current: 80) License directory Should contain the following files: gamebench-license, gamebench-license.RSA-SHA256 (Default: ) (Current: ) /home/example-user/gamebench/license TLS enabled Whether URLs should use https protocol (Default: no) (Current: no) External Redis (Default: no) (Current: no) External Postgres (Default: no) (Current: no) Mail host (Default: ) (Current: ) Mail port (Default: ) (Current: ) Mail user (Default: ) (Current: ) Mail password (Default: ) (Current: ) Mail from (Default: ) (Current: ) Mail secure (Default: no) (Current: no) Bind mount GameBench directory? Use this setting if you want to bind mount the GameBench directory on the host. (Default: no) (Current: no) Publish ports to host (Default: yes) (Current: yes) Administrator email Displayed in the web dashboard update notification (Default: ) (Current: ) email@example.com Enable proxy protocol in Nginx configuration? Only enable this if you have a load balancer in place which expects to communicate with its upstream using the proxy protocol. You may need to restart the frontend container after enabling this: `docker restart frontend`. (Default: no) (Current: no) Enable TLS in Nginx configuration? If you wish to terminate TLS on the server, use this option. In the current directory, create a new directory called `certs` and add the private key (`key.pem`) and cert (`cert.pem`.) The `cert.pem` should contain any intermediate certificates. (Default: no) (Current: no) Sets the maximum allowed size of the client request body. Increase this if you encounter 413 (Request Entity Too Large) errors when uploading sessions. http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size You may need to restart the frontend container after updating this: `docker restart frontend`. (Default: 100m) (Current: 100m) Deploy a separate signup container? A separate signup container is deployed which is accessible on /open-signup. Warning: authentication is not required to use this endpoint. (Default: no) (Current: no) Overwrite docker-compose.yml? (Default: yes) (Current: yes) Overwrite nginx.conf? (Default: yes) (Current: yes) Now run `COMPOSE_PROJECT_NAME=gamebench docker-compose up -d` to start or replace the GameBench containers. After running `COMPOSE_PROJECT_NAME=gamebench docker-compose up -d`, the web dashboard should be accessible at http://gamebench.example.com
# Start the containers COMPOSE_PROJECT_NAME=gamebench docker-compose up -d
Please see our create admin user documentation.
If you’re unable to access the web dashboard, first check that the containers are running:
COMPOSE_PROJECT_NAME=gamebench docker-compose ps
Depending on your configuration, you should see something like the following:
Name Command State Ports -------------------------------------------------------------------------- backend docker-entrypoint.sh node ... Up 5000/tcp frontend /entrypoint.sh nginx -g da ... Up 0.0.0.0:80->80/tcp postgres docker-entrypoint.sh postgres Up 5432/tcp queue_worker docker-entrypoint.sh node ... Up redis docker-entrypoint.sh --req ... Up 6379/tcp
If the containers are up, try to call the API:
The version string should be returned, for example:
If the above return as expected, please check the networking to your server. Perhaps there is a firewall in place preventing access.
Please ensure you take frequent backups.
Please contact us if you need to migrate from a legacy (non-Docker) installation.