[{"data":1,"prerenderedAt":624},["ShallowReactive",2],{"\u002Fguides\u002Fvelocity-proxy-docker-compose-itzg-mc-proxy\u002F":3,"guides:en":455,"published-guide-paths":597},{"id":4,"title":5,"author":6,"body":7,"category":409,"date":410,"description":411,"excerpt":412,"extension":413,"faq":414,"featured":424,"featuredOrder":412,"indexOrder":425,"localeGroup":426,"meta":427,"navigation":428,"path":429,"primaryTool":430,"published":428,"related":431,"seo":435,"slug":436,"sources":437,"stem":453,"updated":410,"__hash__":454},"guides\u002Fguides\u002F23.velocity-proxy-docker-compose-itzg-mc-proxy.md","Set up Velocity and Paper with Docker Compose","setupmc.com Team",{"type":8,"value":9,"toc":398},"minimark",[10,15,19,46,55,59,75,78,88,103,111,115,118,126,133,139,142,146,152,160,170,182,186,189,195,198,229,240,244,255,261,264,268,365,369],[11,12,14],"h2",{"id":13},"what-this-network-does","What this network does",[16,17,18],"p",{},"Velocity becomes the only public Minecraft entry point. It authenticates Java players and sends them to one or more backend servers. In this first setup, the network contains:",[20,21,22,31,37,40,43],"ul",{},[23,24,25,26,30],"li",{},"one ",[27,28,29],"code",{},"itzg\u002Fmc-proxy"," container running Velocity",[23,32,25,33,36],{},[27,34,35],{},"itzg\u002Fminecraft-server"," container running Paper",[23,38,39],{},"one shared Docker network",[23,41,42],{},"only TCP port 25565 published by the proxy",[23,44,45],{},"persistent folders for proxy and server state",[16,47,48,49,54],{},"If you only need one server and no proxy plugins, stay with the simpler ",[50,51,53],"a",{"href":52},"\u002Fjava-server\u002F","Java server configurator",". A proxy adds another security boundary that must be configured deliberately.",[11,56,58],{"id":57},"step-1-generate-the-proxy-compose-baseline","Step 1: Generate the proxy Compose baseline",[16,60,61,62,66,67,70,71,74],{},"Open the ",[50,63,65],{"href":64},"\u002Fproxy-server\u002F","Minecraft Proxy Configurator",", select ",[27,68,69],{},"VELOCITY",", and keep the public mapping at ",[27,72,73],{},"25565:25577",". Download the generated Compose file.",[16,76,77],{},"For the complete network, extend it with a Paper backend:",[79,80,86],"pre",{"className":81,"code":83,"language":84,"meta":85},[82],"language-yaml","services:\n  proxy:\n    image: itzg\u002Fmc-proxy:latest\n    restart: unless-stopped\n    ports:\n      - \"25565:25577\"\n    environment:\n      TYPE: VELOCITY\n      MEMORY: 512m\n    volumes:\n      - .\u002Fproxy:\u002Fserver\n    networks:\n      - minecraft\n    stdin_open: true\n    tty: true\n\n  lobby:\n    image: itzg\u002Fminecraft-server:java25\n    restart: unless-stopped\n    environment:\n      EULA: \"TRUE\"\n      TYPE: PAPER\n      VERSION: \"26.1.2\"\n      ONLINE_MODE: \"FALSE\"\n    volumes:\n      - .\u002Flobby:\u002Fdata\n    networks:\n      - minecraft\n\nnetworks:\n  minecraft: {}\n","yaml","",[27,87,83],{"__ignoreMap":85},[16,89,90,91,94,95,98,99,102],{},"The backend has no ",[27,92,93],{},"ports"," entry. Docker Compose makes it reachable as ",[27,96,97],{},"lobby:25565"," from the proxy because both services share the ",[27,100,101],{},"minecraft"," network.",[16,104,105,106,110],{},"Pin a Minecraft release you have tested instead of copying the example version indefinitely. Check the ",[50,107,109],{"href":108},"\u002Fguides\u002Fdetermining-correct-java-version-for-operating-minecraft-server\u002F","Java version guide"," when the selected Paper release changes its runtime requirement.",[11,112,114],{"id":113},"step-2-start-once-to-create-configuration-files","Step 2: Start once to create configuration files",[16,116,117],{},"Create the persistent folders, validate the resolved Compose model, and start both services:",[79,119,124],{"className":120,"code":122,"language":123,"meta":85},[121],"language-bash","mkdir -p proxy lobby\ndocker compose config\ndocker compose up -d\ndocker compose logs -f proxy lobby\n","bash",[27,125,122],{"__ignoreMap":85},[16,127,128,129,132],{},"Wait until Paper reports that it is ready and Velocity has created ",[27,130,131],{},"proxy\u002Fvelocity.toml",". Then stop the stack before changing forwarding:",[79,134,137],{"className":135,"code":136,"language":123,"meta":85},[121],"docker compose down\n",[27,138,136],{"__ignoreMap":85},[16,140,141],{},"Do not leave the backend in offline mode while its port is public. The next step completes identity forwarding before the network is opened to players.",[11,143,145],{"id":144},"step-3-register-the-backend-in-velocity","Step 3: Register the backend in Velocity",[16,147,148,149,151],{},"Edit ",[27,150,131],{},". Keep the proxy listener aligned with the container port and point the backend at the Compose service name:",[79,153,158],{"className":154,"code":156,"language":157,"meta":85},[155],"language-toml","bind = \"0.0.0.0:25577\"\nonline-mode = true\nplayer-info-forwarding-mode = \"modern\"\nforwarding-secret-file = \"forwarding.secret\"\n\n[servers]\nlobby = \"lobby:25565\"\ntry = [\"lobby\"]\n","toml",[27,159,156],{"__ignoreMap":85},[16,161,162,165,166,169],{},[27,163,164],{},"localhost"," would mean the proxy container itself, not the Paper container. Docker service discovery keeps ",[27,167,168],{},"lobby"," stable even when the backend container receives a new IP address.",[16,171,172,173,176,177,181],{},"Velocity creates ",[27,174,175],{},"proxy\u002Fforwarding.secret",". The same value must be configured on Paper. Follow the dedicated ",[50,178,180],{"href":179},"\u002Fguides\u002Fvelocity-modern-forwarding-paper-docker\u002F","Velocity modern forwarding guide"," before starting the public network.",[11,183,185],{"id":184},"step-4-start-and-validate-every-layer","Step 4: Start and validate every layer",[16,187,188],{},"Bring the stack back up:",[79,190,193],{"className":191,"code":192,"language":123,"meta":85},[121],"docker compose up -d\ndocker compose ps\ndocker compose logs --tail=100 proxy lobby\n",[27,194,192],{"__ignoreMap":85},[16,196,197],{},"Confirm these conditions:",[199,200,201,208,211,217,223],"ol",{},[23,202,203,204,207],{},"Both services remain ",[27,205,206],{},"Up"," and the proxy becomes healthy.",[23,209,210],{},"Velocity logs no forwarding or backend connection error.",[23,212,213,216],{},[27,214,215],{},"docker compose port proxy 25577"," shows the public mapping.",[23,218,219,222],{},[27,220,221],{},"docker compose port lobby 25565"," returns no published host port.",[23,224,225,226,228],{},"A Java client can join the host on port 25565 and reaches ",[27,227,168],{},".",[16,230,231,232,235,236,239],{},"Finally, run ",[27,233,234],{},"server lobby"," in the Velocity console or use the in-game ",[27,237,238],{},"\u002Fserver lobby"," command with appropriate permissions. The backend console should show the forwarded player identity, not an unauthenticated direct login.",[11,241,243],{"id":242},"add-a-second-backend-later","Add a second backend later",[16,245,246,247,250,251,254],{},"Add another service, for example ",[27,248,249],{},"survival",", to the same network and register it in ",[27,252,253],{},"velocity.toml",":",[79,256,259],{"className":257,"code":258,"language":157,"meta":85},[155],"[servers]\nlobby = \"lobby:25565\"\nsurvival = \"survival:25565\"\ntry = [\"lobby\"]\n",[27,260,258],{"__ignoreMap":85},[16,262,263],{},"Do not reuse a world directory across backend services. Give every server its own persistent data path and repeat the same forwarding and isolation controls.",[11,265,267],{"id":266},"troubleshooting","Troubleshooting",[269,270,271,287],"table",{},[272,273,274],"thead",{},[275,276,277,281,284],"tr",{},[278,279,280],"th",{},"Symptom",[278,282,283],{},"Likely cause",[278,285,286],{},"Next check",[288,289,290,309,320,331,350],"tbody",{},[275,291,292,299,302],{},[293,294,295,296,298],"td",{},"Velocity starts, but ",[27,297,168],{}," is unavailable",[293,300,301],{},"Wrong service name, port, or Docker network",[293,303,304,305],{},"Follow the ",[50,306,308],{"href":307},"\u002Fguides\u002Fvelocity-proxy-cannot-connect-backend-docker\u002F","backend connection runbook",[275,310,311,314,317],{},[293,312,313],{},"Paper says to connect through Velocity",[293,315,316],{},"Modern forwarding differs between proxy and backend",[293,318,319],{},"Compare mode, enabled flag, and secret",[275,321,322,325,328],{},[293,323,324],{},"Players can bypass the proxy",[293,326,327],{},"Backend port was published or allowed by a firewall",[293,329,330],{},"Remove the backend port mapping and close the rule",[275,332,333,336,339],{},[293,334,335],{},"Proxy is unhealthy but accepts connections",[293,337,338],{},"Healthcheck port differs from the Velocity listener",[293,340,341,342,345,346,349],{},"Align ",[27,343,344],{},"SERVER_PORT",", ",[27,347,348],{},"bind",", and the container port",[275,351,352,355,362],{},[293,353,354],{},"Existing world is missing",[293,356,357,358,361],{},"A different ",[27,359,360],{},"\u002Fdata"," path was mounted",[293,363,364],{},"Stop and verify the bind mount before copying data",[11,366,368],{"id":367},"next-steps","Next steps",[20,370,371,378,384,391],{},[23,372,373,374,377],{},"Complete ",[50,375,376],{"href":179},"Velocity modern forwarding for Paper"," before inviting players.",[23,379,380,381,228],{},"If the proxy cannot see a backend, diagnose the ",[50,382,383],{"href":307},"Docker connection path",[23,385,386,387,228],{},"Add Bedrock access with ",[50,388,390],{"href":389},"\u002Fguides\u002Fgeyser-floodgate-velocity-proxy-docker\u002F","Geyser and Floodgate on Velocity",[23,392,393,394,228],{},"Protect each server independently with ",[50,395,397],{"href":396},"\u002Fguides\u002Fset-up-automatic-minecraft-backups-docker-mc-backup\u002F","automatic backups",{"title":85,"searchDepth":399,"depth":399,"links":400},2,[401,402,403,404,405,406,407,408],{"id":13,"depth":399,"text":14},{"id":57,"depth":399,"text":58},{"id":113,"depth":399,"text":114},{"id":144,"depth":399,"text":145},{"id":184,"depth":399,"text":185},{"id":242,"depth":399,"text":243},{"id":266,"depth":399,"text":267},{"id":367,"depth":399,"text":368},"getting-started","2026-08-01","Connect your proxy and server while keeping Paper ports isolated from the internet.",null,"md",[415,418,421],{"question":416,"answer":417},"Do I need a proxy for a single Minecraft server?","Usually not. A proxy becomes useful when one public address should route players to multiple backend servers, when proxy plugins are required, or when Geyser should run at the network edge.",{"question":419,"answer":420},"Should the Paper backend publish port 25565?","No. When proxy and backend share a Docker network, Velocity connects to the Paper service name and container port directly. Publishing the backend would create an avoidable bypass around the proxy.",{"question":422,"answer":423},"Why does the setup use offline mode on Paper?","Velocity authenticates the player at the public edge and forwards the identity to Paper. Offline mode on the backend is safe only when direct access is blocked and forwarding is configured correctly.",false,"4","velocity-proxy-docker-compose",{},true,"\u002Fguides\u002Fvelocity-proxy-docker-compose-itzg-mc-proxy","proxy-configurator",[432,433,434],"velocity-modern-forwarding-paper","velocity-backend-unreachable-docker","minecraft-docker-security-hardening",{"title":5,"description":411},"velocity-proxy-docker-compose-itzg-mc-proxy",[438,441,444,447,450],{"title":439,"url":440},"itzg\u002Fmc-proxy image documentation","https:\u002F\u002Fgithub.com\u002Fitzg\u002Fdocker-mc-proxy",{"title":442,"url":443},"Velocity getting started","https:\u002F\u002Fdocs.papermc.io\u002Fvelocity\u002Fgetting-started\u002F",{"title":445,"url":446},"Velocity configuration reference","https:\u002F\u002Fdocs.papermc.io\u002Fvelocity\u002Fconfiguration\u002F",{"title":448,"url":449},"Velocity server security","https:\u002F\u002Fdocs.papermc.io\u002Fvelocity\u002Fsecurity\u002F",{"title":451,"url":452},"Docker Compose networking","https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002Fhow-tos\u002Fnetworking\u002F","guides\u002F23.velocity-proxy-docker-compose-itzg-mc-proxy","yAryHKzt8p6M4OAMXC-CUfj1NTcRZuY3ndubVBu_nEg",[456,457,462,467,472,479,485,490,495,500,505,511,515,521,526,531,537,543,549,555,561,567,573,579,585,591],{"path":429,"title":5,"description":411,"excerpt":412,"author":6,"date":410,"category":409,"localeGroup":426},{"path":458,"title":459,"description":460,"excerpt":412,"author":6,"date":410,"category":461,"localeGroup":432},"\u002Fguides\u002Fvelocity-modern-forwarding-paper-docker","Configure Velocity modern forwarding with Paper","Match forwarding settings, protect the shared secret, and block direct backend access.","security",{"path":463,"title":464,"description":465,"excerpt":412,"author":6,"date":410,"category":466,"localeGroup":433},"\u002Fguides\u002Fvelocity-proxy-cannot-connect-backend-docker","Velocity cannot reach Paper: check the Docker connection","Check container state, the shared network, service name, and backend port.","networking",{"path":468,"title":469,"description":470,"excerpt":412,"author":6,"date":410,"category":466,"localeGroup":471},"\u002Fguides\u002Fgeyser-floodgate-velocity-proxy-docker","Set up Geyser and Floodgate on Velocity with Docker","Install Geyser on the proxy and check UDP port 19132 and Bedrock player authentication.","geyser-floodgate-velocity-proxy",{"path":473,"title":474,"description":475,"excerpt":412,"author":6,"date":476,"category":477,"localeGroup":478},"\u002Fguides\u002Fupdate-minecraft-server-docker-compose-rollback","Update and roll back Minecraft with Docker Compose","Back up configuration and data before updating, then restore both together if you need to roll back.","2026-07-18","docker-operations","docker-minecraft-update-rollback",{"path":480,"title":481,"description":482,"excerpt":412,"author":6,"date":476,"category":483,"localeGroup":484},"\u002Fguides\u002Finstall-paper-plugins-docker-compose","Install Paper plugins with Docker Compose","Install plugins from a source directory or Modrinth and test updates before using them.","mods-plugins","paper-plugins-docker-compose",{"path":486,"title":487,"description":488,"excerpt":412,"author":6,"date":476,"category":483,"localeGroup":489},"\u002Fguides\u002Fmodrinth-modpack-itzg-minecraft-server-docker","Run Modrinth modpacks with Docker Compose","Pin the pack version and Java runtime, then match the server and client before the first start.","modrinth-modpack-docker",{"path":491,"title":492,"description":493,"excerpt":412,"author":6,"date":476,"category":477,"localeGroup":494},"\u002Fguides\u002Fmigrate-existing-minecraft-server-to-docker","Move an existing Minecraft server to Docker","Transfer your world, configuration, and extensions while keeping the original server available for rollback.","migrate-minecraft-server-to-docker",{"path":496,"title":497,"description":498,"excerpt":412,"author":6,"date":476,"category":477,"localeGroup":499},"\u002Fguides\u002Fminecraft-container-keeps-restarting-docker-compose","Find why your Minecraft container keeps restarting","Capture the container state and first startup error before interrupting the restart loop.","docker-minecraft-restart-loop",{"path":501,"title":502,"description":503,"excerpt":412,"author":6,"date":476,"category":483,"localeGroup":504},"\u002Fguides\u002Fcurseforge-modpack-itzg-minecraft-server-docker","Run CurseForge modpacks with Docker Compose","Configure AUTO_CURSEFORGE, pin the pack file, and handle the API key and manual downloads.","curseforge-modpack-docker",{"path":506,"title":507,"description":508,"excerpt":412,"author":6,"date":476,"category":509,"localeGroup":510},"\u002Fguides\u002Fminecraft-docker-exit-code-137-oomkilled","Minecraft exit code 137: check OOMKilled and memory limits","Exit code 137 means SIGKILL. Check OOMKilled, Java heap, and container limits to identify memory exhaustion.","performance","minecraft-docker-exit-137-oom",{"path":512,"title":513,"description":514,"excerpt":412,"author":6,"date":476,"category":461,"localeGroup":434},"\u002Fguides\u002Fsecure-minecraft-server-docker-compose","Secure a Minecraft server in Docker","Configure authentication, the whitelist, RCON access, file permissions, and published ports.",{"path":516,"title":517,"description":518,"excerpt":412,"author":6,"date":476,"category":519,"localeGroup":520},"\u002Fguides\u002Fset-up-automatic-minecraft-backups-docker-mc-backup","Set up automatic Minecraft backups with itzg\u002Fmc-backup","Add a backup container, set retention periods, and verify the resulting archives.","backups","docker-mc-backup-setup",{"path":522,"title":523,"description":524,"excerpt":412,"author":6,"date":476,"category":519,"localeGroup":525},"\u002Fguides\u002Frestore-minecraft-world-backup-docker","Restore a Minecraft world from a Docker backup","Stop the server, preserve the current data, and restore the selected backup.","docker-minecraft-restore-runbook",{"path":527,"title":528,"description":529,"excerpt":412,"author":6,"date":476,"category":519,"localeGroup":530},"\u002Fguides\u002Fhetzner-snapshots-minecraft-world-volumes","Hetzner snapshots and Minecraft data on volumes","Hetzner snapshots exclude attached volumes. Check where your world is stored and back it up separately.","hetzner-snapshots-volumes",{"path":532,"title":533,"description":534,"excerpt":412,"author":6,"date":535,"category":466,"localeGroup":536},"\u002Fguides\u002Fminecraft-crossplay-geyser-floodgate","Set up Geyser and Floodgate on Paper","Let Bedrock players join a Java server: install the plugins, open the UDP port, and test the connection.","2026-04-04","geyser-floodgate-crossplay",{"path":538,"title":539,"description":540,"excerpt":412,"author":6,"date":541,"category":409,"localeGroup":542},"\u002Fguides\u002Fpaper-vs-vanilla-vs-fabric-vs-forge","Vanilla, Paper, Fabric, or Forge: choose server software","Compare Vanilla, Paper, Fabric, Quilt, Forge, and NeoForge by the plugins and mods you need.","2026-04-03","minecraft-server-software-choice",{"path":544,"title":545,"description":546,"excerpt":412,"author":6,"date":547,"category":509,"localeGroup":548},"\u002Fguides\u002Fpaper-view-distance-vs-simulation-distance","Configure view distance and simulation distance in Paper","Compare viewing distance and active simulation, then measure their effect on server load.","2026-04-02","paper-view-distance-simulation-distance",{"path":550,"title":551,"description":552,"excerpt":412,"author":6,"date":553,"category":509,"localeGroup":554},"\u002Fguides\u002Fspark-profiler-paper-docker","Investigate lag with Spark Profiler in Paper and Docker","Record a profile while lag occurs and identify costly plugins, tasks, and server activity.","2026-04-01","spark-profiler-paper-docker",{"path":556,"title":557,"description":558,"excerpt":412,"author":6,"date":559,"category":509,"localeGroup":560},"\u002Fguides\u002Fminecraft-server-lag-tps-mspt-cant-keep-up","Investigate Minecraft lag: TPS, MSPT, and “Can’t keep up”","Check tick times and investigate CPU, chunk, entity, and plugin problems.","2026-03-31","minecraft-lag-tps-mspt",{"path":562,"title":563,"description":564,"excerpt":412,"author":6,"date":565,"category":477,"localeGroup":566},"\u002Fguides\u002Ffix-permission-denied-itzg-docker-minecraft-server","Fix permission denied errors for Minecraft in Docker","Match data-directory ownership to the container UID and GID.","2026-03-09","itzg-permission-denied",{"path":568,"title":569,"description":570,"excerpt":412,"author":6,"date":571,"category":477,"localeGroup":572},"\u002Fguides\u002Fadminister-docker-minecraft-server-rcon-console","Manage Minecraft in Docker with RCON and the console","Run server commands, manage the whitelist, and stop the server without exposing RCON publicly.","2026-03-08","docker-minecraft-rcon-console",{"path":574,"title":575,"description":576,"excerpt":412,"author":6,"date":577,"category":466,"localeGroup":578},"\u002Fguides\u002Fminecraft-domain-without-port-srv-record","Set up a Minecraft domain without a port using SRV","Connect a domain to your Java server and check its SRV and A\u002FAAAA records.","2026-03-07","minecraft-srv-record-domain",{"path":580,"title":581,"description":582,"excerpt":412,"author":6,"date":583,"category":466,"localeGroup":584},"\u002Fguides\u002Fopen-port-25565-minecraft-server-hetzner-linux","Open Minecraft port 25565 on Hetzner and Linux","Check Docker port publishing and firewalls when your server runs but players cannot connect.","2026-03-05","open-port-25565-hetzner-linux",{"path":586,"title":587,"description":588,"excerpt":412,"author":6,"date":589,"category":409,"localeGroup":590},"\u002Fguides\u002Fdetermining-correct-java-version-for-operating-minecraft-server","Find the Java version your Minecraft server needs","Match class-file errors to Java versions and choose the runtime for your server.","2025-01-31","java-version-minecraft-server",{"path":592,"title":593,"description":594,"excerpt":412,"author":6,"date":595,"category":409,"localeGroup":596},"\u002Fguides\u002Fminecraft-server-with-docker-on-hetzner-cloud","Set up a Minecraft server on Hetzner with Docker Compose","Set up a Java server on Hetzner Cloud: Debian, SSH access, Docker Compose, and the first server start.","2025-01-28","hetzner-docker-setup",[598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,592,556,550,544,538,532,473,480,486,491,496,586,501,506,512,429,458,463,468,580,574,568,562,516,522,527],"\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",1789248456741]