- docker-entrypoint.sh: always start both Caddy and Python instead of exiting
early for non-root containers; drop Caddy's privileges via gosu (never runs
as root); supervise both processes with `wait -n` and tear down the
container if either one dies
- Caddyfile: add `admin off`; enforce MAX_UPLOAD_SIZE via `request_body
max_size` on /api/* instead of relying on an unused env var
- docker-compose.yml: use explicit MAX_UPLOAD_SIZE=30MB unit
- Dockerfile: merge COPY+chown into a single `COPY --chown` layer for
src/; fix HEALTHCHECK Python one-liner (literal \n was causing a
SyntaxError on every check, so the container never reported healthy)