Skip to content

Setting up a Minecraft Server in Docker on a Synology NAS

In this guide I am going to take you through the steps to get a basic Minecraft server up and running. We will be using DSM6 and the latest version of Docker at the time of writing. The server I run is now open to anyone who want’s to play, its usually up and running most of the time. You can see its status in the widget on the left of this page 🙂

Downloading the Container

Open up Docker within DSM and navigate to the ‘Registry’ tab and search for ITZG in the keyword box.within the results right click and download the ‘ITZG|Minecraft-Server’, When it asks which version number to download choose whichever version you want for the server. It allows you to choose ‘latest’ to pull the latest and greatest server version, or has some specific versions if you want them.

Search and Download
Select the version

PUID and PGID

In order for the Docker container to access the shares on the NAS we need to give it the same permissions as a user who has access to those shares, we achieve this by associating the correct Personal User ID and Personal Group ID to the container.

You will need to SSH into your Diskstation using ‘Putty’ or an equivalent program.

Open up Putty, the only thing you need to enter is the IP address of your NAS and select the SSH radio button.

SSH into your Synology to find out your ID’s

Click on open, you will get a prompt asking if you trust the key, if this is the first time you have used SSH, just press OK or accept.

Enter the login information for your Synology user account, you will not be able to see the password as you type it, I use a very long one so I just paste it in from my password manager. (right click acts as paste in Putty)

Once logged in type ‘id’ without the quotes and this will show your UID(aka PUID) which in my case is 1026 and the GID(aka PGID) which is 101 for an administrator. Make note of these values as we will need them later.

Command to get the ID’s

Setting up the container

Now we have downloaded the container and got hold of our user IDs we can move onto the next stage, where we will configure the Docker container. First go back into Docker and click on the ‘Image’ tab, in the list of your containers select the ITZG minecraft server, and click on ‘Launch’

Time to start

You will be greeted with the initial setup screen, this is where you can start specifying some of your preferences. As this is a Minecraft server it will likely use as much memory and CPU usage as you allow it, if you are running the server on a lower specification NAS you will probably want to set limits around the CPU priority and memory usage to ensure DSM is still usable when the server is running. In this case I am leaving this as the defaults, you can always come back and tweak these settings later once the server is setup.

The initial setup screen

Next up we are going to setup some of the ‘advanced’ settings so click on the ‘Advanced’ button.

Advanced Tab

On this first tab you can decide if you want to create a shortcut to the server on the DSM desktop and also if you want the server to start up automatically if you ever restart the NAS, this is useful if you don’t want to login to manually startup the server.

Advanced Settings

Volume(s)

In the next tab we need to setup where we want the various Minecraft world files to reside, having these outside of the container will mean you can make backups of the entire server, great if someone decides to flood the map with Lava.

Personally, I setup folders for each of the  containers I am running in the default Docker directory as this keeps things nice and tidy. We are  going to mount a single directory for this container, the internal “/data” directory to the NAS “/docker/minecraft” seen the screenshot to see exactly how this is laid out.

Specify where you world files should reside

Network

You do not need to adjust and settings in this tab.

Port Settings

By default docker will automatically assign external ports to your Docker container, however we will never know what they are until the container is launched and also they may change upon a reboot, so we will need to assign some specific ports. In the case of this container Minecraft uses high value port number so it’s unlikely to clash with any other containers or ports already used by DSM. So we are just going to enter the same port numbers on the left hand column.

Assign your ports

Environment Variables – PGID , PUID and EULA

We can now enter the details obtained earlier on in the guide for the PGID and PUID, if these settings are incorrect it will result in the Docker containers internal user not being able to see the shares we specified and the world files and other server settings will not appear in the folder.

In addition to this we have to accept the Minecraft EULA so you will add an additional variable called EULA with the value set to TRUE.

*Please note the screenshot below has been updated, as you can see after you run the server for the first time a lot of additional variables are automatically added. Ignore the GID and UID towards the top of this screenshot we only need to fill in the items at the bottom!

You have now completed the hard part of the guide, click on OK and you will be taken back to an overall summary screen, this is just a summary of the settings you have entered, just do a quick sanity check to make sure they are correct. if you want to launch the server immediately check the box and click on finish.

Final summary page

Server startup time

The first time the server is launched it may take a few minutes to start as the files are downloaded and the world in generated, this time will depend on how fast your Synology performs, you can track the progress by going into the ‘Containers’ tab and clicking on details, and then either viewing the terminal or log tabs.

You will just need to enter your server settings into your Minecraft settings screen and join, you can make amendments to the servers settings from within the folder you used to store it’s files as well as installing any mods you want.

If you get something setup ping me an invite and I will come and play!

Published inDockerGamingMinecraft

54 Comments

  1. Pedz Pedz

    Ugh… Docker fails to start the container properly. 🙁 The LOG says that we must accept the EULA. Any idea how do we do this?!

    • Pedz Pedz

      Must add another environment variable:

      EULA variable must be set to TRUE

      Then it works! 🙂

      Thanks for the tutorial!

      • Dr_Frankenstein Dr_Frankenstein

        Hey, not sure how I managed to miss this. Now I know why I couldn’t update my son’s server! the guide has been updated.

        • Vincent Vincent

          Could u also make a guide for setting up a craftbukkit server?

          • Dr_Frankenstein Dr_Frankenstein

            I can only really use what’s already been built in Docker. I will have to look to see if someone has built a container

  2. Pete Pete

    Excellent thanks!! I managed to setup a server without too much hassle. Now to the next thing.
    Any guide available on how to install mods with this setup? Having severe issues figuring it out…

  3. Kevin Kevin

    Thank you for the tutorial! Was very informative and easy to follow with no problems during setup. I’m using the DS1815+ NAS and this was able to run. My kids will appreciate it!

  4. George Staver George Staver

    I also have this up and running. However, I cannot locate the config files. I have the mount point setup but I cannot see any folders or files. Can you help? Thanks.

  5. David Hahn David Hahn

    Just wanted to hop in here and give you a HUGE “thank-you” for the walkthrough, Dr_Frankenstein. Docker has definitely been the most confusing thing to learn while playing with my DS916+ and you made it a breeze to get everything set up. Running a very happy little server for my pals now.

  6. L-Dub L-Dub

    Ok, I will admit it, I am a rookie and I am missing something. I believe that I have set everything up ok on the server side 916+ (I think). However I cannot get logged on to the game. I have tried connecting via my windows 10 computer and via ipad, and I get the same “unable to connect to world” error Truth be told we really want to connect using Ipads using PE. So I hope this is possible.

    Logs on the server seems to indicate that the world is prepared, as the logs report that it completes preparing the spawn area and logs states that they are “starting remote control listener”

    Keeping it simple, when attempting to log in, the server name is just the server name correct? The server address is just the local server IP address, and the Port is 25565?

    Also, to get Putty to work, I needed to enable the SSH service on port:22 is that the right thing to do? till I get some answers I have disabled it.

    Any constructive ideas or comments would be most appreciated.

    Cheers

    • Dr_Frankenstein Dr_Frankenstein

      Hey L-Dub it sounds like you are trying to connect with versions of the game that are not compatible with the server, this version of the server is for the original Java PC version of Minecraft, you will find the ‘Windows 10 Edition’ on the windows store is actually a port of Minecraft pocket used on iPad/Android.

      You are doing everything correctly.. try using the Java version of the game

      • L-Dub L-Dub

        Great feedback says the rookie. I think we have to much invested in the other versions….Win10/ X-Box, and I-pads. I will socialize with the project manager (my 8 year old), see what she says. Even though I haven’t tried with the X-box I assume that it will have the same issues.

        The only feedback I can give is that I needed to find some basic info on the use of putty, otherwise this was a great instruction set.

        Thank you

  7. elHacko elHacko

    Hi,
    how about performance of MC server on synology?
    Anyone already had about 6 to 10 players online running?
    I think about using my 216+ (8GB RAM).
    Regards,

    Michael

    • Dr_Frankenstein Dr_Frankenstein

      it’s worth a try but I think it may struggle with more than 3 or 4 players, on my 1815+ we get the odd hiccup with 5 players usually if someone wonders off into a new area and it has to generate the world.

  8. Matt Matt

    Thanks very much for the thorough explanation! I am a complete Docker/NAS noob, so apologies in advance. I have the server up and running on a 713+, but am having issues with timeout on the client side. In the server logs, I note messages along the following that eventually lead to the server shutdown:
    [Server thread/WARN]: Can’t keep up! Did the system time change, or is the server overloaded? Running 31499ms behind, skipping 629 tick(s)
    Any ideas on how to remedy? Thanks again.

    • Dr_Frankenstein Dr_Frankenstein

      This is usually when the CPU in your NAS is struggling to keep up with the changes happening in the world, if it is skipping that many ticks then it’s getting considerably behind. Did you limit the amount of CPU usage your container is allowed to use? Ideally let it use the max possible and increase its priority.

  9. darklordbazz darklordbazz

    it is keep crashing when i start it and it says “end of input at line 2 column 1 path

    • Dr_Frankenstein Dr_Frankenstein

      Is this message in the logs? or does it pop up when starting the container? As the one I originally setup is still going strong and updates the latest version upon restart..

  10. polynator polynator

    Great tutorial. First minecraft worlds are up and running. Unfortunately the world files and other server settings do not appear in the folders. Via PuTTy I’ve checked the UID (1026) and GID (101) and keyed them into the docker settings. Any idea I can’t see the the files in the folder anyway?

    • Dr_Frankenstein Dr_Frankenstein

      Hey make sure you enter the variables as PUID and PGID I just spotted the screen shot in the guide shows the wrong ones, I will get it updated.

      • polynator polynator

        Ahh, thx. Meaning that PUID and PGID are inverted in the screenshot?

  11. Justin Justin

    So i am a minecraft noob and setting this up for my son and his friends. I see the server running and I enter my local IP address and the local port and I could not connect.

    I went into the logs for the Minecraft container and I noticed it keeps restarting as it says “Error:unable to access jarfile minecraft_server..jar

    Any thoughts?

  12. Justin Justin

    Also I see this in the log

    Error: Invalid or corrupt jarfile minecraft_server.1.12.2.jar

    • Dr_Frankenstein Dr_Frankenstein

      I would probably scrap the container and start again. Sounds like something didn’t download correctly.

  13. MadOff MadOff

    Hello, i have a fail to login ! don’t how to fix it, thanks

  14. Justin Bennett Justin Bennett

    So i started over again and re-downloaded the container and followed the instructions EXACTLY (even with the PGID and PUID and EULA). I still get the same error.

    Checking type information.
    stdout
    14:08:10
    Skipping JSON check. No files present.
    stdout
    14:08:10
    Setting initial memory to 1G and max to 1G
    stdout
    14:08:10
    Error: Invalid or corrupt jarfile minecraft_server.1.12.2.jar
    stdout
    14:08:17
    Switching to user ‘minecraft’
    stdout
    14:08:17
    Checking version information.
    stdout
    14:08:18
    Checking type information.
    stdout
    14:08:18
    Skipping JSON check. No files present.
    stdout
    14:08:18
    Setting initial memory to 1G and max to 1G
    stdout
    14:08:18
    Error: Invalid or corrupt jarfile minecraft_server.1.12.2.jar
    stdout
    14:08:31
    Switching to user ‘minecraft’
    stdout
    14:08:31
    Checking version information.
    stdout
    14:08:31
    Checking type information.
    stdout
    14:08:31
    Skipping JSON check. No files present.
    stdout
    14:08:31
    Setting initial memory to 1G and max to 1G
    stdout
    14:08:31
    Error: Invalid or corrupt jarfile minecraft_server.1.12.2.jar

  15. Dr_Frankenstein Dr_Frankenstein

    Hey, I would check but my 1815+ went back to Synology as it died. I will get Docker installed on my 412+ and see if I get the same error

  16. MadOff MadOff

    I found, you have to add /FALSE in the server file on the line: network TRUE/FALSE

    • Justin Bennett Justin Bennett

      Is this within the environment tab on docker or someplace else? I have no environment variable called Network

  17. Justin Bennett Justin Bennett

    Any idea where I can modify this setting:

    I found, you have to add /FALSE in the server file on the line: network TRUE/FALSE

    • Dr_Frankenstein Dr_Frankenstein

      Is this within the actual Minecraft server settings file

      • Justin Bennett Justin Bennett

        I have no idea… I was replying to MadOff who recommended making this change to possibly correct my error.

  18. Justin Bennett Justin Bennett

    Any update? Want to try again this weekend…. “Dr Frankenstein” would it be possible to screenshot you my setup because maybe I am missing something?

  19. MCinPDX MCinPDX

    Brilliant write-up. Had this running for the kids in about 15 minutes with the default properties file. Thanks much!

  20. lacojurdik lacojurdik

    Minecraft server works without any problems.
    I have NAS 1818+ 16GB RAM
    I would like to add minecraft forge with modes, is it possible?

    • Dr_Frankenstein Dr_Frankenstein

      The server should work like any other all the files are located in the folder you specified in the setup. I have not done this myself though so just give it a go.

  21. Fabian Rehbein Fabian Rehbein

    anyone know the Envirement Values, when i try to run FTB Beyond 1.10.2 ?
    i just dont manage it to start the server

  22. just tried to set it up, after completion but keeps start/stopping and deleting the container.
    Anyone knows why this is happing, this is from the log:

    Level Date & Time User Event
    Information 2018/05/29 14:02:31 lokan Add image from docker.io/itzg/minecraft-server:latest
    Information 2018/05/29 14:45:31 lokan Create container itzg-minecraft-server1.
    Information 2018/05/29 14:45:31 lokan itzg-minecraft-server1 connect to network bridge.
    Information 2018/05/29 14:45:38 lokan Start container itzg-minecraft-server1.
    Information 2018/05/29 15:55:09 lokan Stop container itzg-minecraft-server1.
    Information 2018/05/29 15:56:11 lokan Create container itzg-minecraft-server2.
    Information 2018/05/29 15:56:11 lokan itzg-minecraft-server2 connect to network bridge.

  23. Vincent Vincent

    I can’t find the right IP adres to the server to connect? can someone tell me where i can find it ?

    • Vincent Vincent

      Sorry, i meant for extern connection. intern connection is fine ^^

  24. Vincent Vincent

    okay I solved that issue, does anyone know how to add extensions to it ?
    like how to use te ”/home” command

  25. Vincent Vincent

    or plugins i mean, sorry for the spam

  26. Sven Sven

    Hi Guys,

    i need some Serious Help here – i did everthing exactly as your turtorial said but i cannot make a shareable folder. everytime if i try to mount my /data to any folder on /volume1/docker/minecraft it will keep me hanging on :

    ERROR: unable to write eula to /data. Please make sure attached directory is writable by uid=1026

    any hints would be veeeeery grateful accepted!

    Thank you

    • Dr_Frankenstein Dr_Frankenstein

      Is the user ID you are using to setup the container UID 1026 and part of the admin group

      • Sven Rohringer Sven Rohringer

        im using my admin account with 1024 and it also shows the same message.

        is id UID=XXX or PUID=xxx?

        Any help on this ?

        • Dr_Frankenstein Dr_Frankenstein

          OK it has been a while since I set this up and it looks like the container has gained a ton of additional settings!.. however it looks like it sets most of them up itself.. there are two lots of ID settings

          I am updating the screenshot showing them as we speak, you need to use your details just like any other container..

          PGID = 101
          PUID = 1026

          then it looks like the actual server itself has permissions for within the docker container

          UID = 1000
          GID = 1000

  27. Seems like it is not working anymore 🙁 I always get ERROR: unable to write eula to /data

    • I added the UID and GID environment variables as well and gave the folder (on the NAS) read/write rights to Everyone, now it seems to work.

      • How do you give read/write rights to “everyone”? Is this on the /docker/minecraft folder? I don’t see any “data” folder and I just get the error: “ERROR: unable to write eula to /data. Please make sure attached directory is writable by uid=1000”

        • Dr_Frankenstein Dr_Frankenstein

          Hi, you shouldn’t need to change any permissions to your folders. I can help if you ping me an email with a screenshot of your settings and get it working for you. drfranky at drfrankenstein.co.uk, I recently set this back up from fresh and all works fine.

    • Dr_Frankenstein Dr_Frankenstein

      I know I am asking obvious questions but did you accept the EULA in the settings as well?

  28. Hellangel Hellangel

    I Fixed it also with Permission “Everyone” Read/Write – in Minecraft Folder.
    otherwise the Share was empty. Now it works.

    • Dr_Frankenstein Dr_Frankenstein

      Glad you sorted it happy playing

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: