From 82774429895f2e2306a73b921fa635a4e4596108 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 4 Dec 2025 15:01:55 +0000 Subject: [PATCH 1/2] Initial plan From a2d66a1c639fa8779a990b9c7bc66a5e78b9e119 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 4 Dec 2025 15:06:52 +0000 Subject: [PATCH 2/2] Add configurable HTTP and HTTPS ports for Caddy container via environment variables Co-authored-by: jaredlander <628977+jaredlander@users.noreply.github.com> --- .../shinyproxyoperator/impl/docker/CaddyConfig.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/eu/openanalytics/shinyproxyoperator/impl/docker/CaddyConfig.kt b/src/main/kotlin/eu/openanalytics/shinyproxyoperator/impl/docker/CaddyConfig.kt index fb5a5aa..5baa649 100644 --- a/src/main/kotlin/eu/openanalytics/shinyproxyoperator/impl/docker/CaddyConfig.kt +++ b/src/main/kotlin/eu/openanalytics/shinyproxyoperator/impl/docker/CaddyConfig.kt @@ -59,6 +59,8 @@ class CaddyConfig(private val dockerClient: DockerClient, mainDataDir: Path, con private val fileManager = FileManager() private val caddyImage: String = config.readConfigValue("docker.io/library/caddy:2.8", "SPO_CADDY_IMAGE") { it } private val enableTls = config.readConfigValue(false, "SPO_CADDY_ENABLE_TLS") { it.toBoolean() } + private val caddyPortHttp: Int = config.readConfigValue(80, "SPO_CADDY_PORT_HTTP") { it.toInt() } + private val caddyPortHttps: Int = config.readConfigValue(443, "SPO_CADDY_PORT_HTTPS") { it.toInt() } private val client: OkHttpClient = OkHttpClient.Builder() .connectTimeout(3, TimeUnit.SECONDS) .readTimeout(3, TimeUnit.SECONDS) @@ -101,7 +103,7 @@ class CaddyConfig(private val dockerClient: DockerClient, mainDataDir: Path, con } private fun generateServer(): Map { - val listen = if (enableTls) listOf(":443") else listOf(":80") + val listen = if (enableTls) listOf(":$caddyPortHttps") else listOf(":$caddyPortHttp") return mapOf("listen" to listen, "routes" to generateRoutes(), "tls_connection_policies" to generateTlsConnectionPolicies()) } @@ -277,7 +279,7 @@ class CaddyConfig(private val dockerClient: DockerClient, mainDataDir: Path, con logger.info { "[Caddy] Pulling image" } dockerActions.pullImage(caddyImage) - val ports = if (enableTls) listOf("80", "443") else listOf("80") + val ports = if (enableTls) listOf("$caddyPortHttp", "$caddyPortHttps") else listOf("$caddyPortHttp") val hostConfig = HostConfig.builder() .networkMode(DockerOrchestrator.SHARED_NETWORK_NAME) .binds(HostConfig.Bind.builder()