Architecture
Traefik (Reverse Proxy)
→ SSL termination
→ Routing to services
Frontend (nginx:alpine)
→ Static files
→ Network: web
API (http-echo)
→ Backend service
→ Networks: web, internal
Redis (redis:7-alpine)
→ Internal service only
→ Network: internal (not exposed)