Skip to content

OutBlade/mineblade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mineblade

mineblade

A Minecraft server in 60 seconds. No account, no cloud, no monthly fee. Your machine is the server.

License: MIT Platforms Server types: 4 Java: auto Python 3

Windows

Set-ExecutionPolicy Bypass -Scope Process -Force; irm https://raw.githubusercontent.com/OutBlade/mineblade/main/scripts/setup.ps1 | iex

macOS / Linux

curl -sSL https://raw.githubusercontent.com/OutBlade/mineblade/main/scripts/setup.sh | bash

mineblade dashboard


What the script doesDashboardServer typesJavaPort forwardingRequirements


Renting a Minecraft server costs 5 to 20 dollars a month. For a world you play in twice a week with three friends, that is absurd.

mineblade is a single command that turns your own machine into the server. It installs Java, downloads the server jar, writes the configs, opens the firewall, and starts a local web dashboard. Total time from clean machine to running server: under a minute.


What the script does

Step What happens
1. pick server type Vanilla, Paper, Fabric, or Forge
2. pick version latest 8 versions fetched live from Mojang / PaperMC / Fabric
3. install Java queries Mojang for the exact Java version this MC release needs, installs via winget / brew / apt / dnf / pacman if missing
4. download server jar straight from the official source for the chosen type
5. write config eula.txt, server.properties with your chosen RAM and player cap
6. open firewall TCP port 25565 inbound rule added automatically on Windows
7. install dashboard Python HTTP server at localhost:8080, zero dependencies
8. start and open browser the dashboard loads, you click Start, the server boots

No state lives anywhere except ~/mineblade-server/. Uninstall is a single rm -rf of that folder.


Dashboard

After setup the browser opens to http://localhost:8080.

status       online / offline
players      live count from server stdout
console      last 120 lines, auto-refreshing
controls     Start, Stop, restart on failure

The dashboard is a single Python file that streams server.jar stdout, parses player counts out of the MOTD handshake lines, and exposes a small JSON API. It detects UnsupportedClassVersionError immediately and stops the server with an actionable message instead of crash-looping.

It also auto-picks the highest installed Java version, so a server that needs Java 25 does not try to start on a stale Java 17 that happens to be first on PATH.


Server types

Type What it is When to pick it
Vanilla the official Mojang server you want the plain game
Paper high-performance drop-in replacement 4+ players, bigger render distance, faster chunk loading
Fabric lightweight mod loader you want mods, you care about startup speed
Forge heavyweight mod loader the mods you want are Forge-only

Vanilla, Paper, and Fabric are fully automatic. Forge still needs you to drop the installer jar in the server folder manually; Forge Inc. does not publish a clean download API.


Java

The right Java version matters. Minecraft 1.17 needs Java 16. 1.20 needs Java 21. 1.21.4+ needs Java 25. Running the wrong one gives you UnsupportedClassVersionError: class file version 69.0 and an endless restart loop.

The setup script does not guess. It reads javaVersion.majorVersion from Mojang's version manifest for the exact release you picked, then:

1. scans every java.exe on the system: PATH, registry, JAVA_HOME, and
   common install directories (Eclipse Adoptium, Microsoft, Zulu, Corretto)
2. runs each one with -version and parses the major version
3. picks the highest installation that meets the requirement
4. if nothing qualifies, installs via winget / brew / apt / dnf / pacman
5. writes the resolved path to mineblade-server/java.txt so the dashboard
   uses the exact same exe

No reliance on stale session PATH. No silent fallback to a wrong version.


Port forwarding

Friends on the same Wi-Fi can join immediately using your local IP (the setup script prints it). Friends outside your network need port forwarding:

1. find your router IP (usually 192.168.1.1 or 192.168.0.1)
2. log in and find Port Forwarding in the admin UI
3. forward TCP port 25565 to this machine's local IP

Share your public IP from https://whatismyipaddress.com. That is all.

For machines behind CGNAT or a locked-down router, use playit.gg as a free tunnel. mineblade itself only listens on 25565 and does not care how traffic reaches it.


Requirements

  • Windows 10/11, macOS 12+, or any modern Linux
  • 2 GB RAM minimum, 4 GB recommended
  • Python 3 (pre-installed on macOS and Linux; auto-installed on Windows via winget)
  • internet connection for the initial download

No admin account needed. No firewall changes outside the single 25565 rule.


Uninstall

rm -rf ~/mineblade-server

That is everything. Java stays installed because you might want it for other things; winget uninstall Microsoft.OpenJDK.25 removes it if you do not.


Related

claude-code-hooks - safety nets for Claude Code: blocks rm -rf, force-push to main, and API key commits before they happen.


MIT license. By OutBlade.

About

Free one-click Minecraft server hosting on your own machine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors