Setting Up Your Own Minecraft Server on FreeNAS: A Step-by-Step Guide

Want to dive into the limitless world of Minecraft with your friends, exactly the way you want it? Setting up your own Minecraft server gives you unparalleled control and customization. If you’re using FreeNAS, you’re in luck! This guide will walk you through the process of creating your very own Minecraft server within a FreeNAS jail, keeping things organized and efficient.

This comprehensive tutorial is designed to be straightforward, even if you’re new to server administration. We’ll break down each step, ensuring you can get your Minecraft server up and running smoothly on your FreeNAS system. By utilizing jails, we isolate the server environment, making it secure and resource-friendly. Let’s get started on building your personalized Minecraft server experience!

Preparing Your FreeNAS System for a Minecraft Server

Before we jump into the server setup, let’s quickly discuss resource considerations. Running a Minecraft server requires a certain amount of RAM and CPU power. While jails are lightweight, your FreeNAS system still needs sufficient resources to handle both FreeNAS itself and the Minecraft server.

Disclaimer: We recommend having at least 8GB of RAM for your FreeNAS system, plus additional RAM for your Minecraft server. The default settings we’ll use allocate 512MB minimum and 1GB maximum RAM to the server. Be mindful of your RAM allocation; over-allocation can negatively impact your system performance. Running a Minecraft server on a system with less than 8GB of RAM plus the server’s maximum allocation (potentially 9GB total with default settings) is strongly discouraged. Please be aware of the risks of RAM exhaustion, which could lead to system instability or data corruption. You have been warned!

This guide assumes you have basic familiarity with FreeNAS and its graphical user interface (GUI). We aim for simplicity and clarity, making it accessible even for users who are less experienced with server administration.

We’ll be using the /mnt/tank/jails directory for our jails in this guide. If you have CIFS shares set up to /mnt/tank, accessing files within the jail becomes incredibly easy via your network share. For instance, to modify a file in /usr/local/etc/rc.d within the jail, you can simply navigate to /jails/minecraftserver/usr/local/etc/rc.d through your network share. This method simplifies file editing compared to using command-line editors like nano or FTP.

Warning: Exercise caution when editing files within the jail, especially those currently in use. Modifying active files can lead to instability or issues. Consider shutting down the jail before making configuration changes unless you are certain the file is not in use.

Step-by-Step Minecraft Server Installation on FreeNAS Jail

Let’s begin the installation process. Follow these steps carefully to set up your Minecraft server.

1. Create the Jail

If you’ve created jails in FreeNAS before, this step will be familiar.

  1. Navigate to the “Jails” section in your FreeNAS WebGUI.

  2. Click “Add Jail”.

  3. Fill in the following details:

    • Jail Name: minecraftserver
    • Type: portjail
    • IPv4 Address: 192.168.2.128 (Replace with an appropriate IP address for your network)
    • IPv4 Netmask: /24 (255.255.255.0) (Adjust to your network configuration)
    • MAC Address: Leave the default value.
    • Autostart: Checked
    • VIMAGE: Unchecked
    • NAT: Unchecked
    • vanilla: Unchecked
  4. Click “Save”.

Alt text: FreeNAS web interface showing jail creation form filled out for a Minecraft server with jail name minecraftserver, type portjail and IPv4 address 192.168.2.128.

2. Install Required Packages

Now, access the jail’s command line interface. You can do this using the jls command to list jails and jexec followed by the jail ID to enter the jail as root. Once inside, run the following command:

pkg install openjdk screen

This command installs openjdk, the Java Development Kit necessary to run Minecraft server, and screen, a utility that allows you to manage server sessions in the background. Accept any prompts to install additional dependencies. The installation process may take a few minutes.

Optional Packages:

If you prefer using a command-line text editor or need sudo for user privilege management, you can install these optional packages:

pkg install nano sudo

nano is a user-friendly text editor, and sudo allows you to execute commands with administrative privileges as a regular user.

3. Create Directory Structure

Inside the jail, as root, create the necessary directory structure for your Minecraft server files:

mkdir /srv
mkdir /srv/minecraft

These commands create a /srv directory and a /minecraft subdirectory within it, where we will store all Minecraft server related files.

4. Create the Minecraft User

For security and organization, we’ll create a dedicated user for running the Minecraft server. Still within the jail as root, run:

adduser

Follow the prompts to create the minecraft user:

  • Username: minecraft
  • Full name: (Your choice, e.g., Minecraft Server User)
  • Uid: Press Enter (accept default)
  • Login group: Press Enter (accept default)
  • Login group is minecraft. Invite minecraft into other groups?: Press Enter
  • Login class: Press Enter (accept default)
  • Shell: csh (or your preferred shell like bash)
  • Home directory: Press Enter (accept default)
  • Use password-based authentication?: yes
  • Use an empty password?: no
  • Use a random password?: no
  • Enter password: (Choose a strong password)
  • Enter password again: (Re-enter the password)
  • Lock out the account after creation?: no
  • OK?: yes (if all information is correct)
  • Add another user? (yes/no): no

You may also want to set a password for the root user if you haven’t already:

passwd

5. Stop the Jail

Using the FreeNAS WebGUI, stop the minecraftserver jail. This is necessary before we proceed to install the Minecraft server files.

6. Install Minecraft Server Files

Now, we’ll install the core Minecraft server files.

  1. Download the Minecraft server .jar file from the official Minecraft website (https://www.minecraft.net/en-us/download/server). Ensure you download the minecraft_server.jar file.
  2. Place the downloaded minecraft_server.jar file into the /srv/minecraft directory within your FreeNAS jail. You can access this directory via your CIFS share if configured, or by using command-line tools.
  3. Rename the downloaded file to minecraft_server.jar (if it’s not already named that).

In addition to the server .jar file, we will install custom scripts for managing your Minecraft server. These scripts, mcwatchdog and minecraft, are essential for automatic server restarts and service management.

  1. Download the mcwatchdog and minecraft scripts. (These scripts are typically provided alongside tutorials like this. You may need to search for “mcwatchdog and minecraft scripts for FreeNAS minecraft server” to find a downloadable source or copy them from the original guide if available.)
  2. Place both mcwatchdog and minecraft scripts (without any file extensions) into the /usr/local/etc/rc.d directory within your jail.

Alt text: File system diagram showing minecraft_server.jar file located in /srv/minecraft folder and mcwatchdog and minecraft files located in /usr/local/etc/rc.d folder.

Note for Bukkit/Spigot/Paper Users: If you intend to use server modifications like Bukkit, Spigot, or Paper, you would replace the minecraft_server.jar with the corresponding .jar file for your chosen modification (e.g., spigot.jar, paper.jar) and rename it to minecraft_server.jar. Place this renamed file in the /srv/minecraft directory.

7. Boot Up and Configure Services

Start the minecraftserver jail again from the FreeNAS WebGUI. Once the jail is running, access its command line as root. Execute the following commands to set permissions and enable the watchdog and Minecraft server services:

chmod +x /usr/local/etc/rc.d/mcwatchdog
chmod +x /usr/local/etc/rc.d/minecraft
chgrp -R wheel /usr/local/etc/rc.d
chmod -R 777 /srv
chown -R root /srv
chgrp -R minecraft /srv
sysrc mcwatchdog_enable=YES
sysrc minecraft_enable=YES
sysrc sshd_enable=YES

These commands do the following:

  • chmod +x /usr/local/etc/rc.d/mcwatchdog and chmod +x /usr/local/etc/rc.d/minecraft: Make the mcwatchdog and minecraft scripts executable.
  • chgrp -R wheel /usr/local/etc/rc.d: Sets the group ownership of /usr/local/etc/rc.d to wheel.
  • chmod -R 777 /srv: Sets read, write, and execute permissions for all users on the /srv directory (for initial setup – you might want to restrict this later for security).
  • chown -R root /srv: Sets the owner of /srv to root.
  • chgrp -R minecraft /srv: Sets the group ownership of /srv to minecraft.
  • sysrc mcwatchdog_enable=YES, sysrc minecraft_enable=YES, sysrc sshd_enable=YES: Enable the mcwatchdog, minecraft, and sshd services to start on jail boot.

8. Start Services and Test

Now, start the SSH and Minecraft server watchdog services:

service sshd start
service mcwatchdog start

If everything is configured correctly, your Minecraft server should now be running! To verify, you can try connecting to your server using your Minecraft client. Use the IP address you assigned to the jail (e.g., 192.168.2.128).

As a final test, stop the jail from the FreeNAS WebGUI and then start it again. This will ensure that the Minecraft server service starts automatically on boot. It might take 5-10 seconds after starting the jail before the server becomes accessible.

9. Administering Your Minecraft Server

To access the Minecraft server console for commands (like /op, /gamemode, etc.), you’ll use SSH.

  1. Use your preferred SSH client to connect to the jail’s IP address.

  2. Log in with the username minecraft and the password you set earlier.

  3. Once logged in, type:

    screen -x

    This command attaches you to the running Minecraft server console within a screen session. You can now type Minecraft server commands directly.

    To detach from the screen session without closing the server, press Ctrl+a then d. To re-attach later, use screen -x again. Important: Do not use Ctrl+C while in the Minecraft server console as this will stop the server. Simply close your SSH client or detach from the screen session when you’re done administering. The mcwatchdog script will automatically restart the server if it crashes for any reason.

10. RAM Allocation Settings

By default, the Minecraft server is configured to use a minimum of 512MB and a maximum of 1GB of RAM. For servers with more players or larger worlds, you may need to increase these values. Remember that RAM allocated to the Minecraft server is taken from your FreeNAS system’s total RAM.

To adjust RAM settings, you need to modify the minecraft_java_opts system variable. For example, to set the minimum RAM to 1GB and the maximum to 2GB, use the following command within the jail as root:

sysrc minecraft_java_opts="-Xms1G -Xmx2G"

After changing RAM settings, restart the Minecraft server service:

service minecraft restart

Note: You can add other Java arguments to minecraft_java_opts as needed.

11. Configuring server.properties

The server.properties file, which controls various Minecraft server settings (like game mode, difficulty, world settings, etc.), is located in /srv/minecraft within the jail.

To modify server.properties:

  1. Stop the minecraftserver jail (or the mcwatchdog and minecraft services).
  2. Edit the server.properties file using a text editor.
  3. Save your changes.
  4. Start the jail (or the services).

Stopping the jail is generally the safest and easiest method to ensure configurations are applied correctly.

12. Installing Server Addons (Plugins)

If you want to enhance your Minecraft server with plugins (using Bukkit, Spigot, Paper, etc.), follow these steps:

  1. Stop the minecraftserver jail.
  2. Delete the existing minecraft_server.jar file from /srv/minecraft.
  3. Rename your Bukkit/Spigot/Paper .jar file to minecraft_server.jar.
  4. Copy the renamed minecraft_server.jar file to /srv/minecraft.
  5. Start the jail.

Plugins are typically placed in a plugins folder within the /srv/minecraft directory, which is created automatically when the server starts with a Bukkit/Spigot/Paper .jar.

13. Network Accessibility

Configuring external network access to your Minecraft server over the internet involves port forwarding on your router and potentially setting up a dynamic DNS service. These steps are specific to your network setup and router model and are beyond the scope of this guide. Please consult your router’s documentation and online resources for instructions on port forwarding.

14. Updating Your Minecraft Server

To update your Minecraft server to a newer version:

  1. Stop the minecraftserver jail.
  2. Download the new minecraft_server.jar file from the official Minecraft website.
  3. Replace the old minecraft_server.jar in /srv/minecraft with the new one (remember to rename it to minecraft_server.jar if necessary).
  4. Start the jail.

To update installed packages within the jail:

service mcwatchdog stop
service minecraft stop
pkg update
pkg upgrade
service mcwatchdog start
service minecraft start

Enjoy your newly created Minecraft server on FreeNAS! With this setup, you have a robust and customizable platform to build and share your Minecraft world with friends.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *