127.0.0.1 from inside Docker container is the container's own loopback, not host's. Changed to listen 8080 (all interfaces) so Traefik can reach it via host.docker.internal:8080.
- Fix wrapper scripts: shebang at column 0, no $@ expansion - Fix @/ path alias resolution in compiled JS (tsc doesn't resolve paths) - Fix nginx log dirs (error_log, access_log, nginx.pid) - Add correct env files with proper DB password - Set user:group to gmw for env file access - Tested: all 3 services active & healthy