[{"data":1,"prerenderedAt":628},["ShallowReactive",2],{"\u002Fguides\u002Frestore-minecraft-world-backup-docker\u002F":3,"guides:en":459,"published-guide-paths":601},{"id":4,"title":5,"author":6,"body":7,"category":94,"date":418,"description":419,"excerpt":420,"extension":421,"faq":422,"featured":432,"featuredOrder":420,"indexOrder":433,"localeGroup":434,"meta":435,"navigation":436,"path":437,"primaryTool":420,"published":436,"related":438,"seo":442,"slug":443,"sources":444,"stem":457,"updated":418,"__hash__":458},"guides\u002Fguides\u002F8.restore-minecraft-world-backup-docker.md","Restore a Minecraft World from Backup in Docker: A Safe Runbook","setupmc.com Team",{"type":8,"value":9,"toc":400},"minimark",[10,15,19,32,35,39,42,53,69,73,76,79,89,96,99,105,109,112,118,125,129,134,141,159,162,166,173,181,184,190,193,199,209,216,220,223,229,232,238,241,252,255,259,262,265,276,279,283,350,354,359,362,366,372,376],[11,12,14],"h2",{"id":13},"why-restores-fail-in-practice","Why restores fail in practice",[16,17,18],"p",{},"Most restore failures are not caused by the backup archive itself.\nThey happen because the restore process is sloppy:",[20,21,22,26,29],"ul",{},[23,24,25],"li",{},"the server is still running",[23,27,28],{},"the target directory is not what the admin thinks it is",[23,30,31],{},"the backup is restored into incompatible software without checking",[16,33,34],{},"This runbook avoids those mistakes.",[11,36,38],{"id":37},"before-you-touch-data","Before you touch data",[16,40,41],{},"Write down three things first:",[20,43,44,47,50],{},[23,45,46],{},"where the live world data currently lives",[23,48,49],{},"which backup you plan to restore",[23,51,52],{},"whether you need a full server restore or only a world rollback",[16,54,55,56,60,61,64,65,68],{},"If you use ",[57,58,59],"code",{},"itzg\u002Fmc-backup",", the default live directory is usually ",[57,62,63],{},"\u002Fdata"," and the default backup location is usually ",[57,66,67],{},"\u002Fbackups",".",[11,70,72],{"id":71},"step-1-stop-the-server-cleanly","Step 1: Stop the server cleanly",[16,74,75],{},"Do not restore over a running world.",[16,77,78],{},"Stop the backup sidecar and Minecraft service through Compose:",[80,81,87],"pre",{"className":82,"code":84,"language":85,"meta":86},[83],"language-bash","docker compose stop backup mc\n","bash","",[57,88,84],{"__ignoreMap":86},[16,90,91,92,95],{},"Compose sends the normal stop signal and prevents the service's restart policy from immediately bringing the container back. Stopping the backup sidecar as well ensures it cannot start another job while you move its source directory. If your service is named ",[57,93,94],{},"backups"," instead, use that name.",[16,97,98],{},"Then confirm it is really down:",[80,100,103],{"className":101,"code":102,"language":85,"meta":86},[83],"docker compose ps\n",[57,104,102],{"__ignoreMap":86},[11,106,108],{"id":107},"step-2-protect-the-current-state-before-restoring","Step 2: Protect the current state before restoring",[16,110,111],{},"Even during an incident, avoid a one-way operation.\nMove the current directory aside instead of overwriting it:",[80,113,116],{"className":114,"code":115,"language":85,"meta":86},[83],"mv .\u002Fdata .\u002Fdata.pre-restore.$(date +%F-%H%M%S)\nmkdir .\u002Fdata\nsudo chown 1000:1000 .\u002Fdata\n",[57,117,115],{"__ignoreMap":86},[16,119,120,121,124],{},"This gives you a rollback path if you picked the wrong backup. ",[57,122,123],{},"1000:1000"," is the default container UID\u002FGID; use the values from your Compose file if you deliberately changed them.",[11,126,128],{"id":127},"step-3-choose-the-restore-method","Step 3: Choose the restore method",[16,130,55,131,133],{},[57,132,59],{},", the image includes restore scripts.",[16,135,136,137,140],{},"For tar-based backups, the current ",[57,138,139],{},"restore-tar-backup"," helper:",[20,142,143,149,154],{},[23,144,145,146,148],{},"only restores when ",[57,147,63],{}," is empty",[23,150,151,152],{},"selects the newest file from ",[57,153,67],{},[23,155,156,157],{},"extracts that file into ",[57,158,63],{},[16,160,161],{},"That safety check is useful, but the automatic selection is not enough for an incident runbook. Give the helper a directory that contains only the archive you deliberately selected.",[11,163,165],{"id":164},"step-4-restore-into-the-correct-target","Step 4: Restore into the correct target",[16,167,168,169,172],{},"Add this recovery-only service to your Compose file. The profile prevents it from running during a normal ",[57,170,171],{},"docker compose up",":",[80,174,179],{"className":175,"code":177,"language":178,"meta":86},[176],"language-yaml","services:\n  restore-backup:\n    profiles: [\"recovery\"]\n    image: itzg\u002Fmc-backup:latest\n    user: \"1000\"\n    restart: \"no\"\n    entrypoint: restore-tar-backup\n    volumes:\n      - .\u002Fdata:\u002Fdata\n      - ${RESTORE_SOURCE:-.\u002Frestore-source}:\u002Fbackups:ro\n","yaml",[57,180,177],{"__ignoreMap":86},[16,182,183],{},"List the available archives and inspect the selected archive before extracting anything:",[80,185,188],{"className":186,"code":187,"language":85,"meta":86},[83],"ls -lht .\u002Fbackups\ntar -tf .\u002Fbackups\u002FCHOSEN_BACKUP.tar.gz | sed -n '1,40p'\n",[57,189,187],{"__ignoreMap":86},[16,191,192],{},"Create a fresh selection directory containing exactly that archive, then run the helper:",[80,194,197],{"className":195,"code":196,"language":85,"meta":86},[83],"restore_source=\".\u002Frestore-source-$(date +%F-%H%M%S)\"\nmkdir \"$restore_source\"\ncp .\u002Fbackups\u002FCHOSEN_BACKUP.tar.gz \"$restore_source\"\u002F\nRESTORE_SOURCE=\"$restore_source\" docker compose --profile recovery run --rm restore-backup\n",[57,198,196],{"__ignoreMap":86},[16,200,201,202,205,206,208],{},"The command should print the archive it restored. If it prints ",[57,203,204],{},"No restore needed",", ",[57,207,63],{}," was not empty and you should stop instead of forcing an in-place extraction.",[16,210,211,212,215],{},"If you prefer a staging restore, restore into ",[57,213,214],{},".\u002Fdata-restore-test"," first and inspect it before swapping it into production.",[11,217,219],{"id":218},"step-5-start-the-server-and-validate","Step 5: Start the server and validate",[16,221,222],{},"Bring the server back:",[80,224,227],{"className":225,"code":226,"language":85,"meta":86},[83],"docker compose up -d mc\ndocker compose logs -f mc\n",[57,228,226],{"__ignoreMap":86},[16,230,231],{},"Start the backup sidecar again only after you have confirmed that the restored server is healthy:",[80,233,236],{"className":234,"code":235,"language":85,"meta":86},[83],"docker compose up -d backup\n",[57,237,235],{"__ignoreMap":86},[16,239,240],{},"Validate three things:",[20,242,243,246,249],{},[23,244,245],{},"the server starts without world corruption errors",[23,247,248],{},"the expected world name and player data are present",[23,250,251],{},"the in-game state matches the point in time you intended to restore",[16,253,254],{},"For important servers, log in and verify a known landmark or build instead of assuming the restore is correct.",[11,256,258],{"id":257},"compatibility-checks-you-should-not-skip","Compatibility checks you should not skip",[16,260,261],{},"Restoring world data is not only a file operation.\nIt also depends on the software stack around it.",[16,263,264],{},"Check:",[20,266,267,270,273],{},[23,268,269],{},"Minecraft version",[23,271,272],{},"server type",[23,274,275],{},"plugins or mods that change world data",[16,277,278],{},"Restore the software versions that created the backup first, validate the world, and perform a separate controlled upgrade afterwards. Paper's current migration documentation also warns that world-layout differences around 26.1 can make direct switches between Paper and CraftBukkit\u002FSpigot unsafe. Do not combine a disaster restore with a server-type migration.",[11,280,282],{"id":281},"common-mistakes","Common mistakes",[284,285,286,302],"table",{},[287,288,289],"thead",{},[290,291,292,296,299],"tr",{},[293,294,295],"th",{},"Symptom",[293,297,298],{},"Likely cause",[293,300,301],{},"Fix",[303,304,305,317,328,339],"tbody",{},[290,306,307,311,314],{},[308,309,310],"td",{},"Restore does nothing",[308,312,313],{},"Target directory was not empty",[308,315,316],{},"Prepare a clean restore target",[290,318,319,322,325],{},[308,320,321],{},"Restored world crashes on boot",[308,323,324],{},"Version or plugin mismatch",[308,326,327],{},"Re-check the software stack used when the backup was created",[290,329,330,333,336],{},[308,331,332],{},"Wrong world came back",[308,334,335],{},"Wrong archive selected or backup naming unclear",[308,337,338],{},"Standardize naming and document retention",[290,340,341,344,347],{},[308,342,343],{},"No safe fallback after a bad restore",[308,345,346],{},"Current state was overwritten too early",[308,348,349],{},"Always snapshot or copy current data first",[11,351,353],{"id":352},"faq","FAQ",[355,356,358],"h3",{"id":357},"should-i-test-restores-even-when-nothing-is-broken","Should I test restores even when nothing is broken?",[16,360,361],{},"Yes. A restore process that only exists in theory is not a reliable backup strategy.",[355,363,365],{"id":364},"is-it-enough-to-restore-only-the-world-folder","Is it enough to restore only the world folder?",[16,367,368,369,371],{},"Sometimes, but not always. If plugins store important state elsewhere under ",[57,370,63],{},", a partial restore can create inconsistent behavior.",[11,373,375],{"id":374},"next-steps","Next steps",[20,377,378,386,393],{},[23,379,380,381,68],{},"If you do not have automated backups yet, set up ",[382,383,385],"a",{"href":384},"\u002Fguides\u002Fset-up-automatic-minecraft-backups-docker-mc-backup\u002F","docker-mc-backup first",[23,387,388,389,68],{},"If you host on Hetzner, understand the limits of infrastructure snapshots in ",[382,390,392],{"href":391},"\u002Fguides\u002Fhetzner-snapshots-minecraft-world-volumes\u002F","the Hetzner snapshots guide",[23,394,395,396,68],{},"If you want safer operational control before and after a restore, use ",[382,397,399],{"href":398},"\u002Fguides\u002Fadminister-docker-minecraft-server-rcon-console\u002F","RCON and console access in Docker",{"title":86,"searchDepth":401,"depth":401,"links":402},2,[403,404,405,406,407,408,409,410,411,412,417],{"id":13,"depth":401,"text":14},{"id":37,"depth":401,"text":38},{"id":71,"depth":401,"text":72},{"id":107,"depth":401,"text":108},{"id":127,"depth":401,"text":128},{"id":164,"depth":401,"text":165},{"id":218,"depth":401,"text":219},{"id":257,"depth":401,"text":258},{"id":281,"depth":401,"text":282},{"id":352,"depth":401,"text":353,"children":413},[414,416],{"id":357,"depth":415,"text":358},3,{"id":364,"depth":415,"text":365},{"id":374,"depth":401,"text":375},"2026-07-18","A backup is only useful if you can restore it safely. This guide shows how to restore a Minecraft world in Docker, avoid overwriting live data accidentally, and validate the result before reopening the server.",null,"md",[423,426,429],{"question":424,"answer":425},"Should I restore directly into a running world directory?","No. Stop the server first and avoid restoring blindly into a live dataset. A restore should be a controlled operation, not an in-place guess.",{"question":427,"answer":428},"What if the backup is newer than the server software or plugin set I run now?","Treat that as a compatibility check. World data, plugins, or mods may expect a different server state. Restore into a controlled environment first if you are unsure.",{"question":430,"answer":431},"How do I know the restore worked?","Start the server, inspect logs, confirm the expected world is loaded, and verify in-game that the important recent changes or landmarks are present.",false,"2","docker-minecraft-restore-runbook",{},true,"\u002Fguides\u002Frestore-minecraft-world-backup-docker",[439,440,441],"docker-mc-backup-setup","hetzner-snapshots-volumes","docker-minecraft-rcon-console",{"title":5,"description":419},"restore-minecraft-world-backup-docker",[445,448,451,454],{"title":446,"url":447},"itzg\u002Fdocker-mc-backup README","https:\u002F\u002Fgithub.com\u002Fitzg\u002Fdocker-mc-backup",{"title":449,"url":450},"Paper updating guide","https:\u002F\u002Fdocs.papermc.io\u002Fpaper\u002Fupdating\u002F",{"title":452,"url":453},"Paper migration guide","https:\u002F\u002Fdocs.papermc.io\u002Fpaper\u002Fmigration\u002F",{"title":455,"url":456},"itzg With Docker command docs","https:\u002F\u002Fdocker-minecraft-server.readthedocs.io\u002Fen\u002Flatest\u002Fsending-commands\u002Fcommands\u002F","guides\u002F8.restore-minecraft-world-backup-docker","dpqmae1O7pcLOkj_G_koaz2T_lB2EwD48nps_jRKi2E",[460,467,473,479,484,490,496,501,506,511,516,522,527,531,532,536,542,548,554,560,566,572,577,583,589,595],{"path":461,"title":462,"description":463,"excerpt":420,"author":6,"date":464,"category":465,"localeGroup":466},"\u002Fguides\u002Fvelocity-proxy-docker-compose-itzg-mc-proxy","Set Up a Velocity Proxy with Docker Compose and itzg\u002Fmc-proxy","Run Velocity and Paper together with Docker Compose, route players through the proxy, keep backend ports private, and validate the complete connection path.","2026-08-01","getting-started","velocity-proxy-docker-compose",{"path":468,"title":469,"description":470,"excerpt":420,"author":6,"date":464,"category":471,"localeGroup":472},"\u002Fguides\u002Fvelocity-modern-forwarding-paper-docker","Configure Velocity Modern Forwarding with Paper in Docker","Match Velocity and Paper forwarding settings, protect the forwarding secret, block direct backend access, and verify that player identity reaches Paper safely.","security","velocity-modern-forwarding-paper",{"path":474,"title":475,"description":476,"excerpt":420,"author":6,"date":464,"category":477,"localeGroup":478},"\u002Fguides\u002Fvelocity-proxy-cannot-connect-backend-docker","Velocity Proxy Cannot Connect to a Backend in Docker: A Runbook","Fix Velocity backend connection failures by checking container state, Docker networks, service-name DNS, the container port, Paper readiness, and forwarding separately.","networking","velocity-backend-unreachable-docker",{"path":480,"title":481,"description":482,"excerpt":420,"author":6,"date":464,"category":477,"localeGroup":483},"\u002Fguides\u002Fgeyser-floodgate-velocity-proxy-docker","Run Geyser and Floodgate on a Velocity Proxy with Docker","Add Bedrock crossplay at the Velocity edge, publish UDP 19132 correctly, configure Floodgate authentication, and keep Geyser off the individual backends.","geyser-floodgate-velocity-proxy",{"path":485,"title":486,"description":487,"excerpt":420,"author":6,"date":418,"category":488,"localeGroup":489},"\u002Fguides\u002Fupdate-minecraft-server-docker-compose-rollback","Update a Minecraft Server with Docker Compose and Roll Back Safely","Update an itzg\u002Fminecraft-server deployment without gambling with your world. This runbook covers version pinning, a cold backup, validation, and a real rollback path.","docker-operations","docker-minecraft-update-rollback",{"path":491,"title":492,"description":493,"excerpt":420,"author":6,"date":418,"category":494,"localeGroup":495},"\u002Fguides\u002Finstall-paper-plugins-docker-compose","Install and Update Paper Plugins with Docker Compose","Install Paper plugins reproducibly with itzg\u002Fminecraft-server. Compare a read-only \u002Fplugins source mount with managed Modrinth downloads, then validate every plugin after restart.","mods-plugins","paper-plugins-docker-compose",{"path":497,"title":498,"description":499,"excerpt":420,"author":6,"date":418,"category":494,"localeGroup":500},"\u002Fguides\u002Fmodrinth-modpack-itzg-minecraft-server-docker","Run a Modrinth Modpack with itzg\u002Fminecraft-server and Docker Compose","Deploy a server-compatible Modrinth modpack with Docker Compose, pin the pack version, match Java and client requirements, and validate the first start safely.","modrinth-modpack-docker",{"path":502,"title":503,"description":504,"excerpt":420,"author":6,"date":418,"category":488,"localeGroup":505},"\u002Fguides\u002Fmigrate-existing-minecraft-server-to-docker","Migrate an Existing Minecraft Server or World to Docker","Move an existing Minecraft server into itzg\u002Fminecraft-server without mixing migration and upgrades. This runbook covers world-only imports, full data moves, permissions, and rollback.","migrate-minecraft-server-to-docker",{"path":507,"title":508,"description":509,"excerpt":420,"author":6,"date":418,"category":488,"localeGroup":510},"\u002Fguides\u002Fminecraft-container-keeps-restarting-docker-compose","Minecraft Container Keeps Restarting: Diagnose the Docker Compose Loop","Find out why an itzg\u002Fminecraft-server container repeatedly restarts. This runbook preserves the first error, separates exited from unhealthy containers, and fixes the actual cause.","docker-minecraft-restart-loop",{"path":512,"title":513,"description":514,"excerpt":420,"author":6,"date":418,"category":494,"localeGroup":515},"\u002Fguides\u002Fcurseforge-modpack-itzg-minecraft-server-docker","Run a CurseForge Modpack with itzg\u002Fminecraft-server and Docker Compose","Deploy a CurseForge modpack with AUTO_CURSEFORGE, pin its file ID, protect the API key, handle manual downloads, and validate loader and client compatibility.","curseforge-modpack-docker",{"path":517,"title":518,"description":519,"excerpt":420,"author":6,"date":418,"category":520,"localeGroup":521},"\u002Fguides\u002Fminecraft-docker-exit-code-137-oomkilled","Minecraft Docker Exit Code 137: Diagnose OOMKilled Correctly","Exit code 137 means SIGKILL, not automatically an out-of-memory event. Confirm Docker OOMKilled state, compare JVM heap with container limits, and leave non-heap headroom.","performance","minecraft-docker-exit-137-oom",{"path":523,"title":524,"description":525,"excerpt":420,"author":6,"date":418,"category":471,"localeGroup":526},"\u002Fguides\u002Fsecure-minecraft-server-docker-compose","Secure a Minecraft Server with Docker Compose: Practical Hardening","Harden an itzg\u002Fminecraft-server deployment with online mode, a whitelist, file-based RCON secrets, a non-root container, reduced capabilities, limited ports, and trusted plugins.","minecraft-docker-security-hardening",{"path":528,"title":529,"description":530,"excerpt":420,"author":6,"date":418,"category":94,"localeGroup":439},"\u002Fguides\u002Fset-up-automatic-minecraft-backups-docker-mc-backup","Set Up Automatic Minecraft Backups with docker-mc-backup","Back up your Minecraft world automatically with itzg\u002Fmc-backup. This guide shows a safe sidecar setup, retention defaults, and how to validate that backups really work.",{"path":437,"title":5,"description":419,"excerpt":420,"author":6,"date":418,"category":94,"localeGroup":434},{"path":533,"title":534,"description":535,"excerpt":420,"author":6,"date":418,"category":94,"localeGroup":440},"\u002Fguides\u002Fhetzner-snapshots-minecraft-world-volumes","Why Hetzner Snapshots Do Not Fully Protect Your Minecraft World","Hetzner Cloud Backups and Snapshots are useful, but they do not include attached Volumes. This guide explains the risk, the operational consequences, and the safer backup pattern for Minecraft.",{"path":537,"title":538,"description":539,"excerpt":420,"author":6,"date":540,"category":477,"localeGroup":541},"\u002Fguides\u002Fminecraft-crossplay-geyser-floodgate","Set Up Java and Bedrock Crossplay with Geyser and Floodgate","Want Bedrock players on phones or consoles to join your Java server? This guide shows a direct Paper-based Geyser and Floodgate setup without introducing a separate proxy layer.","2026-04-04","geyser-floodgate-crossplay",{"path":543,"title":544,"description":545,"excerpt":420,"author":6,"date":546,"category":465,"localeGroup":547},"\u002Fguides\u002Fpaper-vs-vanilla-vs-fabric-vs-forge","Paper vs Vanilla vs Fabric vs Forge: Which Minecraft Server Software Should You Choose?","Choosing the wrong server software creates avoidable pain later. This guide compares Vanilla, Paper, Fabric, Quilt, Forge, and NeoForge based on plugins, mods, performance, and operational complexity.","2026-04-03","minecraft-server-software-choice",{"path":549,"title":550,"description":551,"excerpt":420,"author":6,"date":552,"category":520,"localeGroup":553},"\u002Fguides\u002Fpaper-view-distance-vs-simulation-distance","View Distance vs Simulation Distance: Safe Starting Values for Paper","Paper exposes view-distance and simulation-distance separately, which makes them one of the safest first levers for performance tuning. This guide explains what each setting changes and which starting values are sensible.","2026-04-02","paper-view-distance-simulation-distance",{"path":555,"title":556,"description":557,"excerpt":420,"author":6,"date":558,"category":520,"localeGroup":559},"\u002Fguides\u002Fspark-profiler-paper-docker","Use Spark Profiler to Find Minecraft Lag in Paper and Docker","Paper bundles Spark starting with 1.21, which makes it the preferred profiler for diagnosing lag. This guide shows how to capture a useful report and how to read the first findings without guesswork.","2026-04-01","spark-profiler-paper-docker",{"path":561,"title":562,"description":563,"excerpt":420,"author":6,"date":564,"category":520,"localeGroup":565},"\u002Fguides\u002Fminecraft-server-lag-tps-mspt-cant-keep-up","Minecraft Server Lag Explained: TPS, MSPT, and 'Can’t Keep Up'","This guide explains what TPS and MSPT actually mean, why “Can’t keep up” appears in the console, and which checks help you separate CPU, chunk, entity, and plugin problems quickly.","2026-03-31","minecraft-lag-tps-mspt",{"path":567,"title":568,"description":569,"excerpt":420,"author":6,"date":570,"category":488,"localeGroup":571},"\u002Fguides\u002Ffix-permission-denied-itzg-docker-minecraft-server","Fix Permission Denied in itzg\u002Fminecraft-server with UID\u002FGID and Bind Mounts","Seeing permission errors in \u002Fdata or files that Docker cannot write? This guide explains why itzg\u002Fminecraft-server defaults to UID 1000:GID 1000 and how to fix ownership safely.","2026-03-09","itzg-permission-denied",{"path":573,"title":574,"description":575,"excerpt":420,"author":6,"date":576,"category":488,"localeGroup":441},"\u002Fguides\u002Fadminister-docker-minecraft-server-rcon-console","Administer a Docker Minecraft Server Safely with RCON and Console Access","Need to op a player, manage the whitelist, or stop the server cleanly? This guide shows how to use RCON and interactive console access with itzg\u002Fminecraft-server without exposing extra risk.","2026-03-08",{"path":578,"title":579,"description":580,"excerpt":420,"author":6,"date":581,"category":477,"localeGroup":582},"\u002Fguides\u002Fminecraft-domain-without-port-srv-record","Minecraft Domain Without a Port: How to Set Up an SRV Record","Want players to join via example.com instead of an IP and port? This guide shows how SRV records work for Minecraft Java Edition and how to configure them correctly.","2026-03-07","minecraft-srv-record-domain",{"path":584,"title":585,"description":586,"excerpt":420,"author":6,"date":587,"category":477,"localeGroup":588},"\u002Fguides\u002Fopen-port-25565-minecraft-server-hetzner-linux","How to Open Port 25565 for a Minecraft Server on Hetzner and Linux","Players cannot join even though the container is running? This guide checks Docker port publishing, the Linux firewall path, and the Hetzner Cloud Firewall without relying on misleading UFW assumptions.","2026-03-05","open-port-25565-hetzner-linux",{"path":590,"title":591,"description":592,"excerpt":420,"author":6,"date":593,"category":465,"localeGroup":594},"\u002Fguides\u002Fdetermining-correct-java-version-for-operating-minecraft-server","Determining the Correct Java Version for Operating a Minecraft Server","If you want to set up a Minecraft server, you may encounter an error message related to the Java version when starting the server. In this article, you will learn how to determine the correct Java version for your Minecraft server.","2025-01-31","java-version-minecraft-server",{"path":596,"title":597,"description":598,"excerpt":420,"author":6,"date":599,"category":465,"localeGroup":600},"\u002Fguides\u002Fminecraft-server-with-docker-on-hetzner-cloud","Setting up a Minecraft Server on a Hetzner Cloud Server with Docker Compose","In this article, we will show you how to set up a server for Minecraft: Java Edition on a Hetzner Cloud server. We will go through the steps of creating the cloud server, installing Debian, setting up an SSH key, and configuring Docker Compose for easy server management.","2025-01-28","hetzner-docker-setup",[602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,596,561,555,549,543,537,485,491,497,502,507,590,512,517,523,461,468,474,480,584,578,573,567,528,437,533],"\u002Fde\u002Fguides\u002Fminecraft-server-with-docker-on-hetzner-cloud","\u002Fde\u002Fguides\u002Fminecraft-server-lag-tps-mspt-cant-keep-up","\u002Fde\u002Fguides\u002Fspark-profiler-paper-docker","\u002Fde\u002Fguides\u002Fpaper-view-distance-vs-simulation-distance","\u002Fde\u002Fguides\u002Fpaper-vs-vanilla-vs-fabric-vs-forge","\u002Fde\u002Fguides\u002Fminecraft-crossplay-geyser-floodgate","\u002Fde\u002Fguides\u002Fupdate-minecraft-server-docker-compose-rollback","\u002Fde\u002Fguides\u002Finstall-paper-plugins-docker-compose","\u002Fde\u002Fguides\u002Fmodrinth-modpack-itzg-minecraft-server-docker","\u002Fde\u002Fguides\u002Fmigrate-existing-minecraft-server-to-docker","\u002Fde\u002Fguides\u002Fminecraft-container-keeps-restarting-docker-compose","\u002Fde\u002Fguides\u002Fdetermining-correct-java-version-for-operating-minecraft-server","\u002Fde\u002Fguides\u002Fcurseforge-modpack-itzg-minecraft-server-docker","\u002Fde\u002Fguides\u002Fminecraft-docker-exit-code-137-oomkilled","\u002Fde\u002Fguides\u002Fsecure-minecraft-server-docker-compose","\u002Fde\u002Fguides\u002Fvelocity-proxy-docker-compose-itzg-mc-proxy","\u002Fde\u002Fguides\u002Fvelocity-modern-forwarding-paper-docker","\u002Fde\u002Fguides\u002Fvelocity-proxy-cannot-connect-backend-docker","\u002Fde\u002Fguides\u002Fgeyser-floodgate-velocity-proxy-docker","\u002Fde\u002Fguides\u002Fopen-port-25565-minecraft-server-hetzner-linux","\u002Fde\u002Fguides\u002Fminecraft-domain-without-port-srv-record","\u002Fde\u002Fguides\u002Fadminister-docker-minecraft-server-rcon-console","\u002Fde\u002Fguides\u002Ffix-permission-denied-itzg-docker-minecraft-server","\u002Fde\u002Fguides\u002Fset-up-automatic-minecraft-backups-docker-mc-backup","\u002Fde\u002Fguides\u002Frestore-minecraft-world-backup-docker","\u002Fde\u002Fguides\u002Fhetzner-snapshots-minecraft-world-volumes",1786636763391]