theflyingbirdsmc / TFB-Network

Probably the best open-source Minecraft server network in the world
https://theflyingbirds.net
Apache License 2.0
8 stars 0 forks source link

Enable everyone to test servers with full plugins #80

Open Fuglen opened 1 year ago

Fuglen commented 1 year ago

By #79, it should be possible to tell which plugins each server uses by its gradle file, where it downloads all the plugins from our Nexus artifactory.

We might never enable everyone to install/remove plugins themselves, but if TFB admins only have to upload new plugins to Nexus, then users can use it in the gradle file.

Problem is: How do we make sure that no one can ever access the plugins that are downloaded from Nexus, while us staff do have access to the files?

The problem with giving plugins to everyone locally is we have no control of our files on their computers. The problem with giving everyone access to a TFB Staging environment is... How is that even done with Git and all?

Fuglen commented 1 year ago

Since I opened this issue I have realized how great Github Codespaces is. It basically hosts our development environment on their amazing servers. It's free but with some hour limit every month, else its pretty cheap too.

To use this for everyone, we still need a way for them to never access some things:

Fuglen commented 1 year ago

Instead of developing remotely on our hardware, when they push commits to their branch, only a Github Runner runs a Dev environment where they can join the server (dev.theflyingbirds.net:randomport) and test. We just need to make sure everything is deleted again, so we keep resource usage down.

lucas2kdk commented 1 year ago

Possible solution could also be to convert our current infrastructure to Kubernetes, and spin up a new "pod" environment for the player with a max keep alive for X minutes. The environment could be created on commit.

Fuglen commented 1 year ago

Something like that would allow multiple users to test their branches at once, but we dont want it to run on Live hardware. But you are right, we want to spin up their environment on our own hardware where the only thing they can access is the Minecraft server itself.