NewTon DC Tournament Manager v5.0.1-beta.7 — March 29, 2026
Download v5.0.1-beta.7NewTon DC Tournament Manager v5.0.1-beta.7 adds SSL/HTTPS and mDNS support to the Docker image. Camera features (QR scanning via BarcodeDetector/getUserMedia) require a secure context — HTTPS or localhost. This beta makes it straightforward to run NewTon over HTTPS on a local network without an external reverse proxy.
All changes are in the Docker layer. The application itself is unchanged.
Two supported paths:
SSL_ENABLED=true, a self-signed certificate is generated automatically on first start (30-year expiry, persisted in a named volume). Accepts a one-time browser security exception.When SSL is active, port 2020 redirects to HTTPS (default port 443, configurable via HTTPS_PORT).
The auto-generated certificate includes a Subject Alternative Name covering <hostname>.local, localhost, and 127.0.0.1, so browsers accept it when accessed via the mDNS name without a hostname mismatch warning.
The container now broadcasts itself on the local network via Avahi (mDNS/Zeroconf). Devices on the same LAN can reach it at newton.local (or a custom hostname) without any DNS configuration.
The hostname is configurable via MDNS_HOSTNAME (default: newton).
network_mode: host is required for mDNS multicast to reach the LAN. This only works on Linux hosts — Docker Desktop for Mac and Windows runs containers in a VM and does not support host networking on the physical LAN. SSL with port mapping works on all platforms.
Two compose files are provided for SSL deployments alongside the existing HTTP-only default:
docker/docker-compose.yml — HTTP only, all platforms (unchanged default)docker/docker-compose-ssl.yml — SSL with port mapping, all platforms including Mac and Windowsdocker/docker-compose-ssl-mdns.yml — SSL + mDNS via network_mode: host, Linux only| Variable | Default | Description |
|---|---|---|
SSL_ENABLED | false | Set to true to auto-generate a self-signed certificate |
HTTPS_PORT | 443 | HTTPS listening port |
MDNS_HOSTNAME | newton | mDNS hostname → <value>.local |
envsubst not found — gettext package was missing from the Dockerfile. Added to the apk add line./etc/nginx/http.d/ and auto-loaded alongside the generated default.conf, causing a duplicate zone declaration. Templates moved to /etc/nginx/.ssl_session_cache conflict with Alpine nginx — Alpine’s base nginx.conf already declares ssl_session_cache shared:SSL:2m at the http level. Our server block declared it again at a different size. Removed from nginx-ssl.conf.docker/Dockerfile — installs openssl, avahi, avahi-tools, dbus, gettext; copies nginx templates to /etc/nginx/; copies and chmod +x entrypoint.sh; exposes port 443; switches CMD → ENTRYPOINTdocker/entrypoint.sh — new: dbus + Avahi mDNS startup; SSL cert logic; nginx config selection via envsubst; starts php-fpm and nginxdocker/nginx-http.conf — new: HTTP-only configdocker/nginx-ssl.conf — new: HTTPS config with ${HTTPS_PORT} placeholder; HTTP→HTTPS redirect on 2020; HSTS; all existing location blocks and CSP headers preserveddocker/docker-compose.yml — updated: network_mode: host, removed ports, added newton-ssl named volume, documented new env varsdocker/docker-compose-ssl.yml — new: SSL with port mapping, all platformsdocker/docker-compose-ssl-mdns.yml — new: SSL + mDNS, Linux onlyNewTon DC Tournament Manager v5.0.1-beta.7 — Secure by Default.
Download v5.0.1-beta.7For older releases, see the GitHub releases page.