Docker installation

Overview

Starting with Fonto 7.12, the separate DeltaXML Compare image is no longer required. This release introduces a new diffing engine. Read all about it in the release notes for Fonto Document History 7.12.

The documentation below is split into two parts; one for the post-7.12 setup, and one for releases before that.

7.12 and later

Starting with Fonto 7.12, the Document History backend consists of only one backend Docker image. The configuration API is still private, we are working on stabilizing that. For Fonto 7.12 that means that customers will still have to create a support ticket to get their configured Document History instance. Upgrades are also only done by Fonto. There is currently no FDT support.

Information about running Docker images is available in the Docker documentation. Additionally, the ASP.NET Core documentation regarding hosting Docker containers might come in useful.

Pre-7.12

In a Docker deployment of Fonto Document History, there are two applications that need to be run. These applications need to be running alongside Fonto Editor.

  1. The Changelog Summarization service.

  2. The DeltaXML XML Compare application.

Prerequisites

Please file a support ticket and provide the following details after which we will push the required Docker images to your Docker registry:

  • The Docker image registry URL.

  • Authentication credentials to your Docker registry (e.g. a username & password).

  • Optionally, the Docker image name and image tag for the Changelog Summarization service. Enter these values at the <docker-css-image-name> and <docker-css-image-tag> placeholders when following the instructions below.

  • Optionally, the Docker image name and image tag for the DeltaXML XML Compare application. Enter these values at the <docker-delta-image-name> and <docker-delta-image-tag> placeholders when following the instructions below.

Configuration

This section describes the configuration options available to each application. The configuration options are set as environment variables.

The Changelog Summarization service

We are planning to prefix the environment variables upon a stable (non beta) release of Document History.

This application requires the following configurations options.

Key

Description

Required

Cms:ApiBaseUrl

The absolute base URL of the CMS endpoint . This endpoint must be available to the FontoXML Document History App.

Yes

Compare:ApiBaseUrl

The absolute base URL of the Compare endpoint . This endpoint must be available to the FontoXML Document History App.

Yes

Cache:Redis:Compare

The connection string for the Redis caching cluster for diffs of documents. If not set, standard in-memory caching is used.

For all available options for the connection string, see: https://stackexchange.github.io/StackExchange.Redis/Configuration#configuration-options

No

Cache:Redis:Cms

The connection string for the Redis caching cluster for revisions of documents. If not set, standard in-memory caching is used.

For all available options for the connection string, see: https://stackexchange.github.io/StackExchange.Redis/Configuration#configuration-options

No

The DeltaXML XML Compare service

This application does not expose any configuration options at this moment.

Running containers manually

The following steps start the container manually:

  1. Run the DeltaXML XML Compare image by executing the following command: docker run -p 7001:8080 <docker-delta-image-name>:<docker-delta-image-tag>.

  2. Run the Changelog Summarization service image by executing the following command. Fill in the CMS_API_BASE_URL with the CMS API endpoint and the DELTA_XML_URL with the Compare service endpoint. docker run -e "Cms:ApiBaseUrl={CMS_API_BASE_URL}" -e "Compare:BaseUrl={DELTA_XML_URL}" -p 7000:8080 <docker-css-image-name>:<docker-css-image-tag>.

Docker Compose

We recommend to use Docker Compose to run the application in a single command. The following snippet is an example Docker Compose script which sets up the services:

docker-compose.yml

Other

version: '3.0'
services:
  fontoxml-document-history:
    image: "<docker-css-image-name>:<docker-css-image-tag>"
    depends_on:
      - fontoxml-compare
    ports:
      - "${HOSTPORT}:8080"
    environment:
      - Cms:ApiBaseUrl=${CMSAPIBASEURL}
	  - Compare:ApiBaseUrl=${COMPAREAPIBASEURL}
  fontoxml-compare:
    image: "<docker-delta-image-name>:<docker-delta-image-tag>"

Save this file as docker-compose.yml.

The following environment variables must be set on the machine where you run Docker Compose:

Name

Description

CMSAPIBASEURL

The absolute base URL of the CMS endpoint including a trailing slash. This endpoint must be available to the FontoXML Document History App.

COMPAREAPIBASEURL

The absolute base URL of the Compare endpoint including a trailing slash. This endpoint must be available to the FontoXML Document History App.

HOSTPORT

The port on which the Document History App is exposed on the host.

You can now use the following command to run all the services at once:docker-compose up