-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
minecraft-server-proxy-docker-compose.yml
118 lines (100 loc) · 5.53 KB
/
minecraft-server-proxy-docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# Minecraft Server Proxy Using Docker Compose
# The complete installation guide is available on my website https://www.heyvaldemar.com/install-minecraft-server-proxy-using-docker-compose/
# For details on deploying the Minecraft Server (not the proxy), check out this link: https://github.com/heyvaldemar/minecraft-server-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`.
# Ensure that you are connected to the same Docker network as your previously deployed Minecraft servers. This is crucial for network communication between your server components.
# 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:
# ```yaml
# - ./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:
# ```yaml
# - ./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:
# ```toml
# [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:
# ```yaml
# 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 https://www.myphoenixstore.com/en/items/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.
# https://www.docker.com/captains/vladimir-mikhalev/
# My website with detailed IT guides: https://www.heyvaldemar.com/
# Follow me on YouTube: https://www.youtube.com/channel/UCf85kQ0u1sYTTTyKVpxrlyQ?sub_confirmation=1
# Follow me on Twitter: https://twitter.com/heyValdemar
# Follow me on Instagram: https://www.instagram.com/heyvaldemar/
# Follow me on Threads: https://www.threads.net/@heyvaldemar
# Follow me on Mastodon: https://mastodon.social/@heyvaldemar
# Follow me on Bluesky: https://bsky.app/profile/heyvaldemar.bsky.social
# Follow me on Facebook: https://www.facebook.com/heyValdemarFB/
# Follow me on TikTok: https://www.tiktok.com/@heyvaldemar
# Follow me on LinkedIn: https://www.linkedin.com/in/heyvaldemar/
# Follow me on GitHub: https://github.com/heyvaldemar
# Communication
# Chat with IT pros on Discord: https://discord.gg/AJQGCCBcqf
# Reach me at ask@sre.gg
# Give Thanks
# Support on GitHub: https://github.com/sponsors/heyValdemar
# Support on Patreon: https://www.patreon.com/heyValdemar
# Support on BuyMeaCoffee: https://www.buymeacoffee.com/heyValdemar
# Support on Ko-fi: https://ko-fi.com/heyValdemar
# Support on PayPal: https://www.paypal.com/paypalme/heyValdemarCOM
networks:
minecraft-server-lobby-network:
external: true
minecraft-server-network:
external: true
services:
minecraft-server-proxy:
image: ${MINECRAFT_SERVER_IMAGE_TAG}
volumes:
- ./minecraft-server-proxy-data:/server
- ./plugins:/plugins:ro
# Adjust the path to 'velocity.toml' based on your operating system:
# For Linux or macOS:
- ./velocity.toml:/config
# For Windows:
# Uncomment the line below and comment out the '- ./velocity.toml:/config' line.
# - ./velocity.toml:/config/velocity.toml
environment:
TYPE: ${MINECRAFT_SERVER_TYPE}
MEMORY: ${MINECRAFT_SERVER_MEMORY}
networks:
- minecraft-server-lobby-network
- minecraft-server-network
ports:
- "${MINECRAFT_SERVER_PORT}:${MINECRAFT_SERVER_PORT}"
- "${MINECRAFT_BEDROCK_SERVER_PORT}:${MINECRAFT_BEDROCK_SERVER_PORT}/udp"
restart: unless-stopped