Git Product home page Git Product logo

mcserver_installer's Introduction

Minecraft Server Installer Script (Vanilla,Forge, Spigot & Paper) 1.7.X - 1.21+

About the project

With this project, my goal was to make installing Minecraft servers, no matter if they are Vanilla, Forge, Spigot or Paper, as easy and beginner-friendly as possible. After making some Tutorials on my YouTube Channel and providing a detailed Documentation for them, there were still questions and problems on how to install a Minecraft Server on a Linux-Server. Thats why I created this All-in-One solution for installing a Minecraft Server (Forge, Vanilla, Spigot & Paper).

Supported Distros

  • Debian 10
  • Debian 11
  • Debian 12
  • Ubuntu 18.04
  • Ubuntu 20.04
  • Ubuntu 22.04

Requirements

  • SSH-Connection to your server
  • Root Access to server (Script need to be executed as root)
  • Linux-based operating systems (only on Supported Distros)
  • Git needs to be installed on the server --> Installation

Features

General Features:

  • Graphical User Interface (GUI)
  • Easy-to-Use (even for beginners!)
  • Automatic installation of required programs/packages
  • Automatic installation of Java Versions for different Minecraft Versions (Including Java 8, Java 16, Java 17 and Java 21)
  • Creating Minecraft Server start-scripts (including a check if the correct Java Version is selcted)
  • Adjustable RAM-Allocation when installing a Minecraft Server
  • Installed Servers are stored in Sub-Folders, to install more than one instance
  • Support for multiple Linux Distributions (Ubuntu & Debian)

Minecraft Vanilla Features:

  • Supported Minecraft Vanilla Versions: Minecraft 1.7.X - 1.21.X

Minecraft Forge Features:

  • Supported Minecraft Forge Versions: Minecraft 1.7.10 - 1.21.X
  • Installing a specific Forge Version. (A Version Overview can be found here)

Minecraft Spigot Features:

  • Supported Minecraft Spigot Versions: 1.8.X - 1.20.X
  • Using Spigot's offical BuildTools to compile the spigot.jar(s)
  • Caching of already compiled spigot.jar(s) to avoid unneccessary re-compilation of already compiled spigot.jar(s)

Minecraft Paper Features:

  • Supported Minecraft Paper Versions: 1.8.X - 1.20.X
  • Possibility to install every existing Build of Paper
  • Show list of available Builds for each version to select from
  • Using Paper's official API to obtain available Builds
  • Adjusted Sub-Folder Naming (including the Build-Number)

Installation

Prerequisites:

apt install git

Downloading the script:

git clone https://github.com/officialrealTM/mcserver_installer.git

Run the Script

Go into the downloaded folder:

cd mcserver_installer

Start the Script:

./mcserver_installer.sh

FAQ

Can I use this Script on other Distros?

No. At least not yet. The Script has been developed and tested on --> Supported Distros. To disable the Distro check see: Experimental Settings

Where are my Serverfiles located?

You Minecraft Server files will get stored in /Servers/Minecraft-<versionnumber>

When installing multiple servers of the same type (e.g. two Minecraft 1.8.9 Servers) the second folder will be called Minecraft-<versionnumber>-1 (or 2 and so on)

Can I run more than one server at once?

Yes. But here you need to keep a few things in mind:

  • Your Linux server need to be powerfull enough
  • You need to adjust the Port of the second/third/etc. Minecraft server (because Port 25565 is already in use.) This can be adjusted in the server.properties file

Can I change the amount of RAM allocated to my Minecraft Server after the installation?

Yes. To do so go to your Server folder (cd /Servers/Minecraft-<versionnumber>) and open the start.shfile.
In the last line of this file you can adjust the number after -Xmx to adjust more or less ram.

Can I use this script to install Snapshot Versions of Minecraft?

No. This script can only install full game versions. Snapshot Versions are not supported!

I've accidentally closed my Minecraft console. How can I open it again?

Dont worry, the console will kept open in the background using screen.
Use this command, to show all active screen sessions:screen -ls

If only one Sessions is active you can use this command, to open it: screen -rx If multiple Sessions are active use this command: screen -rx <Name of screen session>

How to close (detach) my console?

To close (detach) you Minecraft Console press [CTRL]+[A] and than [CTRL]+[D]

More questions?

Feel free to ask me questions on my Discord.

Contributing

You are very welcome to contribute to this project!

To do so, just create a Pull Request and describe your additions as accurate as possible!
Feel free to join my Discord to ask questions about the code's structure etc.

Roadmap

  • Commenting & cleaning the sourcecode

Tech Stack

These are all the packages used in this script:

Used Packages: dialog, sudo, wget, screen, jq, Python3, Python3-pip, Pip3-Packaging

Python Script: mcurlgrabber.py (Thanks to Christian!)

Experimental Settings

Important: With these experimental settings you can disable certain functions of the script. Use them at your own risk and only if you know what you are doing!

How to use: All these commands must be executed in the homedirectory of the script, namely: /mcserver_installer

Disable Distro-check:

touch .skip_distro_check

Disable Script Version check:

touch .skip_version_check

Disable Installed-check:

touch .installed

Disable caching/archiving of compiled Spigot.jar(s):

touch .disable_spigot_archive

Undo experimental settings

Enable Distro-check:

rm .skip_distro_check

Enable Script Version check:

rm .skip_version_check

Enable Installed-check (can also be used to re-check installed packages):

rm .installed

Enable caching/archiving of compiled Spigot.jar(s):

rm .disable_spigot_archive

Support

For support, join my Discord and create a Ticket.
(Support in German and English)

mcserver_installer's People

Contributors

officialrealtm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

mcserver_installer's Issues

error

./start.sh: 1: function: not found
grep: javaversion.txt: No such file or directory
grep: javaversion.txt: No such file or directory
grep: javaversion.txt: No such file or directory
rm: cannot remove 'javaversion.txt': No such file or directory
./start.sh: 19: Syntax error: "}" unexpected

Remove "latest" for Forge Servers

Due to Forge not providing an API to download the latest forge version and the need to hard-code the URL for the latest version, this feature should be removed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.