server – How should I design a system to share data between small user groups?

I’m working on a character builder for a tabletop roleplaying game I’m designing. The character builder is a .NET library with a console app front end. This front end only supports one user. It loads a text database file and parses it to objects that the user can then interact with and save the file back out. The database file holds both the game rules themselves (the game is customizable) and the entities of the game (items, weapons, armor, characters, monsters, etc).

Currently, this works fine, but only for one user. Since the other users in a game group will also want to view and edit that file, I would like to engineer a way for the information to be shared. That might be accomplished by a server (in Node or ASP.Net, neither of which I have much experience with) or it might be some other kind of method, such as peer-to-peer or via some filesharing api like dropbox or google drive. I’ve never done any kind of server programming and don’t know how I’d have to refactor my program to work with a server.

The backend of my current app creates objects for the game rules and an array of entities. I originally set up the project to save the data to a human-readable markdown file, which is a dump of the game rules first, then the entities.

I imagine that if I were to directly translate this app to a server, I’d need to have individual “instances” for each game group, ie 1 file/database per group, but that seems to imply keeping the data in the server’s memory between sessions. I also imagine that server accounts & logins would be relatively straightforward with either or express.js, but I could be wrong there too.