New Runtime V2 + Magic Port Detection

a year ago

Hello all,The Railway team has been hard at work delivering foundational platform improvements to everyone on the platform. Astute users have noticed a new dropdown on the settings page dubbed: Runtime

Railway tends not to concern our users with implementation details, however, in the interest of transparency, we will explain our new Runtime V2 and what we plan for this feature for you and your workloads.Railway's container runtime had limitations in the past where Private Networking will take 3 seconds to initialize.

This is inconvenient for those who expect to connect and communicate with services that are one the same private network.

The new runtime fixes that and brings general improvements to your workloads, one major improvement is magic ports. In the past, setting a $PORT variable was the only way to expose your workloads.

We now have a chance to rectify that.

Runtime V2 aims to become the default at the latest by Aug 31st, of which, we will remove this option.

This thread will keep track of feedback and updates as we undergo the rollout.

Completed

0 Threads mention this feature

12 Replies

ss-wit
BIZCLASS

a year ago

Hi, thanks for the great work on this

Does using runtime v2 mean that this caveat (in attached screenshot) doesn't apply? In other words, for a service running on runtime v2 with "app sleeping" enabled, would a "private network" request be able to wake it? Or is this feature not out yet.

Attachments


a year ago

Both the legacy and V2 runtime support wake over private network, just tested this and it worked, but you should put connection attempts on a retry loop due to the unavoidable cold starts.


a year ago

A timeout of a couple seconds on requests should be sufficient. This is all up to how long your application takes to boot.


coden
HOBBY

a year ago

I have a issue with new runtime V2 with app sleep enabled.

The first http(s) request via browser is allways 502 Bad Gateway,

nexts working normally (until new sleep)
With legacy runtime works well but with new V2 not.
My app is build with custom Dockerfile based on alpine+nginx+phpfpm and the codebase is very small.


a year ago

Thank you for the report, that is a known issue and the team will be looking into it!


a year ago

Thank you for the report, that is a known issue and the team will be looking into it!

I have had the same issue even with V1 runtime. For a developer and their client, this is seen as a major flaw in the eyes of the client when deploying a serverless app like Next.js. It has led me to keep the service always on and never use the app sleep feature.

I think this is the last bit for the Railway team to fix to make Railway the ultimate deployment haven in comparison to other platforms like Vercel.

Anyhow, Railway is my first choice for all my projects and I highly appreciate everything that the team has done so far.


dmsolutionz
HOBBY

a year ago

Hey all I'm trying to expose a bunch of ports in my docker file using the v2 runtime on a custom domain eg:

EXPOSE 443 8080 25 587 465 993 4190

443, 80 seem to expose but no other ports are exposing, Im trying to get stalwart in my railway account. I can configure most of it, but the service won't function correctly without port 993 exposed for example.

Am I just being incredibly dumb here?


a year ago

You would only be able to expose multiple http ports.


dmsolutionz
HOBBY

a year ago

You would only be able to expose multiple http ports.

So theres no way to utilise railway for a mailserver relay (using stalwart)?


a year ago

There would not be, correct.


dmsolutionz
HOBBY

a year ago

Thank you :) ill just keep using RW for directus and move my mail hosting to another provider.


Status changed to Completed unicodeveloper 4 months ago


brody

You would only be able to expose multiple http ports.

connorbp
HOBBY

2 months ago

Is there any intention to add this? Seems kind of essential for any hosting provider, which is what you guys are becoming it would seem no?