meta-server

Michael

Moderator
Contributor
Architecture
#1
I've been working on a slight rework of the meta-server. I decided to rework the implementation with DropWizard and port the existing API over. I've been working on adding some basic migration support and also reorganizing the database portion of the application. One thing I'm not sure about is what to do with the Freemark HTML stuff. I was thinking about moving it to a client that queries the rest interface and displays the appropriate content. Another idea was to add these endpoints the Terasology.org site as a subpage under Terasology.org/modules. It's also possible to host this on an entirely different subdomain.

What I want to work out is what could the meta-server host in terms of content. Should users be able to register a GitHub repository and we could build and provide the jars for modules. could there be a wiki section that lets users modify documentation of the module or should that be shifted to something like MediaWiki. My basic goal at the moment Is just to make the implementation more flexible to work with. There is also a server portion of the server that provides a list of Terasology servers to connect. Could this be extended to also host user servers? open RCT and openttd offer this service but I'm also aware that user hosted servers can be questionable.

https://github.com/pollend/meta-server/tree/meta-server-dropwizard
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
#2
IMHO the meta server should remain both minimal and optional. I'd even be happy to see it somehow crammed into a GitHub page for better hardening, but maybe that's crazy.

Extensive stuff like module browsing / ranking, wiki, and so on is out of scope for the meta server. That's a whole separate thing.

If at all possible I don't want to see a MediaWiki or any other official self-hosted wiki. We already have the GitHub wikis and they're guaranteed to be up and use our most natural user system (GitHub). Actual players can make third party wikis all they want, but they're not official and they wouldn't add to our maintenance burden.

The fewer disparate technologies and sites we adopt the better. Work does talk and if somebody is willing to roll something new and both maintain it and make it easier for others to help maintain as needed then that's an option.

The current server listing is already including user servers, they just have to ask to be listed (which is pretty rare). Automatically letting such entries get added .. yeah that's a can of worms.

For a short summary/overview/planning thing:
  • A bunch of stuff on GitHub - the more the better. This is super hardened and convenient. Markdown all the things.
    • This includes some wikis and stuff
    • GitHub Page powering terasology.org - general splash site. @smsunarto's thing, with the alternative option by your friend floating around somewhere too
    • GitHub Page powering metaterasology.github.io (terasology.io) - developer documentation, release managed, matched versions, etc. Right now that's Sphinx and it does work, but concerns have been raised if it is easy / similar enough in syntax and usability vs for instance wikis (most the custom docs there, as in not Javadoc, are converted from wiki pages). Mostly @oniatus' thing
    • Future GitHub page powering some domain with a module listing site of some sort, of intermediate complexity: user-facing friendly info about what modules exist, what do they contain, and how to use them (probably not so much ranking etc. Maybe download stats via GitHub releases)
  • Meta server with the module index of sorts for the game (and launcher) to consume to provide enhanced user functionality. Presently hosted by @msteiger and as noted somewhat custom. Grew out of a tiny thing as these things tend to. We probably need this in some way, somewhere, and my earlier idea of just having a json file in a GitHub repo (or attached as a release file) might not quite cut it. Could grow a bit to expand available API (like better game server details)
  • Telemetry and user management - mostly GSOC projects. Custom servers using mainstream software like Kibana, Swagger, etc. Users can host their own, we host a central official version.
  • Individual game server facade sites for administration and such. Contributed in the last GSOC and needs more attention. Can't remember much about the tech, but this would host with the game server and not be some site we ourselves host
  • Larger and more complex module browsing site with rankings, user comments, etc. Probably comparable to the Curse/Forge/whatever thing. A whole site of its own, with a database, can't just be a GitHub page. Considering this somewhat low priority with a desire to focus on the intermediate thing on GitHub first
 

Michael

Moderator
Contributor
Architecture
#3
So you can host the static part of the site of the site on github to save a bit in that regard and then the rest can be handled by some form of API.