mirror of
http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/selfhosting-blogposts.git
synced 2025-05-16 12:16:59 +00:00
441 lines
21 KiB
Markdown
441 lines
21 KiB
Markdown
---
|
||
search:
|
||
exclude: true
|
||
---
|
||
# Minecraft Server Setup
|
||
|
||

|
||
|
||
In this tutorial we're going to setup a minecraft server:
|
||
|
||
## **Initial Setup**
|
||
|
||
First install the required dependencies:
|
||
|
||
|
||
root@minecraft:~# apt update -y ; apt upgrade -y ; apt install default-jdk -y
|
||
root@minecraft:~# apt update -y ; apt install default-jre software-properties-common python3-launchpadlib -y
|
||
root@minecraft:~# add-apt-repository ppa:webupd8team/java
|
||
|
||
root@minecraft:~# java -version
|
||
openjdk version "11.0.11" 2021-04-20
|
||
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
|
||
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
|
||
|
||
root@minecraft:~# adduser mcuser
|
||
Adding user `mcuser' ...
|
||
Adding new group `mcuser' (1000) ...
|
||
Adding new user `mcuser' (1000) with group `mcuser' ...
|
||
Creating home directory `/home/mcuser' ...
|
||
Copying files from `/etc/skel' ...
|
||
New password:
|
||
Retype new password:
|
||
passwd: password updated successfully
|
||
Changing the user information for mcuser
|
||
Enter the new value, or press ENTER for the default
|
||
Full Name []:
|
||
Room Number []:
|
||
Work Phone []:
|
||
Home Phone []:
|
||
Other []:
|
||
Is the information correct? [Y/n] y
|
||
|
||
root@minecraft:~# usermod -aG sudo mcuser
|
||
|
||
root@minecraft:~# su - mcuser
|
||
To run a command as administrator (user "root"), use "sudo ".
|
||
See "man sudo_root" for details.
|
||
|
||
mcuser@minecraft:~$ pwd
|
||
/home/mcuser
|
||
mcuser@minecraft:~$ mkdir minecraft
|
||
mcuser@minecraft:~$ cd minecraft/
|
||
|
||
|
||

|
||
|
||
|
||
mcuser@minecraft:~/minecraft$ wget https://maven.minecraftforge.net/net/minecraftforge/forge/1.12.2-14.23.5.2855/forge-1.12.2-14.23.5.2855-installer.jar
|
||
--2021-11-16 16:26:29-- https://maven.minecraftforge.net/net/minecraftforge/forge/1.12.2-14.23.5.2855/forge-1.12.2-14.23.5.2855-installer.jar
|
||
Resolving maven.minecraftforge.net (maven.minecraftforge.net)... 51.79.83.165, 2607:5300:203:65a5::
|
||
Connecting to maven.minecraftforge.net (maven.minecraftforge.net)|51.79.83.165|:443... connected.
|
||
HTTP request sent, awaiting response... 200 OK
|
||
Length: 4583673 (4.4M) [application/java-archive]
|
||
Saving to: 'forge-1.12.2-14.23.5.2855-installer.jar'
|
||
|
||
forge-1.12.2-14.23.5.2855-installer.jar 100%[======================================================================================================================>] 4.37M 2.84MB/s in 1.5s
|
||
|
||
2021-11-16 16:26:31 (2.84 MB/s) - 'forge-1.12.2-14.23.5.2855-installer.jar' saved [4583673/4583673]
|
||
|
||
|
||
mcuser@minecraft:~/minecraft$ java -jar forge-1.12.2-14.23.5.2855-installer.jar --installServer
|
||
JVM info: Ubuntu - 11.0.11 - 11.0.11+9-Ubuntu-0ubuntu2.20.04
|
||
java.net.preferIPv4Stack=true
|
||
Found java version 11.0.11
|
||
Target Directory: .
|
||
Data kindly mirrored by CreeperHost at https://www.creeperhost.net/
|
||
Extracting main jar:
|
||
Extracted successfully
|
||
Considering minecraft server jar
|
||
Downloading library from https://launcher.mojang.com/v1/objects/886945bfb2b978778c3a0288fd7fab09d315b25f/server.jar
|
||
|
||
[...]
|
||
|
||
Building Processors
|
||
The server installed successfully
|
||
You can delete this installer file now if you wish
|
||
mcuser@minecraft:~/minecraft$ ls -l
|
||
total 38368
|
||
-rw-rw-r-- 1 mcuser mcuser 4583673 Nov 16 16:26 forge-1.12.2-14.23.5.2855-installer.jar
|
||
-rw-rw-r-- 1 mcuser mcuser 5054 Nov 16 16:28 forge-1.12.2-14.23.5.2855-installer.jar.log
|
||
-rw-rw-r-- 1 mcuser mcuser 4464387 Nov 16 16:28 forge-1.12.2-14.23.5.2855.jar
|
||
drwxrwxr-x 7 mcuser mcuser 4096 Nov 16 16:28 libraries
|
||
-rw-rw-r-- 1 mcuser mcuser 30222121 Nov 16 16:28 minecraft_server.1.12.2.jar
|
||
|
||
|
||
|
||
Now let's test if it works:
|
||
|
||
|
||
mcuser@minecraft:~/minecraft$ java -Xmx2048M -Xms2048M -jar minecraft_server.1.12.2.jar nogui
|
||
[16:31:36] [Server thread/INFO]: Starting minecraft server version 1.12.2
|
||
[16:31:36] [Server thread/INFO]: Loading properties
|
||
[16:31:36] [Server thread/WARN]: server.properties does not exist
|
||
[16:31:36] [Server thread/INFO]: Generating new properties file
|
||
[16:31:36] [Server thread/WARN]: Failed to load eula.txt
|
||
[16:31:36] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
|
||
[16:31:36] [Server thread/INFO]: Stopping server
|
||
[16:31:36] [Server Shutdown Thread/INFO]: Stopping server
|
||
|
||
mcuser@minecraft:~/minecraft$ ls -lash
|
||
total 38M
|
||
4.0K drwxrwxr-x 4 mcuser mcuser 4.0K Nov 16 16:31 .
|
||
4.0K drwxr-xr-x 5 mcuser mcuser 4.0K Nov 16 16:27 ..
|
||
4.0K -rw-rw-r-- 1 mcuser mcuser 181 Nov 16 16:31 eula.txt
|
||
4.4M -rw-rw-r-- 1 mcuser mcuser 4.4M Nov 16 16:26 forge-1.12.2-14.23.5.2855-installer.jar
|
||
8.0K -rw-rw-r-- 1 mcuser mcuser 5.0K Nov 16 16:28 forge-1.12.2-14.23.5.2855-installer.jar.log
|
||
4.3M -rw-rw-r-- 1 mcuser mcuser 4.3M Nov 16 16:28 forge-1.12.2-14.23.5.2855.jar
|
||
4.0K drwxrwxr-x 7 mcuser mcuser 4.0K Nov 16 16:28 libraries
|
||
4.0K drwxrwxr-x 2 mcuser mcuser 4.0K Nov 16 16:31 logs
|
||
29M -rw-rw-r-- 1 mcuser mcuser 29M Nov 16 16:28 minecraft_server.1.12.2.jar
|
||
4.0K -rw-rw-r-- 1 mcuser mcuser 59 Nov 16 16:31 server.properties
|
||
|
||
mcuser@minecraft:~/minecraft$ cat eula.txt
|
||
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
|
||
#Tue Nov 16 16:31:36 UTC 2021
|
||
eula=true
|
||
|
||
mcuser@minecraft:~/minecraft$ java -Xmx2048M -Xms2048M -jar minecraft_server.1.12.2.jar nogui
|
||
[16:34:00] [Server thread/INFO]: Starting minecraft server version 1.12.2
|
||
[16:34:00] [Server thread/INFO]: Loading properties
|
||
[16:34:00] [Server thread/INFO]: Default game type: SURVIVAL
|
||
[16:34:00] [Server thread/INFO]: Generating keypair
|
||
[16:34:00] [Server thread/INFO]: Starting Minecraft server on *:25565
|
||
WARNING: An illegal reflective access operation has occurred
|
||
WARNING: Illegal reflective access by io.netty.util.internal.ReflectionUtil (file:/home/mcuser/minecraft/minecraft_server.1.12.2.jar) to constructor java.nio.DirectByteBuffer(long,int)
|
||
WARNING: Please consider reporting this to the maintainers of io.netty.util.internal.ReflectionUtil
|
||
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
|
||
WARNING: All illegal access operations will be denied in a future release
|
||
[16:34:00] [Server thread/INFO]: Using epoll channel type
|
||
[16:34:00] [Server thread/INFO]: Preparing level "world"
|
||
[16:34:01] [Server thread/INFO]: Loaded 488 advancements
|
||
[16:34:02] [Server thread/INFO]: Preparing start region for level 0
|
||
[16:34:03] [Server thread/INFO]: Preparing spawn area: 5%
|
||
[16:34:04] [Server thread/INFO]: Preparing spawn area: 8%
|
||
[16:34:05] [Server thread/INFO]: Preparing spawn area: 13%
|
||
[16:34:06] [Server thread/INFO]: Preparing spawn area: 16%
|
||
[16:34:07] [Server thread/INFO]: Preparing spawn area: 21%
|
||
[16:34:08] [Server thread/INFO]: Preparing spawn area: 27%
|
||
[16:34:09] [Server thread/INFO]: Preparing spawn area: 35%
|
||
[16:34:10] [Server thread/INFO]: Preparing spawn area: 41%
|
||
[16:34:11] [Server thread/INFO]: Preparing spawn area: 48%
|
||
[16:34:12] [Server thread/INFO]: Preparing spawn area: 55%
|
||
[16:34:13] [Server thread/INFO]: Preparing spawn area: 62%
|
||
[16:34:14] [Server thread/INFO]: Preparing spawn area: 70%
|
||
[16:34:15] [Server thread/INFO]: Preparing spawn area: 78%
|
||
[16:34:16] [Server thread/INFO]: Preparing spawn area: 86%
|
||
[16:34:17] [Server thread/INFO]: Preparing spawn area: 94%
|
||
[16:34:18] [Server thread/INFO]: Done (17.633s)! For help, type "help" or "?"
|
||
|
||
|
||
|
||
Now the minecraft server is up, let's check if it works, first install minecraft on your client::
|
||
|
||
|
||
[ 10.66.66.2/32 ] [ /dev/pts/135 ] [~]
|
||
→ yay -S minecraft-launcher
|
||
|
||
[ 10.66.66.2/32 ] [ /dev/pts/135 ] [~]
|
||
→ which minecraft-launcher
|
||
/usr/bin/minecraft-launcher
|
||
|
||
|
||
|
||
      
|
||
|
||
Next if you need to port forward the mc server to the public, it will be on port 25565.
|
||
|
||
![]()
|
||
|
||
|
||
|
||
|
||
|
||
## **Setup**
|
||
|
||
Now if you want to make a modded server, you will need a few things, first you will need minecraft forge install:
|
||
|
||
|
||
[ 10.66.66.2/32 ] [ /dev/pts/138 ] [~]
|
||
→ cd Downloads
|
||
|
||
[ 10.66.66.2/32 ] [ /dev/pts/138 ] [~/Downloads]
|
||
→ java -jar forge-1.12.2-14.23.5.2855-installer.jar
|
||
|
||
|
||
|
||
This will open the forge installer, select client this time:
|
||
|
||
   
|
||
|
||
And then we can login once again into the server:
|
||
|
||

|
||
|
||
Now let's add a [mod](https://www.curseforge.com/minecraft/mc-mods?filter-game-version=2020709689%3A6756&filter-sort=4) into the minecraft server:
|
||
|
||
|
||
mcuser@minecraft:~$ ls -l
|
||
total 4
|
||
drwxrwxr-x 5 mcuser mcuser 4096 Nov 16 16:34 minecraft
|
||
mcuser@minecraft:~$ cd minecraft/
|
||
mcuser@minecraft:~/minecraft$ ls -l
|
||
total 38404
|
||
-rw-rw-r-- 1 mcuser mcuser 2 Nov 16 16:34 banned-ips.json
|
||
-rw-rw-r-- 1 mcuser mcuser 2 Nov 16 16:34 banned-players.json
|
||
-rw-rw-r-- 1 mcuser mcuser 180 Nov 16 16:33 eula.txt
|
||
-rw-rw-r-- 1 mcuser mcuser 4583673 Nov 16 16:26 forge-1.12.2-14.23.5.2855-installer.jar
|
||
-rw-rw-r-- 1 mcuser mcuser 5054 Nov 16 16:28 forge-1.12.2-14.23.5.2855-installer.jar.log
|
||
-rw-rw-r-- 1 mcuser mcuser 4464387 Nov 16 16:28 forge-1.12.2-14.23.5.2855.jar
|
||
drwxrwxr-x 7 mcuser mcuser 4096 Nov 16 16:28 libraries
|
||
drwxrwxr-x 2 mcuser mcuser 4096 Nov 16 16:33 logs
|
||
-rw-rw-r-- 1 mcuser mcuser 30222121 Nov 16 16:28 minecraft_server.1.12.2.jar
|
||
-rw-rw-r-- 1 mcuser mcuser 2 Nov 16 16:34 ops.json
|
||
-rw-rw-r-- 1 mcuser mcuser 753 Nov 16 16:34 server.properties
|
||
-rw-rw-r-- 1 mcuser mcuser 109 Nov 16 16:44 usercache.json
|
||
-rw-rw-r-- 1 mcuser mcuser 2 Nov 16 16:34 whitelist.json
|
||
drwxrwxr-x 9 mcuser mcuser 4096 Nov 16 16:49 world
|
||
mcuser@minecraft:~/minecraft$ mkdir mods
|
||
|
||
mcuser@minecraft:~/minecraft$ cd mods
|
||
mcuser@minecraft:~/minecraft/mods$ wget https://media.forgecdn.net/files/2835/318/defiledlands-1.12.2-1.4.3.jar
|
||
--2021-11-16 17:10:34-- https://media.forgecdn.net/files/2835/318/defiledlands-1.12.2-1.4.3.jar
|
||
Resolving media.forgecdn.net (media.forgecdn.net)... 13.224.226.86, 13.224.226.118, 13.224.226.83, ...
|
||
Connecting to media.forgecdn.net (media.forgecdn.net)|13.224.226.86|:443... connected.
|
||
HTTP request sent, awaiting response... 200 OK
|
||
Length: 780421 (762K) [application/x-amz-json-1.0]
|
||
Saving to: 'defiledlands-1.12.2-1.4.3.jar'
|
||
|
||
defiledlands-1.12.2-1.4.3.jar 100%[======================================================================================================================>] 762.13K 3.50MB/s in 0.2s
|
||
|
||
2021-11-16 17:10:35 (3.50 MB/s) - 'defiledlands-1.12.2-1.4.3.jar' saved [780421/780421]
|
||
|
||
mcuser@minecraft:~/minecraft/mods$ wget https://media.forgecdn.net/files/2518/667/Baubles-1.12-1.5.2.jar
|
||
--2021-11-16 17:23:53-- https://media.forgecdn.net/files/2518/667/Baubles-1.12-1.5.2.jar
|
||
Resolving media.forgecdn.net (media.forgecdn.net)... 13.224.226.110, 13.224.226.86, 13.224.226.83, ...
|
||
Connecting to media.forgecdn.net (media.forgecdn.net)|13.224.226.110|:443... connected.
|
||
HTTP request sent, awaiting response... 200 OK
|
||
Length: 108450 (106K) [application/octet-stream]
|
||
Saving to: 'Baubles-1.12-1.5.2.jar'
|
||
|
||
Baubles-1.12-1.5.2.jar 100%[======================================================================================================================>] 105.91K --.-KB/s in 0.04s
|
||
|
||
2021-11-16 17:23:54 (2.38 MB/s) - 'Baubles-1.12-1.5.2.jar' saved [108450/108450]
|
||
|
||
mcuser@minecraft:~/minecraft/mods$ cd ..
|
||
|
||
mcuser@minecraft:~/minecraft$ java -Xmx2048M -Xms2048M -jar minecraft_server.1.12.2.jar nogui
|
||
|
||
|
||
|
||
Now if we want to run our minecraft forge server we need an older version of java:
|
||
|
||
|
||
|
||
mcuser@minecraft:~/minecraft$ sudo apt purge java-common default-jdk default-jre
|
||
mcuser@minecraft:~/minecraft$ sudo apt install openjdk-8-jre -y
|
||
mcuser@minecraft:~/minecraft$ java -version
|
||
mcuser@minecraft:~/minecraft$ java -version
|
||
openjdk version "1.8.0_292"
|
||
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~20.04-b10)
|
||
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
|
||
|
||
mcuser@minecraft:~/minecraft$ java -Xmx2048M -Xms2048M -jar forge-1.12.2-14.23.5.2855.jar nogui
|
||
[17:24:19] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLServerTweaker
|
||
[17:24:19] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLServerTweaker
|
||
[17:24:19] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLServerTweaker
|
||
[17:24:19] [main/INFO] [FML]: Forge Mod Loader version 14.23.5.2855 for Minecraft 1.12.2 loading
|
||
[17:24:19] [main/INFO] [FML]: Java is OpenJDK 64-Bit Server VM, version 1.8.0_292, running on Linux:amd64:5.4.143-1-pve, installed at /usr/lib/jvm/java-8-openjdk-amd64/jre
|
||
[17:24:19] [main/INFO] [FML]: Searching /home/mcuser/minecraft/./mods for mods
|
||
[17:24:19] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
|
||
[17:24:19] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
|
||
[17:24:19] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
|
||
[17:24:19] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
|
||
[17:24:19] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
|
||
[17:24:23] [main/INFO] [FML]: Found valid fingerprint for Minecraft Forge. Certificate fingerprint e3c3d50c7c986df74c645c0ac54639741c90a557
|
||
[17:24:23] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
|
||
[17:24:23] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
|
||
[17:24:23] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
|
||
[17:24:23] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
|
||
[17:24:24] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.server.MinecraftServer}
|
||
[17:24:29] [Server thread/INFO] [minecraft/DedicatedServer]: Starting minecraft server version 1.12.2
|
||
[17:24:29] [Server thread/INFO] [FML]: MinecraftForge v14.23.5.2855 Initialized
|
||
[17:24:29] [Server thread/INFO] [FML]: Starts to replace vanilla recipe ingredients with ore ingredients.
|
||
[17:24:29] [Server thread/INFO] [FML]: Invalid recipe found with multiple oredict ingredients in the same ingredient...
|
||
[17:24:30] [Server thread/INFO] [FML]: Replaced 1227 ore ingredients
|
||
[17:24:30] [Server thread/INFO] [FML]: Searching /home/mcuser/minecraft/./mods for mods
|
||
[17:24:31] [Server thread/INFO] [FML]: Forge Mod Loader has identified 6 mods to load
|
||
[17:24:31] [Server thread/WARN] [FML]: Missing English translation for FML: assets/fml/lang/en_us.lang
|
||
[...]
|
||
|
||
|
||
|
||
And now it loads our mods ! Now let's download the mods locally for our client:
|
||
|
||
If you try to login without the mods on the client you will see an error like that one:
|
||
|
||

|
||
|
||
|
||
[ 10.66.66.2/32 ] [ /dev/pts/139 ] [~/.minecraft/mods]
|
||
→ wget https://media.forgecdn.net/files/2518/667/Baubles-1.12-1.5.2.jar
|
||
--2021-11-16 18:26:43-- https://media.forgecdn.net/files/2518/667/Baubles-1.12-1.5.2.jar
|
||
SSL_INIT
|
||
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
|
||
Resolving media.forgecdn.net (media.forgecdn.net)... 13.224.226.83, 13.224.226.110, 13.224.226.86, ...
|
||
Connecting to media.forgecdn.net (media.forgecdn.net)|13.224.226.83|:443... connected.
|
||
HTTP request sent, awaiting response... 200 OK
|
||
Length: 108450 (106K) [application/octet-stream]
|
||
Saving to: ‘Baubles-1.12-1.5.2.jar’
|
||
|
||
Baubles-1.12-1.5.2.jar 100%[=====================================================================================================================>] 105.91K --.-KB/s in 0.05s
|
||
|
||
2021-11-16 18:26:43 (1.98 MB/s) - ‘Baubles-1.12-1.5.2.jar’ saved [108450/108450]
|
||
|
||
|
||
[ 10.66.66.2/32 ] [ /dev/pts/139 ] [~/.minecraft/mods]
|
||
→ wget https://media.forgecdn.net/files/2835/318/defiledlands-1.12.2-1.4.3.jar
|
||
--2021-11-16 18:26:50-- https://media.forgecdn.net/files/2835/318/defiledlands-1.12.2-1.4.3.jar
|
||
SSL_INIT
|
||
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
|
||
Resolving media.forgecdn.net (media.forgecdn.net)... 13.224.226.86, 13.224.226.83, 13.224.226.110, ...
|
||
Connecting to media.forgecdn.net (media.forgecdn.net)|13.224.226.86|:443... connected.
|
||
HTTP request sent, awaiting response... 200 OK
|
||
Length: 780421 (762K) [application/x-amz-json-1.0]
|
||
Saving to: ‘defiledlands-1.12.2-1.4.3.jar’
|
||
|
||
defiledlands-1.12.2-1.4.3.jar 100%[=====================================================================================================================>] 762.13K 2.89MB/s in 0.3s
|
||
|
||
2021-11-16 18:26:51 (2.89 MB/s) - ‘defiledlands-1.12.2-1.4.3.jar’ saved [780421/780421]
|
||
|
||
|
||
|
||
And we manage to login!
|
||
|
||

|
||
|
||
And that's it! We managed to log into our modded minecraft server.
|
||
|
||
## **Setup**
|
||
|
||
For the players who want to download the mods they need to log into the server, you can setup a simple nginx to allow them to get there:
|
||
|
||
|
||
|
||
root@minecraft:~# vim /etc/nginx/sites-available/default
|
||
root@minecraft:~# cat /etc/nginx/sites-available/default
|
||
|
||
server {
|
||
listen 80 default_server;
|
||
listen [::]:80 default_server;
|
||
|
||
|
||
root /home/mcuser/minecraft/mods;
|
||
|
||
index index.html index.htm index.nginx-debian.html;
|
||
|
||
server_name _;
|
||
autoindex on;
|
||
|
||
location / {
|
||
try_files $uri $uri/ =404;
|
||
}
|
||
}
|
||
|
||
|
||
root@minecraft:~# nginx -t
|
||
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
|
||
nginx: configuration file /etc/nginx/nginx.conf test is successful
|
||
root@minecraft:~# nginx -s reload
|
||
|
||
|
||

|
||
|
||
Now let's make a systemd service to launch our minecraft server
|
||
|
||
|
||
root@minecraft:~# vim /etc/systemd/system/minecraft.service
|
||
root@minecraft:~# cat /etc/systemd/system/minecraft.service
|
||
[Unit]
|
||
Description=Minecraft Server
|
||
After=syslog.target network.target
|
||
|
||
[Service]
|
||
# Ensure to set the correct user and working directory (installation directory of your server) here
|
||
User=mcuser
|
||
WorkingDirectory=/home/mcuser/minecraft/
|
||
|
||
# You can customize the maximum amount of memory as well as the JVM flags here
|
||
ExecStart=/usr/bin/java -XX:+UseG1GC -Xmx6G -jar forge-1.12.2-14.23.5.2855.jar --nojline --noconsole -Dsun.rmi.dgc.server.gcInterval=2147483646 -XX:+UnlockExperimentalVMOptions -XX:G1HeapRegionSize=32M -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50
|
||
|
||
# Restart the server when it is stopped or crashed after 30 seconds
|
||
# Comment out RestartSec if you want to restart immediately
|
||
Restart=always
|
||
RestartSec=3
|
||
|
||
# Alternative: Restart the server only when it stops regularly
|
||
# Restart=on-success
|
||
|
||
# Do not remove this!
|
||
StandardInput=null
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
|
||
root@minecraft:~# systemctl daemon-reload
|
||
root@minecraft:~# systemctl enable --now minecraft
|
||
Created symlink /etc/systemd/system/multi-user.target.wants/minecraft.service -> /etc/systemd/system/minecraft.service.
|
||
root@minecraft:~# systemctl status minecraft
|
||
* minecraft.service - Minecraft Server
|
||
Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; vendor preset: enabled)
|
||
Active: active (running) since Thu 2021-11-18 08:16:11 UTC; 5s ago
|
||
Main PID: 31956 (java)
|
||
Tasks: 33 (limit: 7372)
|
||
Memory: 113.1M
|
||
CGroup: /system.slice/minecraft.service
|
||
`-31956 /usr/bin/java -XX:+UseG1GC -Xmx3G -jar forge-1.12.2-14.23.5.2855.jar --nojline --noconsole
|
||
|
||
Nov 18 08:16:11 minecraft systemd[1]: Started Minecraft Server.
|
||
|
||
|
||
|
||
|
||
For other minecraft versions you will need to install other java versions, sadly you need to deal with oracle being a corporation and you may need to login there. You're going to need either openjdk 11 or 17+, openjdk 11 being the cutover version from minecraft 1.16.5
|
||
|
||
|
||
use java version 1.8.0 (download it from the oracle website) to make a minecraft server 1.12.2 or on 1.16.5
|
||
|
||
>> https://www.oracle.com/java/technologies/downloads/archive/ (yes you need to create an account there, just fill it with garbage data)
|
||
|
||
|
||
|