Add local proxy

This commit is contained in:
ChenKaiLiuG
2025-12-28 11:51:10 +08:00
parent f9412e68ea
commit 0a218fe1e4
2 changed files with 46 additions and 18 deletions

View File

@@ -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

View 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"