Private Networking Port

faeyumbrea
PRO

23 days ago

When using private networking between services, how do I determine the port the app is listening on if no PORT variable is set in the app config?

Solved$10 Bounty

0 Replies

faeyumbrea
PRO

23 days ago

N/A


The app is going to have to tell you.


Usually you can either define their variable or look up their documentation to find what the default is


Can I ask what service you're asking about?


faeyumbrea
PRO

23 days ago

It's an axum server I wrote myself, it will obey a port variable and I know Railway sets one, I just can't reference that value in another apps config without setting it myself


Yeah. You'll have to set it. That's standard.


Also I ❤️ axum


Pretty sure 3000 is default


faeyumbrea
PRO

23 days ago

3000 would be default if following the axum tutorial that is true, but it states somewhere in the railway docs that railway will set a PORT variable for networking. I guess its intended for you to set it if you need the application running on a specific port


Yeah, but in order to support that your app also has to be set up for it. Here's the "correct" way to do that in Rust:

let port: u16 = std::env::var("PORT")
        .unwrap_or_else(|_| "3000".to_string()) 
        .parse()
        .expect("Failed to parse PORT");

faeyumbrea
PRO

23 days ago

Yeah, it does that, I am also creating an IPV6 tcpsocket


awesomesauce


23 days ago

you could use shared variables and expose the port variable?



faeyumbrea
PRO

23 days ago

Yeah, I've gone and done that now, it was just surprising to me that the automatically attached port variable is not exposed at all, only if the user explicitly set it


Doesn't need to be a shared variable


It can just be a service variable that you reference


faeyumbrea
PRO

23 days ago

I got it working, thanks for the input!


Status changed to Solved brody 23 days ago


16 days ago

!s


12 days ago

!s