Moving the OSS to actually work online?

Without the use of the OnlineSubsystem, I’ve successfully managed to have a packaged dedicated server running on a remote VPS machine, and have clients connect to it via the Open [ServerIP] console command. And using the OnlineSubsystem (Null, not Steam), I’ve successfully performed LAN session hosting/searching/joining, and I’m trying to move up to having a remote dedicated server which acts as a session host that client sessions can search for and connect to.

The problem is, I’m not sure how this kind of architecture is supposed to work when both server and client share the same code. Even more so, I’m not entirely sure how clients are even supposed to find online sessions if no server IP has been addressed.

Anyone care to fill me in on how to move from LAN/P2P sessions to online sessions?
I’ve been poking around in the ShooterGame code, but it’s a bit overwhelming when I’m just looking for basic OSS setup.

I just found out that OnlineSubsystemNull only works on LAN, and you need to use an underlying subsystem (such as Steam) to get internet-hosted games to work. I was hopeful that I could run my own dedicated server without the need for Steam, and still be able to search for sessions etc, but unfortunately it seems like that would require writing my own subsystem, or non-UE-related server-side code… I’m getting the impression that It’s much easier just implementing a pre-existing OSS platform, or using a plugin like Advanced Sessions to get the job done.

If anyone can prove otherwise, please do so and I’ll accept it as the correct answer.