Minecraft Manager banner

Minecraft Manager

11 devlogs
23h 58m 58s

A Minecraft server manager with the goal of simple setup, while providing a good player experience.

This project uses AI

Copilot tab complete for python and javascript
AI generated sections are marked in code

Demo Repository

Loading README...

Trey

I have made a github release, and have published an image to ghcr. People can now pull the image without pulling the whole git repo.

Attachment
0
Trey

Shipped this project!

Hours: 23.4
Cookies: 🍪 640
Multiplier: 27.34 cookies/hr

I love how this turned out, even though there is no forge server support, I am proud of how easy this is to use. The hardest part of this project was starting the server process and being able to interact with it as it runs. I learned the basics of process management in python, and reproducible environments.

Trey

TLDR:

  • Fabric server support
  • Running commands through the server page now sends the command through STDIN, not RCON
  • Servers are created faster because logic that required the server to be on is now done on server start
  • You can now delete servers
    Full:
    Finally, fabric server support. You can now create a modded server. It seems like forge support is not possible (at least automatically), as there seems to be no download api. The fabric server automatically installs luckperms, simple voice chat, fabricproxy-lite, and the fabric api. Some mods need extra configuration because they are not able to detect client mods through velocity.
    The server page now has a command bar, which sends commands to STDIN, instead of through RCON, it also has history.
    When a server was created, before, the server would be temporarily started to run a luckperms command, now, that is ran after every start, and saves a few minutes of server creation time.
    Servers can also be deleted now! When you delete a server, the process is killed, and the directory is deleted.
Attachment
0
Trey

There is now a basic file manager, no editing files, but it does let you do everything you would need, with some help. Clicking a folder opens it, and clicking a file downloads it to your computer.

Attachment
0
Trey

Shutting down the host machine now gracefully stops the servers, so you don’t need to worry about manually stopping the servers anymore. There is also an individual server page, that will eventually be used for a file browser!

Attachment
0
Trey

The console was improved, and you can now create a server from the web UI, and it updates velocity instantly. The demo video attached has cuts to keep it short.

0
Trey

You can now stop, start, restart, and run commands from the web dashboard. Logs are streamed to the console (why is socketio so hard to get working), and server status live updates. The app also now automatically sets up geyser and floodgate (including backend servers), so bedrock players can play too.

Attachment
Attachment
0
Trey

No full webui yet, but after a few hours of debugging, the first stack is up. The app will auto generate server and plugin configurations for velocity and paper server softwares, and it configures the proxy to point to the paper server. If you have a domain, it also sets up a forced host with subdomains, so that it can automatically route you to the right server with a subdomain, e.x. lobby.mc.example.com routing to the lobby server. If you give it your Minecraft UUID, it can also give you the * permission on the proxy and all backends using luckperms. The proxy can also route simple voice chat packets to the backend, so any clients with simple voice chat just work. Next is finishing the dashboard and adding fabric and forge.

Attachment
0
Trey

There is now a template, css, and partial backend. Still much more to go, but I now have a template for more pages to be added quicker.

Attachment
0
Trey

There is now a basic (but not working) authentication system and a basic database. Now, if a user attempts going to a restricted page, they are redirected to /login. Hopefully next log will have more content.

Attachment
0
Trey

I have created a planning document with some backend features I want, and it outlines what I would like to do going forward. I have also created a basic init script, that does nothing yet.

Attachment
0