Caddy reverse-proxies to novelly-web/novelly-api by DNS name, but compose only registered aliases web/api (service names) plus novelly-web-1/-api-1 (container-number suffixed). Any Caddy restart re-resolves DNS and 502s until the alias exists again. Pin container_name so the alias is stable across every redeploy.