Skip to content

heyvaldemar/minecraft-server-proxy-docker-compose

Repository files navigation

Minecraft Server Proxy Using Docker Compose

Deployment Verification

The badge displayed on my repository indicates the status of the deployment verification workflow as executed on the latest commit to the main branch.

Passing: This means the most recent commit has successfully passed all deployment checks, confirming that the Docker Compose setup functions correctly as designed.

📙 The complete installation guide is available on my website.

📗 For details on deploying the Minecraft Server (not the proxy), check out this link: Minecraft Server Using Docker Compose.

❗ Change variables in the .env to meet your requirements.

💡 Note that the .env, velocity.toml file, and plugins folder should be in the same directory as minecraft-server-docker-compose.yml.

Configure the Path to velocity.toml in minecraft-server-docker-compose.yml:

  • Linux or macOS Users:

    • Ensure the following line is active in your Docker Compose file to correctly mount the volume:

      - ./velocity.toml:/config
  • Windows Users:

    • You need to adjust the volume mount path due to the different file path formatting in Windows. Uncomment the line below and comment out the previous Linux/macOS line:

      - ./velocity.toml:/config/velocity.toml

This adjustment will set the correct path format based on your operating system, ensuring the server configures properly.

Configuration Requirements for the Proxy Server

To ensure the proxy server functions correctly, update both the IP addresses and ports in the velocity.toml file to reflect your specific Minecraft server setup. It’s crucial to replace the default 127.0.0.1 IP and example ports (25580, 25581) with the actual server IPs and the ports on which your Minecraft Server is running:

[servers]
# Configure your servers here.
lobby = "127.0.0.1:25580"
survival = "127.0.0.1:25581"

# The order in which servers are tried when a player logs in or is kicked from a server.
try = [
    "lobby",
    "survival"
]

Initial Server Setup

Upon the first startup of the Minecraft Proxy, a forwarding.secret file will be generated. Enter the contents of this file into the config/paper-global.yml on the Minecraft Server (not the proxy) within the velocity section to ensure a secure connection:

velocity:
  enabled: true
  online-mode: true
  secret: REPLACE_WITH_CONTENT_FROM_THE_forwarding.secret_FILE

Switching Between Servers

Players can navigate between different Minecraft servers using simple console commands or through an interactive lobby interface provided by the Phoenix Lobby plugin. For command-line switching, simply type /server survival to connect directly to the 'survival' server. Alternatively, for a more visually engaging experience, consider installing the Phoenix Lobby plugin on a separate server. This plugin enhances the lobby with customizable options like server selectors and NPCs, making server transitions smooth and visually appealing.

This approach not only meets functional requirements but also offers a visually appealing and user-friendly environment for players.

Deploy Minecraft Server using Docker Compose:

docker compose -f minecraft-server-proxy-docker-compose.yml -p minecraft-server-proxy up -d

Author

I’m Vladimir Mikhalev, the Docker Captain, but my friends can call me Valdemar.

🌐 My website with detailed IT guides
🎬 Follow me on YouTube
🐦 Follow me on Twitter
🎨 Follow me on Instagram
🧵 Follow me on Threads
🐘 Follow me on Mastodon
🧊 Follow me on Bluesky
🎸 Follow me on Facebook
🎥 Follow me on TikTok
💻 Follow me on LinkedIn
🐈 Follow me on GitHub

Communication

👾 Chat with IT pros on Discord
📧 Reach me at ask@sre.gg

Give Thanks

💎 Support on GitHub
🏆 Support on Patreon
🥤 Support on BuyMeaCoffee
🍪 Support on Ko-fi
💖 Support on PayPal