Norn banner

Norn

11 devlogs
52h 9m 57s

A simple but versatile selfhosted minecraft servers panel.
Demo username: flavortown
Demo password: flavortown
The demo server is actually joinable at mc.serjura.com (Java Edition 26.1.2)
I made this because I don't like how craftycontroller a…

A simple but versatile selfhosted minecraft servers panel.
Demo username: flavortown
Demo password: flavortown
The demo server is actually joinable at mc.serjura.com (Java Edition 26.1.2)
I made this because I don’t like how craftycontroller and pterodactyl work.

This project uses AI

Used codex for debugging and scaffolding, but most of the code was written by hand and pain.

Demo Repository

Loading README...

shellawa

Shipped this project!

Hours: 52.17
Cookies: 🍪 857
Multiplier: 16.42 cookies/hr

I built a minecraft server panel named norn, I’m planning to actually continue developing this to surpass craftycontroller - the one I’m using but not quite happy with it.
But then I slacked for 2 months, so I had to reduce the scope, and now we have norn!
It’s built with sveltekit!

About the optimization sidequest, not sure if it can be called optimization, I used svelte-sse to send events from the server side without needing a whole new websocket (which would be wasteful)
The minecraft server management use a singleton design pattern, which I learned in my oop class, to store the instance of server and access them whenever needed!
The demo panel is being routed through cloudflare, with efficient http caching. Well, the wholething is bundled with vite so the bundle size would be quite small (everything is optimized through here lol), though not matter for a node application I guess.

shellawa

after fixing neoforge being an installer instead of a normal server.jar, I spent about an hours figuring how to do the same with forge, but I gave up. So forge is disabled for now.
I might manually map forge versions later, the current jar name scheming of forge is just, random.
The attachment is some of the server I created for testing (there’s even more)

Attachment
0
shellawa

added startup scripts, and Dockerfile
the panel will now use managed java with automatic java installation

Attachment
Attachment
0
shellawa

I made the console render log colors correctly, as well as repeating the console command to the log line

Attachment
0
shellawa

I added actual resouroce monitors, as well as charts showing history.
I’ve also made the configuration page.
The only thing that’s bugging me is that the console can’t display colored text yet, and modrinth integration and other stuff.

Attachment
Attachment
0
shellawa

I added basic authentication.
The first one to visit the panel will be prompted to make a account, then after that they can use that credientials to sign in to the panel.

Attachment
Attachment
1

Comments

shellawa
shellawa 3 days ago

This should’ve come much earlier because it was so easy to do with svelte hook lol I thought it would be hard, now there’s not much time left :(

shellawa

I added server creation dialog.
I wrote providers for each server provider (vanilla, fabric, etc…), then wire them to the frontend.
After spending way too much time debugging the reactive state and sse randomly reconnecting by hand, I have to rely on codex to do it for me, thanks codex.
I might add modpack installation but there is not much time left :(

Attachment
0
shellawa

In this devlog, I made the file manager page.
I tried to make it as feature-complete as possible, which is why I’m writing this devlog at 4AM lol.
There is file table listing, searching in current dir, pagination, folder creating, file uploading, item deletion, file viewer (with codemirror, not sure if I want to use other thing), breadcrumbs, back button.

Attachment
Attachment
Attachment
Attachment
0
shellawa

finally have my internet back (hopefully the devlog will not cut off the time to 10hrs)
in this devlog, most of the time has gone to the file manager, but that is not finished yet and I have to made a dev log as soon as I have internet back so this is the current state of the panel
I made a redesign of the dashboard, change the theme, redesigned the overview and console page of the server panel (with some mock data, they are not there yet).
I also add the ability to send commands through the console, although looking back on writing this I should’ve add the commands themselves to the log of the server, too.

the plan is that I will finish the file manager, then make the panel detects the status of the servers, and at last the configuration page before making the server creation page (that will be hard, not sure if I can finish this in like, 2 days lol)

Attachment
Attachment
0
shellawa

I made the db layer, the panel will use sqlite3. Then I also made a basic multi server dashboard.
I really want to make a good design with better styling, the current one just look odd.
Yes I have slacked for 2 months.

Attachment
Attachment
0
shellawa

I made it run a server, and stream the logs in real time.

Attachment
0
shellawa

I scaffolded the minimal svelte kit template, add shadcn-svelte, and made a few layout work.

Attachment
0