This user has been banned.

Stats

1
Projects
20
Devlogs
24
Votes
1
Ships

Coding Time

All Time: 197h 8m
Today: 2h 14m

Member Since

June 16, 2025

Badges

2
🚢
Maiden Voyage
you shipped your first project! the journey begins...
🎨
Graphic Design is My Passion
Oh God How Did This Get Here I Am Not Good With Computer

Projects

1
MCManager

MCManager

Shipped
20 devlogs about 2 months ago

Activity

MHanak
MHanak worked on MCManager
3h 28m 10 days ago

I've added a profile page, which displays user info, as well as their limits

Update attachment
MHanak
MHanak worked on MCManager
2h 41m 10 days ago

i did some fixes to the console, and got custom world icons working on the minecraft side

Update attachment
MHanak
MHanak worked on MCManager
8h 37m 12 days ago

Added the proper console, which utilizes SocketIO (I will deploy it tomorrow)

Update attachment
MHanak
MHanak worked on MCManager
9h 37m 14 days ago

Made the UI more responsive
Added a console placeholder
some other minor improvements

Update attachment

Did a bunch of things:
<br>
Switched my minecraft proxy from Velocity to Infrarust. this gives better compatibility and performance
<br>
Added recursive queries: instead of querying for the world, getting the version id, querying the version, getting the loader id, and finally querying the loader, the backend can recursively query values, and return all of them at once
<br>
Improved caching

Update attachment

Apart from some boring backend changes, i have added world icon uploads to the frontend.

Implemented the server.properties editing in the frontend, together with limits on what users can edit. the server admin can configure the values users can edit, as well as limit the values they set (all enforced server-side of course). In the video, on the left there is a user with almost no restrictions to editing, and on the right is a standard user with default restrictions.

There was also a bug where only one operation on any world could be performed at the same time, meaning if user was to delete a world, which takes around 10 seconds, other requests trying to get the status of any other world would have to wait for that deletion to finish. this is now fixed.

Ah also scrolling and toasts are broken on chromium no idea why

Heyy i think i'm starting to get the hang of this. Now you can create and start a server all from a UI

(in the video @0:40 you can skip to 1:00)

- Improved the world creation screen

- Implemented proper world images (no uploads done in the frontend yet)

- New /world/{id} page

- World option editing

- World starting/stopping

- Some minor backend changes

Spent like 4 hours trying to get shadcn to work

added the world creation screen, world list and a theme switcher

- Migrated from warp to axum (suspiciously painless)
- Added icon uploading and downloading in the backend (with support for animated icons!)
- Sessions, users and groups are now cached

Added a registration screen
* the registrations screen varies based on server settings (whether it requires an invite link or not), it can also include a custom message (which i forgot to include in the video).
* invite link is checked before account creation, and locks the form if it is invalid (through a public API endpoint)
* Redid the input forms
* added input validation
* the app checks if the username is taken (through a public API endpoint)
* Improved styling and made the app fit mobile screens

Started working on the front-end. i have settled on Vue, as i couldn't find a decent way of fetching data from the API when not pre-rendering the page in SvelteKit

Added PostgreSQL support.

Update attachment

Now the sqlx-based code actually works. i mostly rewrote the database code to utilize a custom query builder

as a side effect, query filters now work better, and allow for < and > operands, as well as dates and base64 encoded blobs (haven't tested this one). they now also actually validate the filter data

Update attachment

Switched the database library from rusqlite to sqlx

Lost my sanity

The code still doesn't work

GIF unrelated

Update attachment

Added the feature of account creation using an invite link. this marks the API being fully implemented, which means i can start working on the frontend now.

oh also now removing users actually removes all of their worlds and mods

Update attachment

Now when the backend server is first launched, it will initialize the folder structure, prompt the user for the username and password of the default admin account, and then download the latest version of velocity

I have also revamped the permission system. Now instead of the permissions being stored per-user, users are assigned to a group, which holds their permissions. this makes managing large amounts much easier

Update attachment

Now the Minecraft servers themselves can be hosted on a separate machine from the API server.
This is an important stepping stone towards hosting containerized Minecraft servers with Kubernetes

Update attachment

updates:
* changed like 1/3 of the codebase to be asynchronous
* lost my mind
* remote server still doesn't work
* @channel i may be going insane

Update attachment

I've made the velocity proxy traffic to the correct server based on the hostname, and:
* added server.properties editing
* improved app config handling

Update attachment
MHanak
MHanak created a project
53d ago

MCManager

[YOU CAN ACTUALLY USE THIS TO PLAY MINECRAFT RIGHT NOW! THERE IS NO FAKE BACKEND LIKE MOST PROJECTS HAVE] [this is mostly a backend project, and i spent most of my time writing that. there is a bunch of things that are in the backend, but not frontend] A Minecraft server management platform written in Rust and a Vue frontend (although the API is frontend agnostic). It supports multiple Users, with each having their own limits on how many worlds they can have, and resources they can use.

MCManager
20 devlogs 4 followers Shipped
MHanak
MHanak joined Summer of Making
55d ago

This was widely regarded as a great move by everyone.