{"id":154,"date":"2024-05-20T13:43:04","date_gmt":"2024-05-20T03:43:04","guid":{"rendered":"https:\/\/idiotguides.net\/?p=154"},"modified":"2024-07-12T14:18:31","modified_gmt":"2024-07-12T04:18:31","slug":"minecraft-server-hosted-via-proxmox","status":"publish","type":"post","link":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/","title":{"rendered":"Minecraft Spigot Server Hosted via Proxmox"},"content":{"rendered":"\n<p>How to host a Minecraft Server inside a Proxmox LXC Container<\/p>\n\n\n\n<div class=\"wp-block-ideabox-toc ib-block-toc\" data-anchors='h2,h3,h4,h5,h6' data-collapsable='true' ><div class=\"ib-toc-container ib-toc-list-style-numbers ib-toc-hierarchical ib-toc-expanded\"><div class=\"ib-toc-header\"><div class=\"ib-toc-header-title\">Table of Contents<\/div><div class=\"ib-toc-header-right\"><span class=\"ib-toc-icon-collapse\"><span class=\"dashicon dashicons dashicons-minus\"><\/span><\/span><span class=\"ib-toc-icon-expand\"><span class=\"dashicon dashicons dashicons-plus\"><\/span><\/span><\/div><\/div><div class=\"ib-toc-separator\" style=\"height:2px\"><\/div><div class=\"ib-toc-body\"><ol class=\"ib-toc-anchors\"><\/ol><\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Creating an LXC Container<\/h2>\n\n\n\n<p>This assumes you have an existing Proxmox install, if you don&#8217;t we currently don&#8217;t have a guide however there are plenty out there.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Your first step on the Proxmox home screen is to open your Proxmox node and click &#8220;local(proxmox)&#8221;.<br>Then click CT Templates and search for your desired image, this guide assumes you will be using Debian 11<br>Select Debian 11 and click &#8220;download&#8221;<br>Next, in the top right click &#8220;Create CT&#8221;<br>Set the CT ID to whatever you want, or leave it as default, set a hostname (mine is minecraft) and set a password on the right hand side<br>Click Next and select the template you just downloaded, in this case Debian 11<br>Next again and select your storage and assign the disk size, I&#8217;m assigning 15GB<br>Next you will select how many CPU Cores you want to assign to the container, I would recommend 4<br>Your first step on the Proxmox home screen is to open your Proxmox node and click &#8220;local(proxmox)&#8221;.<br>Then click CT Templates and search for your desired image, this guide assumes you will be using Debian 11<br>Select Debian 11 and click &#8220;download&#8221;<br>Next, in the top right click &#8220;Create CT&#8221;<br>Set the CT ID to whatever you want, or leave it as default, set a hostname (mine is minecraft) and set a password on the right hand side<br>Click Next and select the template you just downloaded, in this case Debian 11<br>Next again and select your storage and assign the disk size, I&#8217;m assigning 15GB<br>Next you will select how many CPU Cores you want to assign to the container, I would recommend 4<br>In the next screen choose how much RAM you would like to allocate, recommended is at least 2GB but if you are going to have any more than a few players at least 4GB<br>In &#8220;Network&#8221; set IPv4 to DHCP and leave everything else as default unless you have reason to change it<br>Everything else can be left as is, continue to the end and select &#8220;Finish&#8221;<\/p>\n\n\n<style type=\"text\/css\" scoped>.rbs_gallery_69ee02224b693Spinner{\r\n\t\t\t\tmargin: 50px auto;\r\n\t\t\t\twidth: 50px;\r\n\t\t\t\theight: 40px;\r\n\t\t\t\ttext-align: center;\r\n\t\t\t\tfont-size: 10px;\r\n\t\t\t}\r\n\t\t\t.rbs_gallery_69ee02224b693Spinner > div{\r\n\t\t\t  background-color: #333;\r\n\t\t\t  height: 100%;\r\n\t\t\t  width: 6px;\r\n\t\t\t  display: inline-block;\r\n\t\t\t  -webkit-animation: rbs_gallery_69ee02224b693-stretchdelay 1.2s infinite ease-in-out;\r\n\t\t\t  animation: rbs_gallery_69ee02224b693-stretchdelay 1.2s infinite ease-in-out;\r\n\t\t\t}\r\n\t\t\t.rbs_gallery_69ee02224b693Spinner .rbs_gallery_69ee02224b693Rect2 {\r\n\t\t\t  -webkit-animation-delay: -1.1s;\r\n\t\t\t  animation-delay: -1.1s;\r\n\t\t\t}\r\n\t\t\t.rbs_gallery_69ee02224b693Spinner .rbs_gallery_69ee02224b693Rect3 {\r\n\t\t\t  -webkit-animation-delay: -1.0s;\r\n\t\t\t  animation-delay: -1.0s;\r\n\t\t\t}\r\n\t\t\t.rbs_gallery_69ee02224b693Spinner .rbs_gallery_69ee02224b693Rect4 {\r\n\t\t\t  -webkit-animation-delay: -0.9s;\r\n\t\t\t  animation-delay: -0.9s;\r\n\t\t\t}\r\n\t\t\t.rbs_gallery_69ee02224b693Spinner .rbs_gallery_69ee02224b693Rect5 {\r\n\t\t\t  -webkit-animation-delay: -0.8s;\r\n\t\t\t  animation-delay: -0.8s;\r\n\t\t\t}\r\n\t\t\t@-webkit-keyframes rbs_gallery_69ee02224b693-stretchdelay {\r\n\t\t\t  0%, 40%, 100% { -webkit-transform: scaleY(0.4) }  \r\n\t\t\t  20% { -webkit-transform: scaleY(1.0) }\r\n\t\t\t}\r\n\t\t\t@keyframes rbs_gallery_69ee02224b693-stretchdelay {\r\n\t\t\t  0%, 40%, 100% { \r\n\t\t\t    transform: scaleY(0.4);\r\n\t\t\t    -webkit-transform: scaleY(0.4);\r\n\t\t\t  }  20% { \r\n\t\t\t    transform: scaleY(1.0);\r\n\t\t\t    -webkit-transform: scaleY(1.0);\r\n\t\t\t  }\r\n\t\t\t}\r\n\t\t<\/style><div id=\"robo-gallery-slider-wraprbs_gallery_69ee02224b693\" class=\"robo-gallery-slider-wrap robo-gallery-slider-wrap-id176 robo-gallery-slider\"><div id=\"rbs_gallery_69ee02224b693-block-loader\" class=\"rbs_gallery_69ee02224b693Spinner\"><div class=\"rbs_gallery_69ee02224b693Rect1\"><\/div> <div class=\"rbs_gallery_69ee02224b693Rect2\"><\/div> <div class=\"rbs_gallery_69ee02224b693Rect3\"><\/div> <div class=\"rbs_gallery_69ee02224b693Rect4\"><\/div> <div class=\"rbs_gallery_69ee02224b693Rect5\"><\/div><\/div><div id=\"robo-gallery-slider-block-rbs_gallery_69ee02224b693\"  data-options=\"rbs_gallery_69ee02224b693\" \r\n\t\t\t\t\tclass=\"swiper-container robo-gallery-slider-container robo-gallery-slider-176\" \r\n\t\t\t\t\tstyle=\"  display: none;\"\r\n\t\t\t\t\t\r\n\t\t\t\t><div id=\"rbs_gallery_69ee02224b693\" class=\"swiper-wrapper robo-slider-gallery  \"><div class=\"swiper-slide  \" \r\n \t\t\t\t\tstyle=\"background-image:url('https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-1.png');\" ><div class=\"swiper-slide-desc swiper-slide-desc-light\">CT-1<\/div><\/div><div class=\"swiper-slide  \" \r\n \t\t\t\t\tstyle=\"background-image:url('https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-2.png');\" ><div class=\"swiper-slide-desc swiper-slide-desc-light\">CT-2<\/div><\/div><div class=\"swiper-slide  \" \r\n \t\t\t\t\tstyle=\"background-image:url('https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-3.png');\" ><div class=\"swiper-slide-desc swiper-slide-desc-light\">CT-3<\/div><\/div><div class=\"swiper-slide  \" \r\n \t\t\t\t\tstyle=\"background-image:url('https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-4.png');\" ><div class=\"swiper-slide-desc swiper-slide-desc-light\">CT-4<\/div><\/div><div class=\"swiper-slide  \" \r\n \t\t\t\t\tstyle=\"background-image:url('https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-5.png');\" ><div class=\"swiper-slide-desc swiper-slide-desc-light\">CT-5<\/div><\/div><div class=\"swiper-slide  \" \r\n \t\t\t\t\tstyle=\"background-image:url('https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-6.png');\" ><div class=\"swiper-slide-desc swiper-slide-desc-light\">CT-6<\/div><\/div><div class=\"swiper-slide  \" \r\n \t\t\t\t\tstyle=\"background-image:url('https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png');\" ><div class=\"swiper-slide-desc swiper-slide-desc-light\">CT-7<\/div><\/div><\/div><div class=\"swiper-button-prev\"><\/div><div class=\"swiper-button-next\"><\/div><div class=\"swiper-scrollbar\"><\/div><div class=\"swiper-pagination\"><\/div><\/div><\/div><script>var rbs_gallery_69ee02224b693 = {\"version\":\"5.1.3\",\"id\":176,\"class\":\"id176\",\"roboGalleryDelay\":1000,\"mainContainer\":\"#robo_gallery_main_block_rbs_gallery_69ee02224b693\",\"loadingContainer\":\"#rbs_gallery_69ee02224b693-block-loader\",\"loadingContainerObj\":\"rbs_gallery_69ee02224b693-block-loader\",\"loop\":true,\"centeredSlides\":true,\"preloadImages\":true,\"updateOnImagesReady\":true,\"effect\":\"slide\",\"direction\":\"horizontal\",\"navigation\":{\"nextEl\":\".swiper-button-next\",\"prevEl\":\".swiper-button-prev\"},\"scrollbar\":{\"el\":\".swiper-scrollbar\",\"draggable\":true},\"pagination\":{\"el\":\".swiper-pagination\",\"type\":\"bullets\",\"clickable\":true,\"dynamicBullets\":true},\"wrapContainer\":\"#robo-gallery-wrap-rbs_gallery_69ee02224b693\"};<\/script>\n\n\n\n<p>You will now see your container created on the left hand side, open it&#8217;s console and sign in with &#8220;root&#8221; and the password you entered earlier. Immediately you want to run <code>hostname -I<\/code> and note down the result, this is your containers IP address on your network.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Installing Java<\/h2>\n\n\n\n<p>For the latest versions of Minecraft server you require Java JDK 21. Which as of the time of writing is not available via <code>apt-get<\/code> so you will have to get the package yourself with<br><code>wget https:\/\/download.oracle.com\/java\/21\/latest\/jdk-21_linux-x64_bin.deb<\/code><br>then<br><code>sudo dpkg -i jdk-21_linux-64_bin.deb<\/code> (or replace after -i with the name of the file that downloaded)<br>You now have Java 21 installed inside your container<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Getting SpigotMC (BuildTools)<\/h2>\n\n\n\n<p>Go to the Spigot page at: <a href=\"https:\/\/www.spigotmc.org\/\">http<\/a><a href=\"https:\/\/www.spigotmc.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">s:\/\/www.spigotmc.org\/<\/a> and select &#8220;Downloads&#8221; &gt; &#8220;Spigot\/BuildTools&#8221;<br>In the page that opens right click &#8220;BuildTools.jar&#8221; and copy link<br>Now go back to your container terminal and go to the root directory with <code>cd ..<\/code> and make a folder named &#8220;minecraftserver&#8221; <code>mkdir minecraftserver<\/code> and <code>cd<\/code> into it. Download BuildTools with the copied link<br><code>wget https:\/\/hub.spigotmc.org\/jenkins\/job\/BuildTools\/<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Installing SpigotMC<\/h2>\n\n\n\n<p>You now have BuildTools in your &#8220;minecraftserver&#8221; folder. The next step is to run this to create your Spigot server instance with the desired game version.<br>Run:<br><code>java -jar BuildTools.jar --rev 1.20.6<\/code><br>Replacing <code>1.20.6<\/code> with your desired game version. This will take a few minutes to run so now is the time to go grab some coffee or if you like skip down to the <a href=\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#ib-toc-anchor-4\">Port Forwarding<\/a> and Domain section to get that out of the way.<br><br>Once BuildTools has finished running the first thing you want to do is run the server to generate all the files<br><code>java -Xmx1024M -Xms1024M -jar spigot-1.20.6.jar<\/code><br>Replacing <code>spigot-1.20.6.jar<\/code> with the jar file BuildTools created, it should have the same name just with <code>1.20.6<\/code> replaced with the game version specified earlier<br>The server should generate all the configuration files, type <code>stop<\/code> into the terminal. You will now need to set the EULA to true.<br><code>nano eula.txt<\/code> and replace <code>false<\/code> with <code>true<\/code>. CTRL + X and Y to save and exit.<br>Run the command to start the server again<br><code>java -Xmx1024M -Xms1024M -jar spigot-1.20.6.jar<\/code><br>Wait a minute or two as it generates the world and try to join from your own Minecraft game to verify it is working correctly, connecting via the IP obtained earlier<br><br>You have now successfully created a working Minecraft server inside an LXC container! You are now free to mess around with the <code>server.properties<\/code> file and install plugins etc (which this guide does not cover). Continue to the next step to ensure it runs whenever the container is started.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Make the Server Start with Your Container<\/h2>\n\n\n\n<p>In its current state, every time you start the container you will need to manually go into the <code>\/minecraftserver<\/code> folder and run the earlier Java command to start the server. To rectify this we are going to add a systemd service to run the server start command whenever the container boots.<\/p>\n\n\n\n<p>In the container terminal<br><code>cd \/etc\/systemd\/system<\/code><br><code>nano startmcserver.service<\/code><br>In this file you want to enter the command to start your server as well as any launch options to the Java command<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:clamp(12px, .75rem, 18px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-highlight-color:rgba(139, 186, 234, 0.2);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"[Unit]\nDescription=Minecraft Server\n\n[Service]\ntype=simple\nWorkingDirectory=\/minecraftserver #If your directory is different change it here\nExecStart=\/bin\/bash -c 'java -Xmx1024M -Xms1024M -jar spigot-1.20.6.jar' #Change spigot-1.20.6.jar with the name of your jarfile and edit -Xmx and -Xms to allocate more RAM to the server if needed\nRestart=on-failure\n\n[Install]\nWantedBy=multi-user.target\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ADBAC7\">[Unit]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">Description<\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #96D0FF\">Minecraft<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F69D50\">Server<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">[Service]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">type<\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #96D0FF\">simple<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">WorkingDirectory<\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #96D0FF\">\/minecraftserver<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #768390\">#If your directory is different change it here<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">ExecStart<\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #96D0FF\">\/bin\/bash<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F69D50\">-c<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;java -Xmx1024M -Xms1024M -jar spigot-1.20.6.jar&#39;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #768390\">#Change spigot-1.20.6.jar with the name of your jarfile and edit -Xmx and -Xms to allocate more RAM to the server if needed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">Restart<\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #96D0FF\">on-failure<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">[Install]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">WantedBy<\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #96D0FF\">multi-user.target<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative\">Bash<\/span><\/div>\n\n\n\n<p>Ensure to change the amount of RAM for your server if you require more than 1GB allocated by editing <code>-Xmx1024M -Xms1024M<\/code> to your desired amount, noting that these are in MB so 4GB would be 4096M. CTRL + X and Y to save and exit.<br><br>Now run <code>systemctl start startmcserver.service<\/code> and try to join the server after a minute or two, to verify if it works.<\/p>\n\n\n\n<p>Assuming it works you can now enable the service by running <code>systemctl enable startmcserver.service<\/code><br><br>Now your server will start whenever you start up your container. However this server will only work on your own network, if you want people to be able to join externally you will have to Port Forward the server.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Port Forwarding<\/h2>\n\n\n\n<p>This section will be somewhat vague as different modems\/routers have different interfaces and lingo for port forwarding, if you are stuck I recommend looking up how to port forward Minecraft for your specific router\/modem as there are hundreds of guides out there.<br><br>Go to the port forwarding section on your routers admin page and add a new rule. Give it a name and set the port to <code>25565<\/code> &#8211; Minecraft&#8217;s default port. (Note: some modems however are finicky and require a port range that can be various different formats, for example my old Vodafone modem required me to enter <code>25564:25566<\/code> as it would not work with just <code>25565<\/code>, other modems may require it to be formatted like <code>25565-25566<\/code>) And protocol or forwarding type to TCP. The forward or destination IP will be the IP of your container you obtained earlier and if you require a forward or destination port it will be the same port as above <code>25565<\/code>.<br><br>Now you could stop here and your friends could join via your external IP, which you can easily obtain by going to <a href=\"https:\/\/ifconfig.me\/\">ifconfig.me<\/a>. However if you want your server to be joinable with a domain such as <code>mc.example.com<\/code>, continue to the next step.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Cloudflare Domain Setup<\/h2>\n\n\n\n<p><strong>Important Note: this section assumes you already have a Cloudflare account with a domain registered, as well as Dynamic DNS so if your public IP changes that is reflected in Cloudflare. This guide uses <code>example.com<\/code> as an example, of course, replace that with your own domain whenever referenced in this guide.<\/strong><\/p>\n\n\n\n<p>Open your Cloudflare DNS Records for your domain and add an A record, it doesn&#8217;t matter if you already have other A records for this domain.<br>Assuming you want your server to be on <code>mc.example.com<\/code> set the name to <code>mc<\/code> and the IPv4 address to your public IP, which you can obtain via <a href=\"https:\/\/ifconfig.me\/\">ifconfig.me<\/a>. It shouldn&#8217;t matter if proxy status is enabled or disabled, however if you are having issues later on, test disabling it. Now save.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"295\" src=\"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/MCServer-A-Record-1024x295.png\" alt=\"\" class=\"wp-image-165\" srcset=\"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/MCServer-A-Record-1024x295.png 1024w, https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/MCServer-A-Record-300x87.png 300w, https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/MCServer-A-Record-768x222.png 768w, https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/MCServer-A-Record.png 1262w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Next add an SRV record. Set its name to <code>_minecraft._tcp.mc<\/code> replacing .mc with whatever you want your subdomain to join to be, so if you wanted it to be <code>minecraft.example.com<\/code> you would set it to <code>_minecraft._tcp.minecraft<\/code> <br>Priority and Weight don&#8217;t matter so set them to <code>0<\/code><br>Set the port to <code>25565<\/code> and target to the domain you would like people to join, in this case <code>mc.example.com<\/code> and save.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"404\" src=\"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/MCServer-SRV-Record-1024x404.png\" alt=\"\" class=\"wp-image-166\" srcset=\"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/MCServer-SRV-Record-1024x404.png 1024w, https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/MCServer-SRV-Record-300x118.png 300w, https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/MCServer-SRV-Record-768x303.png 768w, https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/MCServer-SRV-Record.png 1262w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Important Note: To check if it is working use a service such as <a href=\"https:\/\/mcstatus.io\/\">mcstatus.io<\/a><\/strong> <strong>or get one of your friends to try and join.<\/strong> <strong>It may take longer to be able to join from your own network and I had issues.<\/strong><br><strong>Any DNS changes may take up to an hour to propagate, so if it is not working immediately don&#8217;t worry, go get a coffee, relax and retry in a few minutes.<\/strong><\/p>\n\n\n\n<p>Success! You should now have a working Minecraft server accessible via a domain. <\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Updating<\/h2>\n\n\n\n<p>Re run <code>java -jar BuildTools.jar --rev 1.21<\/code> replacing <code>1.21<\/code> with your desired game version<br>You will next have to re edit your systemd service with <code>nano \/etc\/systemd\/system\/startmcserver.service<\/code> and update the line <code>ExecStart=\/bin\/bash -c 'java -Xmx1024M -Xms1024M -jar spigot-1.20.6.jar'<\/code> to change <code>spigot-1.20.6.jar<\/code> with whatever the freshly downloaded jar file is named, in the case of this update it will be <code>spigot-1.21.jar<\/code><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to host a Minecraft Server inside a Proxmox LXC Container Creating an LXC Container This assumes you have an existing Proxmox install, if you don&#8217;t we currently don&#8217;t have a guide however there are plenty out there. Your first step on the Proxmox home screen is to open your Proxmox node and click &#8220;local(proxmox)&#8221;.Then [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":173,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,26,27,30],"tags":[],"class_list":["post-154","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gaming","category-homelab","category-linux","category-networking"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Minecraft Spigot Server Hosted via Proxmox - Idiot Guides<\/title>\n<meta name=\"description\" content=\"How to host and update a Minecraft Server inside an LXC Container on Proxmox behind a Cloudflare domain\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Minecraft Spigot Server Hosted via Proxmox - Idiot Guides\" \/>\n<meta property=\"og:description\" content=\"How to host and update a Minecraft Server inside an LXC Container on Proxmox behind a Cloudflare domain\" \/>\n<meta property=\"og:url\" content=\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/\" \/>\n<meta property=\"og:site_name\" content=\"Idiot Guides\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-20T03:43:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-12T04:18:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ben\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ben\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/\"},\"author\":{\"name\":\"Ben\",\"@id\":\"https:\/\/idiotguides.net\/#\/schema\/person\/fd53e775f1c060dd3d82d42026a1600f\"},\"headline\":\"Minecraft Spigot Server Hosted via Proxmox\",\"datePublished\":\"2024-05-20T03:43:04+00:00\",\"dateModified\":\"2024-07-12T04:18:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/\"},\"wordCount\":1473,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png\",\"articleSection\":[\"Gaming\",\"Homelab\",\"Linux\",\"Networking\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/\",\"url\":\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/\",\"name\":\"Minecraft Spigot Server Hosted via Proxmox - Idiot Guides\",\"isPartOf\":{\"@id\":\"https:\/\/idiotguides.net\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png\",\"datePublished\":\"2024-05-20T03:43:04+00:00\",\"dateModified\":\"2024-07-12T04:18:31+00:00\",\"author\":{\"@id\":\"https:\/\/idiotguides.net\/#\/schema\/person\/fd53e775f1c060dd3d82d42026a1600f\"},\"description\":\"How to host and update a Minecraft Server inside an LXC Container on Proxmox behind a Cloudflare domain\",\"breadcrumb\":{\"@id\":\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#primaryimage\",\"url\":\"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png\",\"contentUrl\":\"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png\",\"width\":720,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/idiotguides.net\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Minecraft Spigot Server Hosted via Proxmox\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/idiotguides.net\/#website\",\"url\":\"https:\/\/idiotguides.net\/\",\"name\":\"Idiot Guides\",\"description\":\"A case of the blind leading the blind.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/idiotguides.net\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/idiotguides.net\/#\/schema\/person\/fd53e775f1c060dd3d82d42026a1600f\",\"name\":\"Ben\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/idiotguides.net\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/idiotguides.net\/wp-content\/litespeed\/avatar\/a87aa2ea418337db99c1c69fe5e43328.jpg?ver=1776802072\",\"contentUrl\":\"https:\/\/idiotguides.net\/wp-content\/litespeed\/avatar\/a87aa2ea418337db99c1c69fe5e43328.jpg?ver=1776802072\",\"caption\":\"Ben\"},\"url\":\"https:\/\/idiotguides.net\/index.php\/author\/jenkies\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Minecraft Spigot Server Hosted via Proxmox - Idiot Guides","description":"How to host and update a Minecraft Server inside an LXC Container on Proxmox behind a Cloudflare domain","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/","og_locale":"en_US","og_type":"article","og_title":"Minecraft Spigot Server Hosted via Proxmox - Idiot Guides","og_description":"How to host and update a Minecraft Server inside an LXC Container on Proxmox behind a Cloudflare domain","og_url":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/","og_site_name":"Idiot Guides","article_published_time":"2024-05-20T03:43:04+00:00","article_modified_time":"2024-07-12T04:18:31+00:00","og_image":[{"width":720,"height":540,"url":"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png","type":"image\/png"}],"author":"Ben","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ben","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#article","isPartOf":{"@id":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/"},"author":{"name":"Ben","@id":"https:\/\/idiotguides.net\/#\/schema\/person\/fd53e775f1c060dd3d82d42026a1600f"},"headline":"Minecraft Spigot Server Hosted via Proxmox","datePublished":"2024-05-20T03:43:04+00:00","dateModified":"2024-07-12T04:18:31+00:00","mainEntityOfPage":{"@id":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/"},"wordCount":1473,"commentCount":0,"image":{"@id":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#primaryimage"},"thumbnailUrl":"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png","articleSection":["Gaming","Homelab","Linux","Networking"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/","url":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/","name":"Minecraft Spigot Server Hosted via Proxmox - Idiot Guides","isPartOf":{"@id":"https:\/\/idiotguides.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#primaryimage"},"image":{"@id":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#primaryimage"},"thumbnailUrl":"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png","datePublished":"2024-05-20T03:43:04+00:00","dateModified":"2024-07-12T04:18:31+00:00","author":{"@id":"https:\/\/idiotguides.net\/#\/schema\/person\/fd53e775f1c060dd3d82d42026a1600f"},"description":"How to host and update a Minecraft Server inside an LXC Container on Proxmox behind a Cloudflare domain","breadcrumb":{"@id":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#primaryimage","url":"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png","contentUrl":"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png","width":720,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/idiotguides.net\/index.php\/2024\/05\/20\/minecraft-server-hosted-via-proxmox\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/idiotguides.net\/"},{"@type":"ListItem","position":2,"name":"Minecraft Spigot Server Hosted via Proxmox"}]},{"@type":"WebSite","@id":"https:\/\/idiotguides.net\/#website","url":"https:\/\/idiotguides.net\/","name":"Idiot Guides","description":"A case of the blind leading the blind.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/idiotguides.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/idiotguides.net\/#\/schema\/person\/fd53e775f1c060dd3d82d42026a1600f","name":"Ben","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/idiotguides.net\/#\/schema\/person\/image\/","url":"https:\/\/idiotguides.net\/wp-content\/litespeed\/avatar\/a87aa2ea418337db99c1c69fe5e43328.jpg?ver=1776802072","contentUrl":"https:\/\/idiotguides.net\/wp-content\/litespeed\/avatar\/a87aa2ea418337db99c1c69fe5e43328.jpg?ver=1776802072","caption":"Ben"},"url":"https:\/\/idiotguides.net\/index.php\/author\/jenkies\/"}]}},"jetpack_featured_media_url":"https:\/\/idiotguides.net\/wp-content\/uploads\/2024\/05\/CT-7.png","_links":{"self":[{"href":"https:\/\/idiotguides.net\/index.php\/wp-json\/wp\/v2\/posts\/154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/idiotguides.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/idiotguides.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/idiotguides.net\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/idiotguides.net\/index.php\/wp-json\/wp\/v2\/comments?post=154"}],"version-history":[{"count":15,"href":"https:\/\/idiotguides.net\/index.php\/wp-json\/wp\/v2\/posts\/154\/revisions"}],"predecessor-version":[{"id":220,"href":"https:\/\/idiotguides.net\/index.php\/wp-json\/wp\/v2\/posts\/154\/revisions\/220"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/idiotguides.net\/index.php\/wp-json\/wp\/v2\/media\/173"}],"wp:attachment":[{"href":"https:\/\/idiotguides.net\/index.php\/wp-json\/wp\/v2\/media?parent=154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/idiotguides.net\/index.php\/wp-json\/wp\/v2\/categories?post=154"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/idiotguides.net\/index.php\/wp-json\/wp\/v2\/tags?post=154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}