Add local proxy
This commit is contained in:
@@ -1,6 +1,25 @@
|
|||||||
version: '3.8'
|
version: '3.8'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
# 0. Velocity - Minecraft 代理伺服器(群組架構核心)
|
||||||
|
velocity:
|
||||||
|
image: itzg/bungeecord:latest
|
||||||
|
container_name: velocity_proxy
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- TYPE=VELOCITY
|
||||||
|
- TZ=Asia/Taipei
|
||||||
|
- MEMORY=1G
|
||||||
|
ports:
|
||||||
|
- "1110:25577" # 對外唯一端口
|
||||||
|
volumes:
|
||||||
|
- /docker/minecraft/velocity:/server
|
||||||
|
networks:
|
||||||
|
- minecraft_net
|
||||||
|
# 玩家透過不同網域連線,Velocity 自動路由到對應後端伺服器
|
||||||
|
# parkour.domain.com -> crafty:11110
|
||||||
|
# survival.domain.com -> crafty:11120
|
||||||
|
|
||||||
# 1. 遊戲管理中心
|
# 1. 遊戲管理中心
|
||||||
crafty:
|
crafty:
|
||||||
container_name: crafty_controller
|
container_name: crafty_controller
|
||||||
@@ -9,7 +28,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Taipei
|
- TZ=Asia/Taipei
|
||||||
ports:
|
ports:
|
||||||
- "8000:8443" # 管理介面 (HTTPS)
|
- "8000:8443" # 管理介面
|
||||||
volumes:
|
volumes:
|
||||||
- /docker/minecraft/crafty/backups:/var/opt/crafty/backups
|
- /docker/minecraft/crafty/backups:/var/opt/crafty/backups
|
||||||
- /docker/minecraft/crafty/db:/var/opt/crafty/db
|
- /docker/minecraft/crafty/db:/var/opt/crafty/db
|
||||||
@@ -27,6 +46,7 @@ services:
|
|||||||
reservations:
|
reservations:
|
||||||
memory: 8G # 保證最低 8GB,適合多伺服器同時運行
|
memory: 8G # 保證最低 8GB,適合多伺服器同時運行
|
||||||
|
|
||||||
|
|
||||||
# 2. 全方位監控儀表板 (Netdata)
|
# 2. 全方位監控儀表板 (Netdata)
|
||||||
netdata:
|
netdata:
|
||||||
image: netdata/netdata:latest
|
image: netdata/netdata:latest
|
||||||
@@ -106,23 +126,7 @@ services:
|
|||||||
# networks:
|
# networks:
|
||||||
# - minecraft_net
|
# - minecraft_net
|
||||||
|
|
||||||
# 5. Cloudflare Tunnel - 網域穿透 (不需開防火牆)
|
# 5. Watchtower - 自動更新容器映像檔(可選)
|
||||||
cloudflared:
|
|
||||||
image: cloudflare/cloudflared:latest
|
|
||||||
container_name: cloudflared_minecraft
|
|
||||||
restart: unless-stopped
|
|
||||||
command: tunnel run
|
|
||||||
environment:
|
|
||||||
- TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN} # 需要在 Cloudflare Dashboard 建立 Tunnel 取得
|
|
||||||
networks:
|
|
||||||
- minecraft_net
|
|
||||||
# Cloudflare Tunnel 會自動處理:
|
|
||||||
# - SSL/TLS 加密
|
|
||||||
# - DDoS 防護
|
|
||||||
# - 不需開任何防火牆 port
|
|
||||||
# 設定方式: https://dash.cloudflare.com -> Zero Trust -> Access -> Tunnels
|
|
||||||
|
|
||||||
# 6. Watchtower - 自動更新容器映像檔(可選)
|
|
||||||
# watchtower:
|
# watchtower:
|
||||||
# image: containrrr/watchtower:latest
|
# image: containrrr/watchtower:latest
|
||||||
# container_name: watchtower_minecraft
|
# container_name: watchtower_minecraft
|
||||||
|
|||||||
24
karylab-minecraft/velocity-config.toml
Normal file
24
karylab-minecraft/velocity-config.toml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Velocity 配置檔範例
|
||||||
|
# 啟動容器後會自動生成在 /docker/minecraft/velocity/velocity.toml
|
||||||
|
# 以下是關鍵設定說明
|
||||||
|
|
||||||
|
# 綁定地址和端口
|
||||||
|
bind = "0.0.0.0:25577"
|
||||||
|
|
||||||
|
# 強制主機域名路由(關鍵!)
|
||||||
|
[forced-hosts]
|
||||||
|
"parkour.您的網域.com" = ["parkour"]
|
||||||
|
"survival.您的網域.com" = ["survival"]
|
||||||
|
"lobby.您的網域.com" = ["lobby"]
|
||||||
|
|
||||||
|
# 後端伺服器列表
|
||||||
|
[servers]
|
||||||
|
parkour = "crafty_controller:11110"
|
||||||
|
survival = "crafty_controller:11120"
|
||||||
|
lobby = "crafty_controller:11130"
|
||||||
|
|
||||||
|
# 預設進入的伺服器(玩家直接用IP連線時)
|
||||||
|
try = ["lobby"]
|
||||||
|
|
||||||
|
# 啟用 modern forwarding (讓後端伺服器知道玩家真實IP)
|
||||||
|
player-info-forwarding-mode = "modern"
|
||||||
Reference in New Issue
Block a user