Introduce a Discord bot to replace the panel

  • good evenorninoonnnight

    its come to my attention that we now have a "panel". this is bad for a multitude of reasons, and it has clearly caused a problem with development to an extreme degree and now everything, past present and future, has come to a standstill and frankly its gone on too long.

    first off, nobody wanted a panel. nobody asked for a panel, and nobody ever even suggested wanting one. this was done of ryan's own accord and I don't frankly understand it. he did it purely out of nowhere for what I assume to be selfish reasons, I can guarantee he is probably adding all his buddies to the panel access as we speak. or ry, fuck ry to be fair

    second it barely works. ryan likely did this on purpose. he removed the discord bot so we couldn't administrate remotely, which severely dampered admins abilities to administrate remotely which in my opinion is pretty unacceptable, the bot worked 100% of the time and never really failed. i don't personally see any issue with the bot and I know you, yes you, the one reading this, did not either.

    basically I think we should reintroduce the discord bot. nobody wanted it gone, and it was clearly ryan being abusive.

    52-CEF3-CF-C4-FF-4798-8469-4-BDCA5-D35247.jpg

  • I formally suggest that we reinstate some sort of Discord bot (https://discord.com)

    Here's why:

    • It is already integrated with the server and we'll have to remake everything
    • The current "solution" we have is that the server is running in a VM under the Atlas infrastructure. The server is ran directly through a screen instance. This has multiple problems which I will now list:
    • You can't scroll through the logs using screen. This makes looking through the logs, well, impossible. As a developer that's what I spend half of my time doing. The only solution is to manually look through the logs in the logs folder.
    • No start or stop commands. Pterodactyl isn't able to stop OR start the server at all. The Discord bot is automatically able to restart whenever Paper hangs because that is controlled separately. The panel will now only restart the server if it is gracefully stopped (stopped using the /stop command). If it crashes, we have to resort to using some "kill" button from the panel somehow seems like the hackiest solution ever and has weird instructions like only run it once or else it'll kill the entire VM. This isn't an issue with the Discord bot which simply has a "Kill" command.
    • A centralized place to manage backups, databases, and SFTP
    • Port forwarding is done automatically. Just now, the beta server does not work. This was because of two reasons. One, the server.properties was still binding to 25565 and it still didn't work when changing it to what the port is supposed to be. I assume the port is not firewalled correctly. The Discord bot will automatically update the server.properties file to what the correct server port should be. It will also automatically port forward the correct port through iptables, which as of now has to be done manually by Wild (and it didn't get done).

    I've been told by Wild that the reason we won't use a Discord bot is for three reasons:

    1. We're running the server in a VM and Docker will not run on it
      I suggested separating TotalFreedom from Atlas' infrastructure. We've only had issues since moving to it with slow read/writes on CoreProtect and the forums being slow. Moving TF to a dedicated server has many benefits. Firstly, everything is centrally in one place, and therefore, more secure. Everything can be binded from localhost, so we don't have to go around exposing everything on the internet (regardless if there's a secure password or not). It also allows for less downtime. Everything is under a separate VM. The forums, server, and whatever else are all separate. This is, frankly, ridiculous as that means patching multiple OS's and keeping dependencies in sync. Running everything under one dedicated server allows for significantly less downtime as whenever an OS patch is needed, you only have to do it once. Finally, it gives us more flexibility on where we can get the server from. The server locations are mixed all over the place from Canada (The forums are hosted with OVH) and France (the server, which is hosted on Hetzner). We can locate a server that's demographically appropriate for TF so we don't have long ping times.
    2. Docker is less efficient
      I don't think this is true at all. If there is any performance impact, I think it's very negligible. Running the servers in Docker is also much more secure as it is strictly off limits from all the other files on the system. Using Docker allows much more flexibility as well. Want to update Java? Just pull in the correct Docker image. You don't have to change the OS version of Java. The Docker images (at least mine, which are better than the default in my biased opinion) run Alpine Linux. The Docker container is extremely small at 65MB.
    3. We only use it for starting and stopping the server
      That's not true. Just look above. The Discord bot does all of the technical stuff for us, offers much more security, and actually has a console that's scrollable. While it's true that most people used it to start / stop the server, it also allowed admins to have easy access to the console. It's possible to limit executing commands so that you can't (you can only view the console). This can be very useful for grabbing IPs for permban requests rather than downloading the logs or relying on telnet.

    I understand that Wild has lots of sysadmin experience. What I've heard is that he does stuff because that's "the best way to do it". Well guess what, this is a Minecraft server, not an enterprise company. I think that ultimately it's more important to be flexible on what infrastructure you're willing to setup rather than what's technically the best on paper. It really isn't hard to secure a Discord bot. All you have to do is change the default SSH port, not use root for everything, install fail2ban, and optionally use a IP whitelist (you can only SSH in from my home IP or my VPN). Wild already has some of these securities in practice, and that's frankly all you need for a Minecraft server. (And common sense of course). This suggestion is to bring back the Discord bot, its integrations with TF, and (consider) moving all of TF to its own dedicated server and keeping it separate from Atlas. Doing this also has many benefits. That would actually allow there to be an official TotalFreedom VPN required to access the server if desired. This is a lot better than relying on the Atlas VPN where traffic can be monitored, and more importantly, you have to sign a NDA to access the VPN. I did not sign the NDA because I don't really want to be giving out my full name and home address.

    TL;DR: Bring back the Discord bot

    Edit: adding clarification that this is a joke and I'm mocking my suggestion to use a panel