You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+
## Overview
6
+
7
+
This repository provides a Docker image that combines Apache Tomcat with Let's Encrypt HTTPS certificates. It automates the conversion of Let's Encrypt PEM certificates to Java keystores (JKS) and dynamically configures Tomcat's `server.xml` using XSLT transformations.
8
+
9
+
## Architecture
10
+
11
+
### Certificate Conversion Flow
12
+
13
+
The entrypoint script (`entrypoint.sh`) performs certificate conversion on container startup:
- Pushes to Docker Hub with tags: `latest`, `MAJOR.MINOR.PATCH`, `MAJOR.MINOR`, `MAJOR`
74
+
- Uses QEMU for cross-platform builds
75
+
76
+
## Key Files
77
+
78
+
-**Dockerfile**: Base image from `tomcat:10.1.34-jdk17`, installs xsltproc
79
+
-**entrypoint.sh**: Certificate conversion and Tomcat configuration script
80
+
-**letsencrypt-tomcat.xsl**: XSLT stylesheet for server.xml transformation
81
+
82
+
## Environment Variables
83
+
84
+
All configuration is done through environment variables. See README.md for the full list of supported variables for HTTP/HTTPS connectors.
85
+
86
+
Required variables:
87
+
-`LETSENCRYPT_CERT_DIR`: Path to Let's Encrypt certificates
88
+
-`PKCS12_PASSWORD`: Password for PKCS12 keystore
89
+
-`JKS_KEY_PASSWORD`: Password for JKS key
90
+
-`JKS_STORE_PASSWORD`: Password for JKS store
91
+
92
+
## XSLT Parameter Naming Convention
93
+
94
+
Parameters in the XSLT stylesheet use dot notation (e.g., `Connector.port.http`, `Connector.keystoreFile.https`), while the entrypoint script converts environment variables with underscores (e.g., `HTTP_PORT`, `HTTPS_PORT`) to the corresponding XSLT parameter names with dots and prefixes.
0 commit comments