# pegasystems/docker-pega-web-ready architecture

> Architecture diagram of the GitHub repository pegasystems/docker-pega-web-ready, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/pegasystems/docker-pega-web-ready
- Repository: https://github.com/pegasystems/docker-pega-web-ready

## Overview

This repository defines a Pega web-ready Docker image: it supplies a Tomcat-based runtime configured for Pega and intended to be extended with Pega’s application archive and database driver. A separate Java utility reads JDBC and schema settings from the environment, queries the Pega rules database for the platform version, then prints or writes the result. The README documents image customization and deployment; the sampled source verifies the version-checker flow, but does not establish how the entrypoint or individual Tomcat configuration files are wired.

Main entry points: [`Dockerfile`](https://github.com/pegasystems/docker-pega-web-ready/blob/master/Dockerfile) (Image definition), [`versionchecker/src/main/java/com/pega/cmc/VersionChecker.java`](https://github.com/pegasystems/docker-pega-web-ready/blob/master/versionchecker/src/main/java/com/pega/cmc/VersionChecker.java) (Version checker), [`versionchecker/src/main/java/com/pega/cmc/SystemEnvHelper.java`](https://github.com/pegasystems/docker-pega-web-ready/blob/master/versionchecker/src/main/java/com/pega/cmc/SystemEnvHelper.java) (System environment access), [`scripts/docker-entrypoint.sh`](https://github.com/pegasystems/docker-pega-web-ready/blob/master/scripts/docker-entrypoint.sh) (Container entrypoint)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_image["Image definition"]
  node_dockerfile["Image definition"]
  node_entrypoint["Container entrypoint"]
end

subgraph group_tomcat["Tomcat runtime"]
  node_tomcat_env["Tomcat environment<br/>[setenv.sh]"]
  node_tomcat_conf["Tomcat configuration"]
  node_webroot["Root web resources"]
end

subgraph group_version["Version checker"]
  node_version_app["Version checker"]
  node_env_helper["System environment access"]
  node_env_interface["Environment interface<br/>[EnvHelper.java]"]
end

subgraph group_deployment["Deployment dependencies"]
  node_rules_db[("Pega rules database")]
  node_app_archive["Pega application archive"]
  node_jdbc_driver["JDBC driver"]
end

node_builder(("Image builder"))
node_base["Base OS, JDK, Tomcat"]
node_operator(("Image customizer / deployer"))
node_version_output["Version output"]

node_builder -->|"builds from"| node_dockerfile
node_dockerfile -->|"extends"| node_base
node_operator -->|"customizes"| node_dockerfile
node_operator -->|"supplies"| node_app_archive
node_app_archive -->|"copied into image"| node_dockerfile
node_jdbc_driver -->|"copied into image"| node_dockerfile
node_operator -->|"runs image"| node_entrypoint
node_version_app -->|"reads environment via"| node_env_helper
node_env_helper -->|"implements"| node_env_interface
node_version_app -->|"queries version"| node_rules_db
node_version_app -->|"prints or writes"| node_version_output

click node_dockerfile "https://github.com/pegasystems/docker-pega-web-ready/blob/master/Dockerfile"
click node_entrypoint "https://github.com/pegasystems/docker-pega-web-ready/blob/master/scripts/docker-entrypoint.sh"
click node_tomcat_env "https://github.com/pegasystems/docker-pega-web-ready/blob/master/tomcat-bin/setenv.sh"
click node_tomcat_conf "https://github.com/pegasystems/docker-pega-web-ready/tree/master/tomcat-conf"
click node_webroot "https://github.com/pegasystems/docker-pega-web-ready/tree/master/tomcat-webapps/ROOT"
click node_version_app "https://github.com/pegasystems/docker-pega-web-ready/blob/master/versionchecker/src/main/java/com/pega/cmc/VersionChecker.java"
click node_env_helper "https://github.com/pegasystems/docker-pega-web-ready/blob/master/versionchecker/src/main/java/com/pega/cmc/SystemEnvHelper.java"
click node_env_interface "https://github.com/pegasystems/docker-pega-web-ready/blob/master/versionchecker/src/main/java/com/pega/cmc/EnvHelper.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dockerfile,node_entrypoint toneBlue
class node_tomcat_env,node_tomcat_conf,node_webroot toneAmber
class node_version_app,node_env_helper,node_env_interface toneMint
class node_rules_db,node_app_archive,node_jdbc_driver toneRose
class node_builder,node_base,node_operator,node_version_output toneIndigo
```

## Components

### Image definition

- [Image definition](https://github.com/pegasystems/docker-pega-web-ready/blob/master/Dockerfile): `Dockerfile`
- [Container entrypoint](https://github.com/pegasystems/docker-pega-web-ready/blob/master/scripts/docker-entrypoint.sh): `scripts/docker-entrypoint.sh`

### Tomcat runtime

- [Tomcat environment](https://github.com/pegasystems/docker-pega-web-ready/blob/master/tomcat-bin/setenv.sh): `tomcat-bin/setenv.sh`
- [Tomcat configuration](https://github.com/pegasystems/docker-pega-web-ready/tree/master/tomcat-conf): `tomcat-conf`
- [Root web resources](https://github.com/pegasystems/docker-pega-web-ready/tree/master/tomcat-webapps/ROOT): `tomcat-webapps/ROOT`

### Version checker

- [Version checker](https://github.com/pegasystems/docker-pega-web-ready/blob/master/versionchecker/src/main/java/com/pega/cmc/VersionChecker.java): `versionchecker/src/main/java/com/pega/cmc/VersionChecker.java`
- [System environment access](https://github.com/pegasystems/docker-pega-web-ready/blob/master/versionchecker/src/main/java/com/pega/cmc/SystemEnvHelper.java): `versionchecker/src/main/java/com/pega/cmc/SystemEnvHelper.java`
- [Environment interface](https://github.com/pegasystems/docker-pega-web-ready/blob/master/versionchecker/src/main/java/com/pega/cmc/EnvHelper.java): `versionchecker/src/main/java/com/pega/cmc/EnvHelper.java`

### Deployment dependencies

- **Pega rules database**
- **Pega application archive**
- **JDBC driver**

### Other components

- **Image builder**
- **Base OS, JDK, Tomcat**
- **Image customizer / deployer**
- **Version output**

## Connections

- Image builder → Image definition: builds from
- Image definition → Base OS, JDK, Tomcat: extends
- Image customizer / deployer → Image definition: customizes
- Image customizer / deployer → Pega application archive: supplies
- Pega application archive → Image definition: copied into image
- JDBC driver → Image definition: copied into image
- Image customizer / deployer → Container entrypoint: runs image
- Version checker → System environment access: reads environment via
- System environment access → Environment interface: implements
- Version checker → Pega rules database: queries version
- Version checker → Version output: prints or writes
