Server Setup

= Server Setup for Linux (Oracle Cloud) = This Linux setup uses an Oracle blogpost about how to set up a server on their platform.

You will need a debit/credit card on the signup step. Oracle will withdraw 1 Euro and put it back to check that the card is valid. As of September 2022, you can have a free server with 24 GB of RAM on the Oracle platform.

This setup was tested on the GTNH version 2.1.2.3qf.

The steps are as follows:
 * 1) Sign up for Oracle Cloud.
 * 2) Set up an instance.
 * 3) Set up a GTNH server.
 * 4) Install software that regularly backs up the server.

The only hurdle during the signup step is that the debit/plastic card is mandatory. It also takes roughly a minute for the system to create your account.

Create an instance
The step of creating an instance is covered well in the Oracle's manual, so check it out of if you are not sure. A concise version is provided in this guide.

Go to "Create a VM instance". VM means Virtual Machine. This action should be in Quick Actions or in the dropdown menu that is on the upper left.

You will be presented with many options, starting from the server name. Choose whatever you see fit -- this name will not be shown anywhere on the GTNH server.

Compartment is just a way to organize machines, so you can leave it as it is.

Availability Domain can be left defaults too, however do mind that you can accidentally choose something that is not in the Always Free price tier if you change it.

The important part is the Image and Shape section. That's where you select what Operating System (OS) and hardware your server is going to use.

In Image, this guide suggests to use the Oracle Linux Cloud Developer image because it requires less actions to set up at the cost of taking more space. If you are certain that your world will weigh more than 10 GB, then it might be reasonable to use the Oracle Linux image to reduce the bloat.

In Shape, select Ampere architecture. The current free tier allows 4 CPUs and 24GB RAM, so if you don't plan to host more servers, might as well use the full capacity that you are given (4 CPUs, 24 GB RAM). After you selected the Shape, check that you still have the Always Free Eligible tag near it. If you don't, you might have selected something wrong.

Next up is the Networking part. Select "Create new cloud network" and "Create new public subnet" if it's your first instance or use the already-existing nets if not.

Also select "Assign a public IPv4 address". You will use this address to connect to the server.

Next is the SSH part. You can google how it works -- this guide will describe one of the options without getting into details. Select "Generate SSH key pair", then download the private key and save it -- you will need it every time you log into the instance.

Leave the Boot volume defaults and press Create. This will start the process of creating the instance.

You will see the yellow sign on the left that says "Provisioning". After a minute, it will change to green "Running". It means you are can connect to the instance. Notice the Username and Public IP Address lines -- you will need them.

Set up network rules
When your Instance Details turns green and Running, click on the Subnet link in the Primary VNIC section. Then in Security Lists click on the only one that is there, the default one, then click on Add Ingress Rules.

You need to add two rules, one for each IP protocol. One for TCP, and one for UDP. Here's what you need to put in:
 * Stateless field unchecked.
 * Source type: CIDR.
 * Source CIDR: 0.0.0.0/0.
 * IP protocol: first rule TCP, second rule UDP.
 * Source port range: leave it empty.
 * Destination port range: 25565.

When you filled out the two rules, press Add Ingress Rules.

Tweak the instance
To connect to the windows, you need a "shell" program. As one of the options for Windows, you can install Git Bash.

When you launch Git Bash, use the following command to connect to the instance: A finished example can look like this:
 * ssh is the name of the command,
 * opc is the user name,
 * @ can be read as "at",
 * 144.24.170.229 is the IPv4 address of the instance,
 * -i is the flag that tells ssh to use a file as a password,
 * ~/ssh-key-2022-09-07.key is the path to the private key that you downloaded.

"~" is the shortcut to your user folder that is usually located at C:/Users/%Username%. It was given just as an example of how to circumvent the issues of linux-to-windows pathing in GitBash by placing your key somewhere in your user folder.

Okay, you connected to the instance, now what? The upside of the Oracle Linux Cloud Developer image that we chose during the installation is that we don't need to bother installing Java 8 because it's pre-installed -- we just need to choose it among other versions. Type in the following to start the choice: You will be given a list of numbers and names. Type in the number that corresponds to java-1.8.0-openjdk.aarch64. Other options that use Java 8 (also called 1.8.0) might work but they were not tested.

If you have chosen the bare Image at the installation step, you would use "yum list jdk*" to see available java versions and then install java1.8 which is the screen name of Java 8.

The next step is to tell the instance firewall to let the connections through:

Set up a GTNH server
1. Download the server zip from here: http://downloads.gtnewhorizons.com/ServerPacks/

2. Check that you have unzip installed with "yum list unzip*". Install if you didn't have it.

3. Unzip the server into a folder The complete command might be like: 4. In the server folder, agree to Minecraft End User License Agreement (EULA): You should have eula.txt in your server folder after this command.

5. Launch the server to test that things work: It will take several minutes to launch. The last line will likely be from [FML] about unloading world 1.

6. Whitelist yourself to get on the server: so it will look like 7. Connect to your server:

In client, use the same IPv4 that you used to connect through SSH and the port 25565 -- the default one for minecraft servers.

8. Stop the server. We're not done with setting things up: After shutting down, it will begin the countdown to reboot, so press Ctrl+C to stop it completely.

Install a mod for backups
Two mods are needed to back up your server: FTB-Utilities and FTB-Library.
 * FTB-Utilities is located here: https://github.com/GTNewHorizons/FTB-Utilities/releases
 * FTB-Library is located here: https://github.com/GTNewHorizons/FTB-Library/releases

Below is an example of how the process can go. Check if it's the most recent version of the mods before proceeding.

It would be most convenient to download the mods directly through the "wget" command to the "mods" folder on the server: If wget fails, we can download the mods directly.

Download the mods on your machine and copy them to the server through the scp command: A finished example might look like this:
 * scp is the comand that stands for "secure copy",
 * -i is the flag that says to use the file to identify youself, like we did with ssh,
 * ~/.ssh/ssh-key-2022-09-07.key is the example of the path to the key, ~ is the shortcut for you user folder,
 * ~/Downloads/AromaBackup-1.7.10-0.1.0.0.jar is the location of the AromaCore jar on your computer,
 * opc@144.24.170.228:~/minecraft-server/mods/AromaCore-1.7.10-1.0.2.16.jar is the location of the resulting file on the server.

Now you can launch your sever again to check if the backup works.

A backup should be visible in the log immediately after the server is done loading.

The default frequency of the backups is once every two hours. To make the backups more frequent, open the config file that is created after the server is launched for the first time with the backup mods.


 * 1) In Vim, press "i" to go into an -- INSERT -- mode. It should be shown at the bottom of the command line.
 * 2) The backup settings are located at the top of the file in the "backups" section.
 * 3) Locate the line "backup_timer". Its default value should be 2.0, which stands for two hours.
 * 4) If you want to make a backup every 30 minutes, change the value to 0.5.
 * 5) You might want to increase the value in the line "backups_to_keep" to keep more backups. When the number reaches the specified maximum, the oldest backup is deleted.
 * 6) You might also change the folder where the backups are saved by changing the address in the "folder" line. The default works too.
 * 7) To exit vim and save the changes, first press Escape to exit the insert mode, then press ":wq", which means Write and Quit.
 * 8) If you get an error on this step and can't write into the file, check the file permissions. Although if the error is about that you can't write into the file and that's your default user, that likely means that you launched the server as root before, which can lead to many complications later, so please don't launch a server as root.

After that, we come to the last step in this manual -- actually testing that the backup works:
 * 1) Stop the server.
 * 2) Locate the "backup/" folder. By default it's in your server folder.
 * 3) Copy your world folder that is usually called "World/" to a place outside the server folder just in case the backup is broken.
 * 4) Delete your world folder in the server folder.
 * 5) Unzip the backup in the place of a deleted folder.
 * 6) Launch the server again to see if the backup is fine.

It's suggested to keep your world folder named World to prevent further complications.

Improvements
If you need more storage, you can create an additional volume to attach to your instance.

Oracle gives 200GB for free, and the default instance takes 47GB, so it's safe to create a 150GB block-volume, as Oracle calls it.

Use this manual to do that.

= Server Setup for Windows = '''NOTE: THIS WAS LAST REVISED ON NOVEMBER 7th, 2020 USING VERSION 2.0.9.0. THE DOWNLOAD LINKS PROVIDED WITHIN ARE COMPATIBLE WITH EACH OTHER.'''

IF YOU FOLLOW THIS GUIDE AND TRY TO CONNECT YOUR LAUNCHER MAY HAVE DOWNLOADED THE LATEST CLIENT INSTEAD!

In this guide we will walk through:


 * Downloading the Files
 * Server Setup
 * Starting and Stopping the Server
 * Server Backups
 * FAQ (Frequently Asked Questions)

Downloading the Files
While our pack is hosted on many launchers we also maintain a repository of all of our releases. For the purpose of this guide we will be utilizing our hosted repositories as well as the MultiMC launcher.


 * 1) Download the server pack from here: http://downloads.gtnewhorizons.com/ServerPacks/
 * 2) Download MultiMC from here: https://files.multimc.org/downloads/mmc-stable-win32.zip
 * 3) Download the client pack from here: http://downloads.gtnewhorizons.com/Multi_mc_downloads/

Note: Please reference this guide on how to setup and install our pack in MultiMC (this guide will only cover the server portion.): Installing and Migrating

Step 2: Preparing to Start the Server
ATTENTION: BY SETTING THE TEXT OF THE EULA.TXT FILE TO TRUE YOU ARE AGREEING TO THE FOLLOWING EULA AND READING IT IS YOUR RESPONSIBILITY: https://account.mojang.com/documents/minecraft_eula

Step 3: Starting and Stopping the Server
Starting the server at this point is very straight forward. Simply double click:

Note: It will take quite some time for the server to startup.



In order to stop the server simply type the following and press enter: The server will scroll some information by and then the window will close when it shuts down entirely.

''Note: It is recommended to use the stop command to stop the server versus just closing the command window. Doing so may corrupt your world data and your world will be unplayable.''

Step 4: Whitelisting Players
In order to connect to the server yourself or allow other players to connect you must add them to the whitelist. To do this use the following command inside the server console window:

Server Backups
Go ahead and follow the above procedure to stop the server.

In this step we are going to download and install AromaBackup (a simple backup mod). Running a server means you're responsible for everything on it. The best way to have your own back is to run a backup. We see many people coming into Discord asking for help and they don't have a backup. Backups are deliberate not magic. Don't just set it up but also take the time to ensure it is working. Better yet also take the time to validate the backup itself can be restored. That's what makes a good administrator.

Note: You need AromaBackup and AromaCore.


 * 1) Download AromaBackup here: https://www.curseforge.com/minecraft/mc-mods/aromabackup/download/2284754/file
 * 2) Download AromaCore here: https://www.curseforge.com/minecraft/mc-mods/aroma1997core/download/2257644/file

[[File:Aroma Downloads.png|alt=Cut Image|none|thumb|Holding CTRL on your keyboard single left click on both: AromaBackup and AromaCore.

Right click on them and select "Cut". (Alternatively you can hold down CTRL and press X on your keyboard).]] [[File:Paste Aroma Mods.png|alt=Paste Image|none|thumb|Next we need to go into our server folder. If you've been following along to this guide this will be located here:

C:\Users\ \Downloads\GTNH-2.0.9.0-Server\mods

Right click on any empty space in this folder and choose "Paste". (Alternatively you can hold down CTRL and press V on your keyboard).]]

At this point you can go ahead and start your server again. By default AromaBackup will backup your server every 30 minutes. You can change this in the AromaBackup configuration file which will be located in: C:\Users\ \Downloads\GTNH-2.0.9.0-Server\config folder. Modifying configuration files is outside of the scope of this guide, however, it is recommended to set the backup interval to be equal to or less the amount of work you are willing to lose.

FAQ (Frequently Asked Questions)

 * 1) How do I connect to my server?
 * 2) On the Multiplayer Game you need to add a server and the server address can be (note by default the server is set to use the default Minecraft port which is 25565):
 * 3) localhost
 * 4) 127.0.0.1
 * 5) How do I let my friends connect?
 * 6) You will need to find out what your external IP address is (you can find this using Google).
 * 7) You then need to setup port forwarding on your modem/router (this is outside the scope of this guide and requires special attention to detail for privacy and security reasons - again Google is your friend here).