Migrating your local Windows PaperMC based Minecraft server to Unraid

Dylan Souvage
16 min readAug 10, 2023
Kearney, Ontario in the Winter by Dylan Souvage

(Note: you can also follow this blog to deploy a vanilla PaperMC server as well)

If you find yourself like me, and you have an old windows PC lying around that you use for your Minecraft server, then you might have explored other operating systems like Unraid. I had been backing up files to the server and even stored movies on it, but wasn’t running Plex or any kind of network file drive, it was basically cold storage (that didn’t even have data redundancy).

As you walk through this process, you’ll gain insights into the advantages of PaperMC, the unique benefits of Unraid, and a step-by-step walkthrough on the migration process. Whether you’re a seasoned server administrator or just starting out, by the end of this article, you’ll be equipped with the knowledge and confidence to make a seamless transition.

Why PaperMC

Running PaperMC is a game changer, if you’re still on regular Minecraft, I highly recommend checking it out. At its core, PaperMC promises enhanced performance with several bespoke optimizations not found in the vanilla server, ensuring a smoother gaming experience and the capacity to accommodate more players seamlessly. Beyond performance, PaperMC shines with its extended features, allowing server owners unparalleled customizability. Moreover, it supports a vast range of plugins, both from Spigot and its own specific API, enriching the gameplay and ensuring server uniqueness.

Speaking of plugins, I personally use Dynmap, Essentials & EssentialsDiscord, ViaBackwards, ViaVersion, LuckPerms, ChestSort and bStats. This allows for greater flexibility in permissions management, integration with Discord, interesting stats, automatic chest sorting and the ability for players to still connect even if they’re on a different MC version!

The benefits don’t stop at performance and customizability. PaperMC has a commendable focus on security, frequently patching vulnerabilities faster than its official counterpart. Coupled with this is an active, vibrant community driving regular updates and innovations. Essential tools like Timings v2, designed to identify and rectify performance issues, come integrated with PaperMC. Lastly, its efficient resource management means potential cost savings, as server admins might not need as powerful hardware as with a vanilla server. In essence, for those seeking an enriched, cost-effective, and secure Minecraft experience, PaperMC emerges as a compelling choice.

As you delve into the benefits of PaperMC, it’s crucial to highlight the importance of version compatibility. Minecraft, being a continually evolving game, sees regular updates and changes. When migrating your server, ensure that the PaperMC version you’re using aligns with the Minecraft version of your server. Additionally, plugins can be version-specific. Before making the switch, verify that all your plugins are compatible with both your Minecraft and PaperMC versions. This proactive check can save you from potential headaches and ensure a smooth migration process.

Why Unraid?

Unraid presents several advantages over a regular Windows installation. Unraid’s unique architecture allows for the efficient use of mixed-drive storage, ensuring optimal performance from older hardware. Beyond storage, its lightweight nature and support for Docker containers mean you can seamlessly run and manage your Minecraft server with minimal overhead, granting stability even on dated machines. Additionally, Unraid provides enhanced data protection features and the flexibility to run multiple virtualized systems concurrently. Thus, for those repurposing old server PCs, Unraid offers an optimal blend of performance, versatility, and protection.

I came across Unraid from Linus Tech Tips and saw how easy and effective it was to set up, so I gave it a shot through their trial. I loved it immediately, the ease of setting up containers and setting up data parity through their pool system.

If you’re still running your old Windows PC as a dedicated Minecraft server, I highly recommend exploring Unraid (and maybe some other OS’s!). The ease of setup is awesome and the management is easy. I also feel safe knowing that the world is backed up through the pooling system (which is doable on Windows as well).

Why Not Unraid?

While Unraid offers a plethora of advantages, as with any technology, it’s essential to understand its potential limitations to make an informed decision. Here are some considerations to keep in mind:

  1. Licensing Costs: While Unraid does offer a free trial, long-term use requires purchasing a license. Depending on the number of storage devices you plan to use, the costs can add up.
  2. Performance Overhead: Unraid operates by using a parity disk system for data protection. While this provides redundancy, it can sometimes result in slower write speeds compared to traditional RAID setups.
  3. Limited Native App Ecosystem: While Unraid supports Docker containers, which significantly expands its software capabilities, its native app ecosystem is limited compared to other NAS operating systems.
  4. Learning Curve: For users new to server management or those transitioning from other NAS solutions, there might be a learning curve associated with understanding Unraid’s unique features and configurations.
  5. Hardware Compatibility: While Unraid is compatible with a wide range of hardware, it’s always a good idea to check the compatibility of specific components, especially if you’re considering a custom build.

The Imperative of Regular Backups and Data Redundancy:

Before diving into the migration process, it’s crucial to underscore the importance of maintaining regular backups of your Minecraft server. Just as you wouldn’t embark on a long journey without a spare tire, you shouldn’t manage a server without a backup strategy in place. Here’s why:

  1. Safety Net: No matter how careful you are, unforeseen issues can arise — from software bugs to hardware failures. Regular backups act as a safety net, ensuring that you can quickly restore your server to a working state.
  2. Peace of Mind: Knowing that you have a recent backup provides peace of mind. Whether you’re applying a significant update, adding new plugins, or making other changes, you can proceed with confidence, knowing that you have a fallback.
  3. Data Integrity: Regular backups ensure that you don’t lose player data, world configurations, and other essential information. This is especially vital if you’re running a server with a large player base or a long history.

Migrating your Windows based Minecraft Server to Unraid

This blog will not talk about installing Unraid, though that process is fairly easy. Check out the Getting Started guide on Unraid here:

https://docs.unraid.net/unraid-os/manual/getting-started/

This blog will begin assuming you have already done the following:

  1. Set up an Unraid server, you should have the ability to login on your local network via http://tower.local/
  2. You have initialised and set up your Array and Pool devices.
  3. You have backed up your Minecraft server onto a USB device or a PC that is separate from your Unraid server.
  4. A User Share titled “minecraft” in either your Array or Pool.

I also want to make it clear that some of the permissions we will set, such as file read/write access, and privileged access, will not be best practices from a security standpoint. I highly recommend reviewing these settings and modifying them post migration.

Deploying basic PaperMC on Unraid

To begin, we’ll begin by adding a container to your Unraid deployment.

Start by navigating to “DOCKER” at the top navbar.

Next select “ADD CONTAINER”

Set the settings as follows:

  1. Name: Whatever you choose, I chose PaperMC
  2. Repository: marctv/minecraft-papermc-server
  3. Note, you don’t need to use this repository, it is what I personally used though. It is regularly updated and open source, see here: https://hub.docker.com/r/marctv/minecraft-papermc-server
  4. Network type: Bridge
  5. Console Shell Command: Shell
  6. Privileged: OFF

Running containers in privileged mode gives them almost the same privileges as the host machine. This can be a serious security concern, especially if there’s a vulnerability in the application running inside the container. Do not enable this unless you are troubleshooting AND trust the docker container.

Next, you’ll need to add variables and ports for the following:

  1. Variable: MinecraftData
  2. Put the directory you want your Minecraft world to reside in, this will be important as we will overwrite the directory with your existing Minecraft world later. In my case, I deployed the world to my cache pool via /mnt/cache/minecraft as I want my faster SSD’s to run the world, if you’re using your Array, input /mnt/user/minecraft/ instead.

  1. Variable: MemorySize
  2. this highly depends on your server, in my case I have 16gb of ram so I dedicated 4GB via 4G.

  1. Port: MinecraftServerPort
  2. 25565

  1. Port: MinecraftServerMapPort:
  2. 8168 (this is for Dynmap, if you’re not using Dynmap, you don’t need to create this variable).
  3. Click done, and you should deploy a basic PaperMC server.

Check that you see something like this in your Docker tab. View the logs by selecting your PaperMC container and choosing “Logs”.

Once you navigate to the logs, your server should have started up. Feel free to attempt connecting by finding your local IP via the container tab (the IP and port should be on the container description), and joining the server. Note, your server likely won’t work via the public internet yet unless you’ve already done port-forwarding (see the port-forwarding section of this blog post).

If you’re facing any errors, don’t worry, scroll to the bottom of this blog post and I’ll lay out common errors you might face and how to resolve them.

Exposing your PaperMC server to the public internet

At this point, you should have:

  1. A working (at least locally) vanilla PaperMC server running on your Unraid server.

If you’re already familiar with port forwarding, feel free to skip to the next section. But if you’re setting foot in the world of PaperMC servers for the first time, here’s a concise guide to help you expose your Minecraft server to the public internet.

Before diving in, it’s essential to know what port forwarding does. Essentially, it tells your router that the traffic coming on a specific port should be directed to a particular device on your network, in this case, your Unraid server running PaperMC.

  1. Launch Your Browser: Open any web browser on a device connected to the same network as your router.
  2. Enter the Router’s IP Address: Typically, this is 192.168.1.1 or 192.168.0.1. If neither works, you might need to check your router’s documentation or its label.
  3. Login: Use the router’s admin credentials. If you’re unsure of these, they’re often ‘admin/admin’ by default, but it’s a good practice to change them.
Yes, I still use Firefox

Find Port Forwarding Section: This might be labelled as ‘Port Forwarding’, ‘Virtual Server’, ‘NAT/QoS’, or something similar, depending on the router brand.

  1. Specify Internal IP: This is the IP address of your Unraid server on your local network. You should have this from the previous section, it should look something like 192.168.x.x
  2. Choose the Port: The default port for Minecraft is 25565 Ensure you forward this port to the internal IP address of your Unraid server.
  3. Set Protocol: Select ‘TCP/UDP’ or both if you have the option.
  4. Save Changes: Confirm and save the changes you’ve made.

Your Minecraft server should be open to the public now, feel free to have a friend connect or test it via one of the following:

  1. A server checker site such as mcsrvstat.us or minecraft-server-status.com can be used. Enter Server Details: Input your public IP address and the port number (usually 25565 for Minecraft servers) into the relevant fields.Check the Status: The tool will attempt to connect to your server. If it’s successful, it indicates that your server is accessible to the public.
  2. Visit a Port Check Website: Websites like yougetsignal.com, portcheckers.com, or canyouseeme.org offer free services to check for open ports.Enter the Necessary Information: Type in your public IP address (the site may detect this automatically) and the port number you want to test (for a standard Minecraft server, this would be 25565). Run the Test: Click on the button to run the check. If the port is open and correctly forwarded, the site will confirm that it can see your service.
  3. For those more technically inclined, command-line tools like telnet and nc (netcat) can be used: Using Telnet: Open Command Prompt or Terminal and type: telnet your-public-ip 25565. Using Netcat: In a Linux Terminal or macOS, type: nc -vz your-public-ip 25565. If the port is open and correctly forwarded, you’ll receive a successful connection message. Replace your-public-ip with your actual public IP address.

While port forwarding does open a channel for external players to join, it also poses certain risks. Consider using Minecraft’s built-in whitelisting feature to allow only specific players to join.

Moving your existing world and PaperMC onto your Unraid Server

If all you were trying to do is launch a vanilla PaperMC server, congratulations, you are done!

If you’re still looking to migrate your old server, this is how you will do so.

Before continuing, you should have the following:

  1. A working vanilla PaperMC server running on your Unraid server, accessible via the public internet.
  2. A backup copy of your PaperMC server.
  3. Disable your PaperMC server on the docker container by selecting the container and choosing Stop, ensure autostart is disabled.

First, you will need a second device, in this case, I will be using my home Windows desktop PC to connect to my Unraid server via the NFS.

You will need two things to do this once you have your second PC with your old Minecraft back up on it.

  1. A User Share that is accessible via the NFS.
  2. A User that you can log into via that can access the User Share via the NFS.

To begin, we can review a User Share that is properly configured.

The settings should look like the following (assuming you’re using a Cache based system):

Pay attention to the SMB Security Settings as they are what is relevant for accessing. I will only list the relevant settings that you need to select in order to make it accessible.

  1. Share name: minecraft
  2. Export: Yes
  3. Security: Public

You do not necessarily need these settings to be set up like this, but for the ease of deployment and troubleshooting later, you will select these settings.

Next you will need a User that has read and write access to the Minecraft share.

Add a user and configure the following under share, Read/Write to the Minecraft user share.

Now you should have access to the NFS via your explorer.

You should be able to type \\{your_Unraid_server_name}\minecraft and navigate to the minecraft folder via explorer. In my case, I used \\tower\minecraft.

Now, you can simply copy from your existing Minecraft backup to the network Minecraft server.

Congratulations, you should now have migrated your Minecraft Server to Unraid!

Troubleshooting and Common problems

User does not have permission

If you come across this error while trying to move your files or if the minecraft server can’t access the share, it is likely an ownership issue.

You will need to navigate to the terminal in Unraid.

Then cd into your minecraft directory and change the ownership of the files or add r/w permissions to everyone, you can do this by running the following commands:

To grant read/write permissions to everyone for all files and directories, use the chmod command:

chmod -R 777 ./*

Caution: Granting 777 permissions means you're giving read, write, and execute permissions to everyone. This can pose a significant security risk, especially if your server is exposed to the public internet. It's essential to be cautious and understand the implications of such permissions. Instead of granting full permissions to everyone, consider setting more restrictive permissions. For instance:

chmod -R 750 ./

  • This gives full permissions to the owner, read and execute permissions to the group, and no permissions to others.

Ensure that the user running the Minecraft server is the owner or part of the group that has the necessary permissions.

If you want to change the owner and group of the files to a particular user (e.g., “nobody”, which is a common user in Unraid), you’d use the chown command:

chown -R nobody:nobody .

You can also replace “nobody” with your User in Unraid.

A Word of Caution: Granting read/write permissions to everyone can pose a security risk, especially if sensitive data is involved. It’s advised to be absolutely certain about the implications before proceeding. Consider applying more restrictive permissions if you understand which specific user or group needs access.

Router port forwarding, still no public internet access

While the guide provided offers a general overview of port forwarding, it’s essential to understand that routers can vary significantly in their interfaces and settings. To ensure accurate configuration, always refer to the documentation specific to your router model. Most manufacturers provide detailed online manuals or support pages that offer step-by-step instructions tailored to their devices. Taking the time to consult these resources can help avoid potential pitfalls and ensure that your server is correctly exposed to the public internet.

1. Check for Duplicate Entries: One of the most common hiccups after migrating servers is overlooking previous port forwarding rules set up for the old server.

  • Log in to your router’s web interface.
  • Navigate to the Port Forwarding section.
  • Look for any entries that reference the old Windows server or use the same port you are trying to forward for your new Unraid server.
  • If you find such entries, delete or disable them to prevent any conflicts.

2. Ensure Correct Internal IP Address:

  • Your Unraid server will have a different internal IP address than your old Windows server. Double-check that your new port forwarding rule points to the correct internal IP of the Unraid server.

3. Firewall Considerations:

  • If you’ve set up the port forwarding correctly but still can’t access your server from the public internet, the issue might be with a firewall on your Unraid server or network. Ensure that the firewall rules on the server are configured to allow incoming connections on your Minecraft server port.

4. Server Properties: In the server.properties file, ensure that settings related to security, like online-mode, are correctly configured. For instance, setting online-mode to true ensures that players authenticate with Minecraft’s official servers, reducing the risk of unauthorised users.

How to troubleshoot PaperMC logs in Unraid

  1. Access Unraid’s web interface log into the Unraid web GUI using your preferred web browser.
  2. Navigate to the docker tab, once inside the Unraid web interface, click on the “Docker” tab to view a list of your running containers.
  3. Find the PaperMC container in the list. If you have many containers, it might be beneficial to use the search bar.
  4. Access the container’s logs, next to the PaperMC container listing, there should be a set of icons. One of these icons looks like a piece of paper or document. Clicking on this will open a window displaying the container’s logs.
  5. Once you have the logs opened, look for any errors or warnings. Common indications of problems include lines starting with ERROR or WARN. These lines should give a hint about what’s causing the issue.

Common Log Errors and Their Solutions:

OutOfMemoryError:

  • Error: java.lang.OutOfMemoryError: Java heap space
  • Cause: This error indicates that the server ran out of memory. It’s a common issue, especially when running large worlds or many plugins.
  • Solution: Increase the allocated memory for your PaperMC server. In the Docker container settings, adjust the MemorySize variable to a higher value, ensuring your server hardware can support the increase.

Failed to Bind to Port:

  • Error: Failed to bind to port!
  • Cause: This error occurs when the server port (usually 25565) is already in use or blocked.
  • Solution: Ensure no other service or server instance is using the same port. If you’re running multiple Minecraft servers, assign a unique port to each. Additionally, check your Unraid firewall settings to ensure the port isn’t blocked.

Plugin Incompatibility:

  • Error: Could not load 'plugins/PluginName.jar' in folder 'plugins'
  • Cause: The server couldn’t load a specific plugin, possibly due to incompatibility with the current PaperMC version or conflicts with other plugins.
  • Solution: Check if the plugin is compatible with your PaperMC version. If it’s outdated, look for an updated version of the plugin. If the error persists, consider temporarily removing other plugins to identify potential conflicts.

Missing or Corrupted World Data:

  • Error: Failed to load level <world_name>
  • Cause: This error suggests that the server is unable to load a specific world, possibly due to missing or corrupted data files.
  • Solution: Restore the world from a backup if available. If you don’t have a backup, you might need to recreate the world or attempt to repair the corrupted files using Minecraft world repair tools.

I highly recommend trying pasting your server logs into something like chat-gpt, it’s great at helping troubleshoot these issues.

Conclusion

Success!

Migrating your local Windows PaperMC-based Minecraft server to Unraid offers a plethora of benefits, from enhanced performance to increased flexibility. As we’ve explored, Unraid’s unique features make it a compelling choice for server administrators, while PaperMC ensures an optimized Minecraft experience. However, like any migration process, there are challenges to anticipate and overcome. With the right knowledge and tools, these challenges become mere stepping stones to a more robust gaming experience.

For those eager to delve deeper into the intricacies of Unraid or PaperMC, or for those looking for more advanced tutorials, I recommend the following resources:

  1. Unraid Official Documentation — A comprehensive guide to all things Unraid.
  2. PaperMC Community — Engage with other PaperMC enthusiasts, ask questions, and share experiences, via forums or discord.
Intel i7 4790k, 16gb of DDR3 Ram, the server in all it’s glory, nicknamed “Juicy Cat” (from a randomizer in 2012).

Thank you for reading my blog post, and if you come across any other issues, feel free to write in the comments below and I’ll be happy to help if I can! If you enjoyed, please consider applauding this post and sharing it with others.

--

--