From 0a218fe1e46d29a68472ca3aa38606cb831257ee Mon Sep 17 00:00:00 2001 From: ChenKaiLiuG Date: Sun, 28 Dec 2025 11:51:10 +0800 Subject: [PATCH] Add local proxy --- karylab-minecraft/minecraft.yml | 40 ++++++++++++++------------ karylab-minecraft/velocity-config.toml | 24 ++++++++++++++++ 2 files changed, 46 insertions(+), 18 deletions(-) create mode 100644 karylab-minecraft/velocity-config.toml diff --git a/karylab-minecraft/minecraft.yml b/karylab-minecraft/minecraft.yml index baf7455..fe3d316 100644 --- a/karylab-minecraft/minecraft.yml +++ b/karylab-minecraft/minecraft.yml @@ -1,6 +1,25 @@ version: '3.8' 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. 遊戲管理中心 crafty: container_name: crafty_controller @@ -9,7 +28,7 @@ services: environment: - TZ=Asia/Taipei ports: - - "8000:8443" # 管理介面 (HTTPS) + - "8000:8443" # 管理介面 volumes: - /docker/minecraft/crafty/backups:/var/opt/crafty/backups - /docker/minecraft/crafty/db:/var/opt/crafty/db @@ -27,6 +46,7 @@ services: reservations: memory: 8G # 保證最低 8GB,適合多伺服器同時運行 + # 2. 全方位監控儀表板 (Netdata) netdata: image: netdata/netdata:latest @@ -106,23 +126,7 @@ services: # networks: # - minecraft_net - # 5. Cloudflare Tunnel - 網域穿透 (不需開防火牆) - 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 - 自動更新容器映像檔(可選) + # 5. Watchtower - 自動更新容器映像檔(可選) # watchtower: # image: containrrr/watchtower:latest # container_name: watchtower_minecraft diff --git a/karylab-minecraft/velocity-config.toml b/karylab-minecraft/velocity-config.toml new file mode 100644 index 0000000..d211418 --- /dev/null +++ b/karylab-minecraft/velocity-config.toml @@ -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"