b2bitsepam/fixedge-cpp

By b2bitsepam

Updated 9 days ago

The official image of FIX server FIXEdge by B2BITS®, EPAM's Capital Markets Competency Center.

Image
Integration & delivery
Message queues
0

6.2K

b2bitsepam/fixedge-cpp repository overview

Table of contents

What is FIXEdge?

FIXEdge® is an application server by B2BITS®, EPAM's Capital Markets Competency Center, providing FIX connectivity to buy and sell side institutions, exchanges and clearing houses.

It supports all workflows for all asset classes defined in the FIX protocol.

Client applications communicate with FIXEdge via one of multiple supported message protocols (e.g. JMS, IBM MQ, REST) employing transport adaptors.

It is designed to be easy to install, configure, administer and monitor sessions and trading information flows. It is written in C++ and has a performance profile suitable for the needs of all clients up to and including large sell-side institutions and large volume traders.

FIXEdge adheres to the best information security practices defined in FIX security recommendations.

About this image

This image contains standalone FIXEdge® application server .

Administration and monitoring utilities, such as FIX Integrated Control Center H2 (FIXICC H2®) and FIXEye, are distributed separately.

How to deploy FIXEdge in Kubernetes?

Official Helm Charts is the easiest way to deploy FIXEdge and supplimentary tools in Kubernetes. Read more about FIXEdge installation in the EPAM FIXEdge Chart GitHub Repository.

Getting this image

The recommended way to get the FIXEdge Docker Image is to pull the prebuilt image from the Docker Hub Registry.

$ docker pull b2bitsepam/fixedge-cpp

To use a specific version, you can pull a versioned tag. You can view the list of available versions in the Docker Hub Registry.

$ docker pull b2bitsepam/fixedge-cpp:[TAG]

Using FIXEdge image

Getting a license

To run FIXEdge you will need a valid license file. You can obtain a trial license from [email protected].

Quickstart in standalone mode

This image is self-contained and does not require external configuration sources.

A default configuration allows FIXEdge to accept FIX session with parameters:

SenderCompID = FIXCLIENT
TargetCompID = FIXEDGE
FIX Protocol Version = FIX 4.4 
Listen Port = 8901

Assuming you have obtained a license, you can get it running in a few ways.

Using the Command Line
$ docker run \
 --name fixedge \
 -v /path/to/engine.license:/etc/fixedge/engine.license \
 -v /path/to/fixedge-logs:/var/log/fixedge \
 -p 8901:8901 \
 b2bitsepam/fixedge-cpp

Using Docker Compose

Use this template for docker-compose.yaml:

version: '3'

services:
  fixedge:
    image: b2bitsepam/fixedge-cpp:latest
    ports:
      - 8901:8901
    volumes:
      - '/path/to/engine.license:/etc/fixedge/engine.license'
      - '/path/to/fixedge-logs:/var/log/fixedge'

Then run docker-compose up -d.

Configure

In standalone mode FIXEdge consumes all configuration from filesystem. A custom configuration can be mounted to /etc/fixedge folder.

Step 1: Initialize your configuration folder with copy of default configs
$ docker run --rm -v /path/to/fixedge-conf:/tmp/fixedge-conf b2bitsepam/fixedge-cpp sh -c 'cp -r /etc/fixedge/* /tmp/fixedge-conf'
Step 2: Customize your configuration

For more details please have a look at FIXEdge Configuration documentation

Step 3: Run your FIXEdge with custom configuration folder mounted
$ docker run \
 --name fixedge \
 -v /path/to/fixedge-conf:/etc/fixedge/ \
 -v /path/to/engine.license:/etc/fixedge/engine.license \
 -v /path/to/logs:/var/log/fixedge \
 -p 8901:8901 \
 b2bitsepam/fixedge-cpp

You can also do this with a minor change to the docker-compose.yaml file:

fixedge:
  ...
  volumes:
    - '/path/to/fixedge-conf:/etc/fixedge/'
  ...

Enable state persistence

If you remove the container then FIX sessions sequnce numbers and message caches will be lost. To avoid this loss of data, you should mount a volume that will persist even after the container is removed.

For persistence you should mount a directory at the /var/lib/fixedge path.

$ docker run \
 --name fixedge \
 -v /path/to/fixedge-conf:/etc/fixedge/ \
 -v /path/to/engine.license:/etc/fixedge/engine.license \
 -v /path/to/logs:/var/log/fixedge \
 -v /path/to/fixedge-data:/var/lib/fixedge \
 -p 8901:8901 \
 b2bitsepam/fixedge-cpp

You can also do this with a minor change to the docker-compose.yaml file:

fixedge:
  ...
  volumes:
    - '/path/to/fixedge-data:/var/lib/fixedge'
  ...

Enable SSL/TLS

By default FIXEdge accepts unencrypted TCP connections on port 8901. To enable SSL/TLS support you should provide TLS certificates and make configuration changes.

Step 1: Obtain valid TLS certificate and key

Put them to path/to/fixedge-conf folder. For example, you can generate self-signed certificate as well:

$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 -nodes -subj "/C=US/ST=Oregon/L=Portland/O=Company Name/OU=Org/CN=www.example.com"
Step 2: Enable TLS in configuration

Follow guideance in FIXEdge SSL Parameters documentation.

Step 3: Run your FIXEdge with TLS port exposed

Assuming you have configured ListenSSLPort = 8905,

$ docker run \
 --name fixedge \
 -v /path/to/fixedge-conf:/etc/fixedge/ \
 -v /path/to/engine.license:/etc/fixedge/engine.license \
 -v /path/to/logs:/var/log/fixedge \
 -p 8901:8901 \
 -p 8905:8905 \
 b2bitsepam/fixedge-cpp

You can also do this with a minor change to the docker-compose.yaml file:

fixedge:
  ...
  ports:
    - 8905:8905
  ...

A complete example
$ docker run --rm -v $(pwd)/fixedge-conf:/tmp/fixedge-conf b2bitsepam/fixedge-cpp sh -c 'cp -r /etc/fixedge/* /tmp/fixedge-conf'
$ docker run \
 --name fixedge \
 -v $(pwd)/fixedge-conf:/etc/fixedge/ \
 -v $(pwd)/engine.license:/etc/fixedge/engine.license \
 -v $(pwd)/fixedge-logs:/var/log/fixedge \
 -v $(pwd)/fixedge-data:/var/lib/fixedge \
 -p 8901:8901 \
 -p 8905:8905 \
 b2bitsepam/fixedge-cpp

Or use docker-compose.yaml file:

version: '3'

services:
  fixedge:
    image: b2bitsepam/fixedge-cpp:latest
    ports:
      - 8901:8901
      - 8905:8905
    volumes:
      - './engine.license:/etc/fixedge/engine.license'
      - './fixedge-conf:/etc/fixedge'
      - './fixedge-logs:/var/log/fixedge'
      - ./fixedge-data:/var/lib/fixedge'

Resources

Where to get help

Sales Information

Ph: +1-267-759-9000 ext 9
Email: [email protected]

Technical Queries

For technical queries please contact [email protected]


© B2BITS EPAM Systems Company 2000-2025.

Tag summary

Content type

Image

Digest

sha256:35f2b03b2

Size

391.8 MB

Last updated

9 days ago

docker pull b2bitsepam/fixedge-cpp