Minecraft Manager banner

Minecraft Manager

21 devlogs
31h 11m 45s

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

Shipped this project!

Hours: 7.79
Cookies: 🍪 160
Multiplier: 17.01 cookies/hr

I built Minecraft Manager, a web UI for managing multiple minecraft servers. It handles most of the tedious tasks of setting up the velocity proxy (including each backend server), geyser (for bedrock players), paper for plugins, and fabric for mods, as well as setting up simple voice chat and luckperms, there is so much that can be automated. Right now, most testing was done on 1.20.1 (because of plugin support), but some newer versions should work too as long as each plugin supports them.
This ship focuses on two big features: Multiple users and backup/restore of server data.
Check the readme for how to get this running

Trey

Demo video

Please watch this voters

I made a feature demo video, please watch this instead of writing lazy votes. You should still run it if you can, but if you can’t, this video covers most of the features including:

  • Velocity (and backend server) autoconfig and autoreload
  • RCON commands
  • User accounts
  • Backup/restore
  • Server creation (and automated setup)
  • Start/stop/restart server
    There are still a lot of features not covered here to save time, so you should still run it via the demo if you can.

Make sure to still visit the demo page so your vote counts

0
Trey

Working backups

All the other backup buttons work now. Restoring a backup automatically creates another backup, just incase restoring fails.

Attachment
0
Trey

Backups

You can now backup servers, they are stored in /backups so you can mount them to another drive. Only creating and downloading work right now, but most of the code for the other functions is here.

Attachment
0
Trey

Expiry

Login tokens now expire. They have a duration of one week from grant.

Other

  • Log messages were improved
Attachment
0
Trey

Users pt 2

You can now change passwords of users and delete users.

Other

  • Setting the SERVER_OWNER variable now gives you /op permission
  • docker-compose example in readme was improved
Attachment
0
Trey

Multiple users

Multi-user support is (mostly) here. I’m really tired and had to debug a lot, but we’re here. Only creating users works right now, but they can still login and manage the server.

Attachment
0
Trey

Users

A basic user management page has been created. I have no idea what took me this long.

Other

The readme was improved again

Attachment
0
Trey

Readme

I really want a good storytelling score so I spent time adding links and more detail to the readme.

Attachment
0
Trey

Logging

The logger now uses app.logger instead of just raw print, the server setup script do not (because they are written in bash, not python), so they will still print to console, but that is needed for debugging anyway.

Attachment
0
Trey

Getting back up

My first devlog in two months!

UV

The project now uses UV to manage dependencies, builds are a lot faster, and developing on new machines is way better now.

Readme

The readme now has run instructions. I couldn’t fit the whole thing in the screenshot.

Attachment
Attachment
0
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