Enketo preview not working - customssl + NAT port 445→443, no reverse proxy

Hi. I am trying to do working the Enketo interface (access to it). I am using Central since a year so now i want to 'see' Enketo. 2 days of searching and trying things. Thanks you.

1. What is the issue?

I self-host ODK Central on an internal server behind a firewall NAT that maps port 445 (external) → 443 (internal). I cannot use port 443 externally because another service already uses it on the same domain.

I use SSL_TYPE=customssl with a valid Let's Encrypt certificate. Everything works (login, form upload, Collect sync) except Enketo previews, which show "Could not connect with Form Server".

2. My configuration

DOMAIN=mysuperdummydomain.org
SSL_TYPE=customssl
HTTP_PORT=80
HTTPS_PORT=443

Diagnostics done:

  • Enketo container reaches Central internally via extra_hosts :white_check_mark:
  • curl from Enketo container returns 1 :white_check_mark:
  • API keys match between service and enketo :white_check_mark:
  • local.json shows "domain": "https://mysuperdummydomain.org"missing :445

3. What I have tried

  • Adding :445 to DOMAIN in .env → breaks SSL (nginx rejects the certificate)
  • SSL_TYPE=upstream with UPSTREAM_HTTPS_PORT=445 → disables native SSL, requires a reverse proxy I want to avoid

4. Question

Is there a supported way to set the public-facing port (445) independently from the internal port (443) when using SSL_TYPE=customssl without adding a reverse proxy?