Listen address now set by PORT environment var (falls back to 8080)