[{"data":1,"prerenderedAt":685},["ShallowReactive",2],{"\u002Fguides\u002Fvelocity-proxy-cannot-connect-backend-docker\u002F":3,"guides:en":516,"published-guide-paths":658},{"id":4,"title":5,"author":6,"body":7,"category":470,"date":471,"description":472,"excerpt":473,"extension":474,"faq":475,"featured":485,"featuredOrder":473,"indexOrder":486,"localeGroup":487,"meta":488,"navigation":489,"path":490,"primaryTool":491,"published":489,"related":492,"seo":496,"slug":497,"sources":498,"stem":514,"updated":471,"__hash__":515},"guides\u002Fguides\u002F25.velocity-proxy-cannot-connect-backend-docker.md","Velocity Proxy Cannot Connect to a Backend in Docker: A Runbook","setupmc.com Team",{"type":8,"value":9,"toc":457},"minimark",[10,15,19,35,43,47,50,60,67,76,80,83,91,94,102,105,127,134,138,141,147,154,157,163,166,172,183,187,198,204,207,234,237,241,244,250,257,265,272,276,282,310,318,322,415,419,422,428,431,435],[11,12,14],"h2",{"id":13},"start-with-the-exact-failure-layer","Start with the exact failure layer",[16,17,18],"p",{},"“Velocity cannot connect” can describe four different failures:",[20,21,22,26,29,32],"ol",{},[23,24,25],"li",{},"the backend container is stopped or restarting",[23,27,28],{},"the proxy cannot resolve or route to the backend container",[23,30,31],{},"nothing listens on the configured backend port yet",[23,33,34],{},"TCP succeeds, but player forwarding rejects the login",[16,36,37,38,42],{},"Do not change forwarding secrets to fix an ",[39,40,41],"code",{},"UnknownHostException",", and do not publish the backend port merely to work around a missing Docker network.",[11,44,46],{"id":45},"step-1-preserve-the-first-useful-error","Step 1: Preserve the first useful error",[16,48,49],{},"Capture state and bounded logs before restarting repeatedly:",[51,52,58],"pre",{"className":53,"code":55,"language":56,"meta":57},[54],"language-bash","docker compose ps -a\ndocker compose logs --tail=200 proxy lobby\ndocker inspect \"$(docker compose ps -q lobby)\" --format 'status={{.State.Status}} exit={{.State.ExitCode}} oom={{.State.OOMKilled}} health={{if .State.Health}}{{.State.Health.Status}}{{else}}none{{end}}'\n","bash","",[39,59,55],{"__ignoreMap":57},[16,61,62,63,66],{},"Replace ",[39,64,65],{},"lobby"," if your backend service has another name.",[16,68,69,70,75],{},"If Paper is exiting, solve that first. The ",[71,72,74],"a",{"href":73},"\u002Fguides\u002Fminecraft-container-keeps-restarting-docker-compose\u002F","container restart-loop runbook"," separates EULA, Java, permissions, memory, and configuration failures.",[11,77,79],{"id":78},"step-2-verify-the-address-in-velocitytoml","Step 2: Verify the address in velocity.toml",[16,81,82],{},"For this Compose model:",[51,84,89],{"className":85,"code":87,"language":88,"meta":57},[86],"language-yaml","services:\n  proxy:\n    networks: [minecraft]\n  lobby:\n    networks: [minecraft]\nnetworks:\n  minecraft: {}\n","yaml",[39,90,87],{"__ignoreMap":57},[16,92,93],{},"Velocity should use:",[51,95,100],{"className":96,"code":98,"language":99,"meta":57},[97],"language-toml","[servers]\nlobby = \"lobby:25565\"\ntry = [\"lobby\"]\n","toml",[39,101,98],{"__ignoreMap":57},[16,103,104],{},"Avoid these common mistakes:",[106,107,108,114,117,124],"ul",{},[23,109,110,113],{},[39,111,112],{},"localhost:25565",": points back into the proxy container",[23,115,116],{},"a container IP: changes when Docker recreates the container",[23,118,119,120,123],{},"a host mapping such as ",[39,121,122],{},"25566",": irrelevant for traffic inside the Compose network",[23,125,126],{},"the public domain: leaves Docker and creates an unnecessary external round trip",[16,128,129,130,133],{},"Docker registers the service name on shared Compose networks. Use the service name, not ",[39,131,132],{},"container_name",", as the stable contract.",[11,135,137],{"id":136},"step-3-compare-network-membership","Step 3: Compare network membership",[16,139,140],{},"Render the effective model and inspect the live networks:",[51,142,145],{"className":143,"code":144,"language":56,"meta":57},[54],"docker compose config\ndocker inspect \"$(docker compose ps -q proxy)\" --format '{{json .NetworkSettings.Networks}}'\ndocker inspect \"$(docker compose ps -q lobby)\" --format '{{json .NetworkSettings.Networks}}'\n",[39,146,144],{"__ignoreMap":57},[16,148,149,150,153],{},"Both containers need at least one network name in common. If the proxy and backend are defined in separate Compose projects, their implicit ",[39,151,152],{},"default"," networks are different even if the YAML looks similar.",[16,155,156],{},"Create one explicit external network for separate projects:",[51,158,161],{"className":159,"code":160,"language":56,"meta":57},[54],"docker network create minecraft-proxy\n",[39,162,160],{"__ignoreMap":57},[16,164,165],{},"Then declare it in both Compose files:",[51,167,170],{"className":168,"code":169,"language":88,"meta":57},[86],"networks:\n  minecraft:\n    external: true\n    name: minecraft-proxy\n",[39,171,169],{"__ignoreMap":57},[16,173,174,175,178,179,182],{},"Attach the relevant services to ",[39,176,177],{},"minecraft"," and recreate them. Do not use the deprecated ",[39,180,181],{},"links"," field as a substitute for correct network membership.",[11,184,186],{"id":185},"step-4-test-from-the-proxy-namespace","Step 4: Test from the proxy namespace",[16,188,189,190,193,194,197],{},"The decisive check runs from the same namespace as Velocity. The ",[39,191,192],{},"itzg\u002Fmc-proxy"," image includes ",[39,195,196],{},"mc-monitor",", which is also used for its healthcheck:",[51,199,202],{"className":200,"code":201,"language":56,"meta":57},[54],"docker compose exec proxy mc-monitor status --host lobby --port 25565\n",[39,203,201],{"__ignoreMap":57},[16,205,206],{},"Interpret the result with the backend logs:",[106,208,209,216,222,228],{},[23,210,211,215],{},[212,213,214],"strong",{},"name cannot resolve",": service name or shared network is wrong",[23,217,218,221],{},[212,219,220],{},"connection refused",": address resolves, but Paper is not listening on 25565",[23,223,224,227],{},[212,225,226],{},"timeout",": network path or firewall policy drops the connection",[23,229,230,233],{},[212,231,232],{},"status succeeds",": the TCP\u002Fapplication path works; investigate forwarding or login policy",[16,235,236],{},"Do not run only a test from the Docker host. Host reachability does not prove that the proxy container has the same route.",[11,238,240],{"id":239},"step-5-confirm-paper-is-actually-ready","Step 5: Confirm Paper is actually ready",[16,242,243],{},"Inspect the most recent startup attempt:",[51,245,248],{"className":246,"code":247,"language":56,"meta":57},[54],"docker compose logs --since=10m lobby\n",[39,249,247],{"__ignoreMap":57},[16,251,252,253,256],{},"Look for the normal ready message and check that Paper did not bind to a different address or port. In ",[39,254,255],{},"server.properties",", the normal container-friendly values are:",[51,258,263],{"className":259,"code":261,"language":262,"meta":57},[260],"language-properties","server-ip=\nserver-port=25565\n","properties",[39,264,261],{"__ignoreMap":57},[16,266,267,268,271],{},"Leaving ",[39,269,270],{},"server-ip"," empty allows the server to listen on the container interfaces. Setting it to a host IP that does not exist inside the container can prevent startup.",[11,273,275],{"id":274},"step-6-separate-routing-from-forwarding","Step 6: Separate routing from forwarding",[16,277,278,279,281],{},"Once ",[39,280,196],{}," reaches Paper, a remaining player kick is usually configuration rather than networking. Compare:",[106,283,284,293,301,304,307],{},[23,285,286,289,290],{},[39,287,288],{},"player-info-forwarding-mode = \"modern\""," in ",[39,291,292],{},"velocity.toml",[23,294,295,289,298],{},[39,296,297],{},"proxies.velocity.enabled: true",[39,299,300],{},"paper-global.yml",[23,302,303],{},"matching forwarding secrets",[23,305,306],{},"matching proxy online-mode value",[23,308,309],{},"legacy Bungee forwarding disabled",[16,311,312,313,317],{},"Use the ",[71,314,316],{"href":315},"\u002Fguides\u002Fvelocity-modern-forwarding-paper-docker\u002F","modern forwarding guide"," for the exact configuration. Change one layer at a time and repeat the same login test.",[11,319,321],{"id":320},"symptom-table","Symptom table",[323,324,325,341],"table",{},[326,327,328],"thead",{},[329,330,331,335,338],"tr",{},[332,333,334],"th",{},"Error",[332,336,337],{},"Most likely layer",[332,339,340],{},"First action",[342,343,344,358,369,380,393,404],"tbody",{},[329,345,346,352,355],{},[347,348,349,350],"td",{},"Unknown host ",[39,351,65],{},[347,353,354],{},"Docker DNS\u002Fnetwork membership",[347,356,357],{},"Compare live network names",[329,359,360,363,366],{},[347,361,362],{},"Connection refused",[347,364,365],{},"Backend stopped or not listening",[347,367,368],{},"Read Paper startup logs",[329,370,371,374,377],{},[347,372,373],{},"Connection timed out",[347,375,376],{},"Route or firewall drops traffic",[347,378,379],{},"Test from proxy namespace and inspect networks",[329,381,382,387,390],{},[347,383,384],{},[39,385,386],{},"This server requires you to connect with Velocity",[347,388,389],{},"Forwarding mismatch",[347,391,392],{},"Align modern forwarding on both sides",[329,394,395,398,401],{},[347,396,397],{},"Works after long delay",[347,399,400],{},"Proxy starts before Paper is ready",[347,402,403],{},"Use health\u002Freadiness checks; avoid restart loops",[329,405,406,409,412],{},[347,407,408],{},"Works via published port only",[347,410,411],{},"Containers do not share a network",[347,413,414],{},"Fix the shared network and remove backend publication",[11,416,418],{"id":417},"validate-the-repair","Validate the repair",[16,420,421],{},"The repair is complete only when all checks pass:",[51,423,426],{"className":424,"code":425,"language":56,"meta":57},[54],"docker compose ps\ndocker compose exec proxy mc-monitor status --host lobby --port 25565\ndocker compose port lobby 25565\n",[39,427,425],{"__ignoreMap":57},[16,429,430],{},"The backend status check should succeed, and the final command should not reveal a host-published port. Join through Velocity and confirm that the backend sees the correct forwarded identity.",[11,432,434],{"id":433},"next-steps","Next steps",[106,436,437,445,451],{},[23,438,439,440,444],{},"Return to the ",[71,441,443],{"href":442},"\u002Fguides\u002Fvelocity-proxy-docker-compose-itzg-mc-proxy\u002F","complete Velocity Compose setup",".",[23,446,447,448,444],{},"Secure the working path with ",[71,449,450],{"href":315},"modern forwarding and backend isolation",[23,452,453,454,444],{},"If Paper itself is unstable, diagnose the ",[71,455,456],{"href":73},"Docker restart loop",{"title":57,"searchDepth":458,"depth":458,"links":459},2,[460,461,462,463,464,465,466,467,468,469],{"id":13,"depth":458,"text":14},{"id":45,"depth":458,"text":46},{"id":78,"depth":458,"text":79},{"id":136,"depth":458,"text":137},{"id":185,"depth":458,"text":186},{"id":239,"depth":458,"text":240},{"id":274,"depth":458,"text":275},{"id":320,"depth":458,"text":321},{"id":417,"depth":458,"text":418},{"id":433,"depth":458,"text":434},"networking","2026-08-01","Fix Velocity backend connection failures by checking container state, Docker networks, service-name DNS, the container port, Paper readiness, and forwarding separately.",null,"md",[476,479,482],{"question":477,"answer":478},"Why does localhost not reach my Paper server from Velocity?","Inside the proxy container, localhost refers to that proxy container. Use the Paper Compose service name and its container port when the services share a Docker network.",{"question":480,"answer":481},"Should Velocity use the host port or container port?","Service-to-service traffic inside a Compose network uses the backend container port, normally 25565. A host mapping such as 25566:25565 is only for traffic entering from the host or outside Docker.",{"question":483,"answer":484},"Does depends_on guarantee that Paper is ready?","No. Basic dependency ordering starts containers in order but does not prove that the Minecraft server has finished loading. Use logs and health state to distinguish startup delay from a broken path.",false,"4","velocity-backend-unreachable-docker",{},true,"\u002Fguides\u002Fvelocity-proxy-cannot-connect-backend-docker","proxy-configurator",[493,494,495],"velocity-proxy-docker-compose","velocity-modern-forwarding-paper","docker-minecraft-restart-loop",{"title":5,"description":472},"velocity-proxy-cannot-connect-backend-docker",[499,502,505,508,511],{"title":500,"url":501},"Docker Compose networking and debugging","https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002Fhow-tos\u002Fnetworking\u002F",{"title":503,"url":504},"Docker Compose networks reference","https:\u002F\u002Fdocs.docker.com\u002Freference\u002Fcompose-file\u002Fnetworks\u002F",{"title":506,"url":507},"Velocity frequently asked questions","https:\u002F\u002Fdocs.papermc.io\u002Fvelocity\u002Ffaq\u002F",{"title":509,"url":510},"Velocity configuration reference","https:\u002F\u002Fdocs.papermc.io\u002Fvelocity\u002Fconfiguration\u002F",{"title":512,"url":513},"itzg\u002Fmc-proxy healthcheck and settings","https:\u002F\u002Fgithub.com\u002Fitzg\u002Fdocker-mc-proxy","guides\u002F25.velocity-proxy-cannot-connect-backend-docker","WSXkNOEV4O5dsZMebALZuhwqUASkCJc1PpEJvMeNazo",[517,522,527,528,533,540,546,551,556,560,565,571,576,582,587,592,598,604,610,616,622,628,634,640,646,652],{"path":518,"title":519,"description":520,"excerpt":473,"author":6,"date":471,"category":521,"localeGroup":493},"\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.","getting-started",{"path":523,"title":524,"description":525,"excerpt":473,"author":6,"date":471,"category":526,"localeGroup":494},"\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",{"path":490,"title":5,"description":472,"excerpt":473,"author":6,"date":471,"category":470,"localeGroup":487},{"path":529,"title":530,"description":531,"excerpt":473,"author":6,"date":471,"category":470,"localeGroup":532},"\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":534,"title":535,"description":536,"excerpt":473,"author":6,"date":537,"category":538,"localeGroup":539},"\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.","2026-07-18","docker-operations","docker-minecraft-update-rollback",{"path":541,"title":542,"description":543,"excerpt":473,"author":6,"date":537,"category":544,"localeGroup":545},"\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":547,"title":548,"description":549,"excerpt":473,"author":6,"date":537,"category":544,"localeGroup":550},"\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":552,"title":553,"description":554,"excerpt":473,"author":6,"date":537,"category":538,"localeGroup":555},"\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":557,"title":558,"description":559,"excerpt":473,"author":6,"date":537,"category":538,"localeGroup":495},"\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.",{"path":561,"title":562,"description":563,"excerpt":473,"author":6,"date":537,"category":544,"localeGroup":564},"\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":566,"title":567,"description":568,"excerpt":473,"author":6,"date":537,"category":569,"localeGroup":570},"\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":572,"title":573,"description":574,"excerpt":473,"author":6,"date":537,"category":526,"localeGroup":575},"\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":577,"title":578,"description":579,"excerpt":473,"author":6,"date":537,"category":580,"localeGroup":581},"\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.","backups","docker-mc-backup-setup",{"path":583,"title":584,"description":585,"excerpt":473,"author":6,"date":537,"category":580,"localeGroup":586},"\u002Fguides\u002Frestore-minecraft-world-backup-docker","Restore a Minecraft World from Backup in Docker: A Safe Runbook","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.","docker-minecraft-restore-runbook",{"path":588,"title":589,"description":590,"excerpt":473,"author":6,"date":537,"category":580,"localeGroup":591},"\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.","hetzner-snapshots-volumes",{"path":593,"title":594,"description":595,"excerpt":473,"author":6,"date":596,"category":470,"localeGroup":597},"\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":599,"title":600,"description":601,"excerpt":473,"author":6,"date":602,"category":521,"localeGroup":603},"\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":605,"title":606,"description":607,"excerpt":473,"author":6,"date":608,"category":569,"localeGroup":609},"\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":611,"title":612,"description":613,"excerpt":473,"author":6,"date":614,"category":569,"localeGroup":615},"\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":617,"title":618,"description":619,"excerpt":473,"author":6,"date":620,"category":569,"localeGroup":621},"\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":623,"title":624,"description":625,"excerpt":473,"author":6,"date":626,"category":538,"localeGroup":627},"\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":629,"title":630,"description":631,"excerpt":473,"author":6,"date":632,"category":538,"localeGroup":633},"\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","docker-minecraft-rcon-console",{"path":635,"title":636,"description":637,"excerpt":473,"author":6,"date":638,"category":470,"localeGroup":639},"\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":641,"title":642,"description":643,"excerpt":473,"author":6,"date":644,"category":470,"localeGroup":645},"\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":647,"title":648,"description":649,"excerpt":473,"author":6,"date":650,"category":521,"localeGroup":651},"\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":653,"title":654,"description":655,"excerpt":473,"author":6,"date":656,"category":521,"localeGroup":657},"\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",[659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,653,617,611,605,599,593,534,541,547,552,557,647,561,566,572,518,523,490,529,641,635,629,623,577,583,588],"\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",1786636763856]