Exposing multiple ports


I’m currently attempting to host a mirror of snapdrop.net on Render because the official one experiences frequent downtimes, particularly when I require the tool. I was able to directly deploy linuxserver/snapdrop which exposes at least two, maybe three open ports (80, 443 and 3000), however Render does not properly detect the correct HTTP port as it sends the requests to 3000 instead of 80. Setting PORT to 80 however breaks the app, as it includes the following line:

const server = new SnapdropServer(process.env.PORT || 3000);

My questions:

Only one port of a Web Service will ever be exposed to the internet, specifically the first detected port. The public port 443 (https) will be routed internally to the internal first port, and 80 (http) is redirected to 443 external to your app. Note that all ports are listed in your application’s logs on boot, the first port is the public port. Additional ports can all serve private app-to-app connectivity via direct hostname and port addressing¹, I assume this is incompatible with snapdrop’s design.

¹: Only via apps owned by the same owner, and in the same region. Note that personally owned apps and team owned apps are different owners.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.