Installation & Setup Server
The example server provides the three visible artefacts of the project as containers: this documentation site, the sample insurer (the services) and the sample broker (Installation & Setup Client). Everything sits behind one entry point, one host and one port, so that the documentation can link to the running sample broker and the client reaches the services without any cross-origin configuration.
The sample insurer runs three times, once per example insurer: a running instance is exactly one insurer with its product catalogue and its tariff. This lets a broker be tested against several insurers, as practice demands.
Source: docker-compose.yaml, Dockerfile_Server, Dockerfile_Client and Dockerfile_Docs in the root of the
repository; the nginx configuration of the entry point is reference/sample-broker/nginx.conf.
Public example server
An example server runs publicly at https://kapdion.com/omds-ld:
| What | Address |
|---|---|
Documentation |
|
Sample broker |
|
Interface Disrupto |
|
Interface Anglo-American |
|
Interface Pfefferminzia |
|
MCP servers (Streamable HTTP) |
|
Chatbot with the MCP servers |
The links of the interfaces lead to the product list (listProducts). The business cases are held only in the memory
of the instance concerned; a new deployment discards them.
Prerequisites
-
Docker with Docker Compose (Compose V2, command
docker compose). -
Network access while building: Maven and npm dependencies as well as the UI bundle of the documentation are downloaded during the build.
-
Nothing else – neither a JDK nor Node.js nor Maven has to be installed on the server; the images build everything themselves.
Start
docker compose up --build -d # build the images and start all containers in the background
docker compose logs -f # follow the logs
docker compose down # stop and remove all containers
The first build takes a few minutes (Maven build of the sample insurer, Angular build of the sample broker, Antora build of the documentation). The sample insurer keeps its business cases in memory; a restart or rebuild discards them.
Services, Paths and Ports
| Service (Compose) | Content | Reachable at |
|---|---|---|
|
Sample broker (Angular) with nginx as the entry point |
Host port |
|
This documentation (Antora site) |
only through the entry point: |
|
Sample insurer playing Disrupto |
|
|
Sample insurer playing Anglo-American |
|
|
Sample insurer playing Pfefferminzia |
|
The three instances of the sample insurer come from one image; which example insurer an instance plays is set by
the environment variable SPRING_PROFILES_ACTIVE (disrupto, angloamerican, pfefferminzia). Inside the container
every instance listens on port 9090; from outside they differ by their path at the entry point and by their direct
host port.
The path /omds-ld/api/ stays as an alias for Disrupto: for tools, the liveness check of the info page and existing
instructions. New clients address the instances through /omds-ld/insurers/<name>/api/; the sample broker knows these
paths as the defaults of its insurer list.
A request to http://<host>:9081/ redirects to the start page of the documentation. The sample broker is linked from
there.
The direct host ports (9080, 9082, 9083) are meant for tools that address an instance without the entry point,
such as validators, self-tests or a sample broker on another host. Every instance allows cross-origin requests to its
services. A business case id is only valid at the instance that issued it.
Automatic Deployment
A push to the branch master rebuilds the images and replaces all containers (docker compose up -d --build, Gitea
workflow .gitea/workflows/build-deploy.yaml). The runner runs on the example server itself; no further
configuration is needed.
Locally Without Containers
For development the sample insurer also runs directly from the repository, one instance per example insurer:
mvn spring-boot:run -pl reference/sample-insurer # Disrupto on :9090
mvn spring-boot:run -pl reference/sample-insurer "-Dspring-boot.run.profiles=angloamerican" # Anglo-American on :9091
mvn spring-boot:run -pl reference/sample-insurer "-Dspring-boot.run.profiles=pfefferminzia" # Pfefferminzia on :9092
The services are then available at http://localhost:909x/omds-ld/api; the info page at http://localhost:909x/
names the example insurer of the instance. For most work the Disrupto instance is enough; the development server of
the sample broker forwards the three paths /omds-ld/insurers/<name>/api to the ports 9090, 9091 and 9092 (see
Installation & Setup Client).