commit 5fccf81d591ad95deb5e703e77aeadd8e434fc4e Author: godot Date: Sun Jun 30 20:53:18 2024 +0200 setting up diff --git a/Mods.zip b/Mods.zip new file mode 100644 index 0000000..16d4c7e Binary files /dev/null and b/Mods.zip differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Server-v1.2.1.zip b/Server-v1.2.1.zip new file mode 100644 index 0000000..7250503 Binary files /dev/null and b/Server-v1.2.1.zip differ diff --git a/fandom.service b/fandom.service new file mode 100644 index 0000000..d9f8363 --- /dev/null +++ b/fandom.service @@ -0,0 +1,123 @@ +[Unit] +Description=Minecraft Server %i +After=network.target + +[Service] +WorkingDirectory=/opt/minecraft/%i + +# Solves the issue where the minecraft server will endlessly restart itself +# See https://askubuntu.com/questions/953920/systemctl-service-timed-out-during-start for more info +Type=simple + +PrivateUsers=true +# Users Database is not available from within the unit, only root and minecraft is available, everybody else is nobody + +User=minecraft +Group=minecraft + +ProtectSystem=full +# Read only mapping of /usr /boot and /etc + +ProtectHome=true +# /home, /root and /run/user seem to be empty from within the unit. It is recommended to enable this setting for all long-running services (in particular network-facing ones). + +ProtectKernelTunables=true +# /proc/sys, /sys, /proc/sysrq-trigger, /proc/latency_stats, /proc/acpi, /proc/timer_stats, /proc/fs and /proc/irq will be read-only within the unit. It is recommended to turn this on for most services. +# Implies MountFlags=slave + +ProtectKernelModules=true +# Block module system calls, also /usr/lib/modules. It is recommended to turn this on for most services that do not need special file systems or extra kernel modules to work +# Implies NoNewPrivileges=yes + +ProtectControlGroups=true +# It is hence recommended to turn this on for most services. +# Implies MountAPIVFS=yes + +# Set default memory values +Environment="MCMINMEM=512M" "MCMAXMEM=1024M" "SHUTDOWN_DELAY=5" "POST_SHUTDOWN_DELAY=10" +# Change memory values in environment file +EnvironmentFile=-/opt/minecraft/%i/server.conf + +# Uncomment this to fix screen on RHEL 8 +#ExecStartPre=+/bin/sh -c 'chmod 777 /run/screen' + +ExecStart=/bin/sh -c \ + 'find -L . \ + -maxdepth 1 \ + -type f \ + -iregex ".*/\\(FTBServer\\|craftbukkit\\|spigot\\|paper\\|forge\\|minecraft_server\\).*jar" \ + -print0 \ + -quit \ + | xargs -0 -I{} \ + /usr/bin/screen -DmS mc-%i \ + /usr/bin/java \ + -server \ + -Xms${MCMINMEM} \ + -Xmx${MCMAXMEM} \ + -XX:+UseG1GC \ + -XX:ParallelGCThreads=2 \ + -XX:MinHeapFreeRatio=5 \ + -XX:MaxHeapFreeRatio=10 \ + -jar {} \ + --nogui' + +# Alternative to the above ExecStart. Found to work better as this creates the screen session prior to invoking java to run the server. +# Solves the problem many encountered when starting the service where it would fail with the error 'no screen session found'. +ExecStartPre=/bin/sh -c \ + 'find -L . \ + -maxdepth 1 \ + -type f \ + -iregex ".*/\\(FTBServer\\|craftbukkit\\|spigot\\|paper\\|forge\\|minecraft_server\\).*jar" \ + -print0 \ + -quit \ + | xargs -0 -I{} \ + /usr/bin/screen -DmS mc-%i' +ExecStart=/bin/sh -c \ + '/usr/bin/java \ + -server \ + -Xms${MCMINMEM} \ + -Xmx${MCMAXMEM} \ + -XX:+UseG1GC \ + -XX:ParallelGCThreads=2 \ + -XX:MinHeapFreeRatio=5 \ + -XX:MaxHeapFreeRatio=10 \ + -jar {} \ # insert server jar name. i.e. 'server.jar' + --nogui' + +# Simplified of alternative +ExecStartPre=/bin/sh -c '/usr/bin/screen -dmS mc-%i' +ExecStart=/bin/sh -c '/usr/bin/java -server -Xmx${MCMAXMEM} -Xms${MCMINMEM} -jar server.jar --nogui' + +ExecReload=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "reload"\\015' + +ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN. Saving map..."\\015' +ExecStop=/bin/sh -c '/bin/sleep ${SHUTDOWN_DELAY}' +ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "save-all"\\015' +ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "stop"\\015' +ExecStop=/bin/sh -c '/bin/sleep ${POST_SHUTDOWN_DELAY}' + +Restart=on-failure +RestartSec=60s + +[Install] +WantedBy=multi-user.target + +######### +# HowTo +######### +# +# Create a directory in /opt/minecraft/XX where XX is a name like 'survival' +# Add minecraft_server.jar into dir with other conf files for minecraft server +# +# Enable/Start systemd service +# systemctl enable minecraft@survival +# systemctl start minecraft@survival +# +# To run multiple servers simply create a new dir structure and enable/start it +# systemctl enable minecraft@creative +# systemctl start minecraft@creative +# +# To change specific server memory assignment, create file /opt/minecraft/XX/server.conf (where XX is your server name) and add below lines: +# MCMINMEM=512M +# MCMAXMEM=2048M + diff --git a/podklady b/podklady new file mode 100644 index 0000000..0efda01 --- /dev/null +++ b/podklady @@ -0,0 +1,6 @@ +sudo apt update +sudo apt upgrade +sudo apt install openjdk-17-jre-headless neofetch btop screen wget curl vim grep vim +groupadd minecraft +useradd --system --shell /usr/sbin/nologin --home /opt/minecraft -g minecraft minecraf + diff --git a/reddit.service b/reddit.service new file mode 100644 index 0000000..384ba83 --- /dev/null +++ b/reddit.service @@ -0,0 +1,30 @@ +[Unit] +Description=Minecraft Server +After=network.target + +[Install] +WantedBy=multi-user.target + +[Service] +ExecReload=/usr/bin/screen -S minecraft -X stuff \"reload^M\" + +ExecStart=/usr/bin/screen -DmS minecraft run.sh + +ExecStop=/usr/bin/screen -S minecraft -X stuff \"save-all^M\" +ExecStop=/bin/sleep 5 +ExecStop=/usr/bin/screen -S minecraft -X stuff \"stop^M\" +ExecStop=/bin/sleep 5 + +ProtectControlGroups=true +ProtectHome=true +ProtectKernelModules=true +ProtectKernelTunables=true +ProtectSystem=full + +PrivateDevices=true +PrivateUsers=true + +User=minecraft +Group=minecraft + +WorkingDirectory=/opt/minecraft/