Fix local problem
This commit is contained in:
132
karylab-minecraft/master-minecraft.yml
Normal file
132
karylab-minecraft/master-minecraft.yml
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
# 1. 遊戲管理中心
|
||||||
|
crafty:
|
||||||
|
container_name: crafty_controller
|
||||||
|
image: registry.gitlab.com/crafty-controller/crafty-4:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Taipei
|
||||||
|
ports:
|
||||||
|
- "8000:8443" # 管理介面
|
||||||
|
- "1110:11100" # Minecraft Velocity 代理
|
||||||
|
volumes:
|
||||||
|
- /docker/minecraft/crafty/backups:/crafty/backups
|
||||||
|
- /docker/minecraft/crafty/logs:/crafty/logs
|
||||||
|
- /docker/minecraft/crafty/servers:/crafty/servers
|
||||||
|
- /docker/minecraft/crafty/config:/crafty/app/config
|
||||||
|
- /docker/minecraft/crafty/import:/crafty/import
|
||||||
|
networks:
|
||||||
|
- minecraft_net
|
||||||
|
# 資源限制(避免單一伺服器吃光所有資源)
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 24G
|
||||||
|
reservations:
|
||||||
|
memory: 8G # 保證最低 8GB,適合多伺服器同時運行
|
||||||
|
|
||||||
|
|
||||||
|
# 2. 全方位監控儀表板 (Netdata)
|
||||||
|
netdata:
|
||||||
|
image: netdata/netdata:latest
|
||||||
|
container_name: netdata_minecraft
|
||||||
|
hostname: minecraft-host # 便於識別
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "8010:19999" # 監控網頁介面
|
||||||
|
cap_add:
|
||||||
|
- SYS_PTRACE
|
||||||
|
- SYS_ADMIN
|
||||||
|
security_opt:
|
||||||
|
- apparmor:unconfined
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Taipei
|
||||||
|
# 可選:Netdata Cloud 整合
|
||||||
|
- NETDATA_CLAIM_TOKEN=${NETDATA_CLAIM_TOKEN:-} # your-token-here
|
||||||
|
- NETDATA_CLAIM_ROOMS=${NETDATA_CLAIM_ROOMS:-} # your-room-id-here
|
||||||
|
# 數據保留設定
|
||||||
|
- NETDATA_DBENGINE_MULTIHOST_DISK_SPACE=5120 # 5GB 磁碟空間(保留 7 天)
|
||||||
|
volumes:
|
||||||
|
- netdataconfig:/etc/netdata
|
||||||
|
- netdatalib:/var/lib/netdata # 時序資料庫存放位置,會成長到約 5GB
|
||||||
|
- netdatacache:/var/cache/netdata
|
||||||
|
- /etc/passwd:/host/etc/passwd:ro
|
||||||
|
- /etc/group:/host/etc/group:ro
|
||||||
|
- /proc:/host/proc:ro
|
||||||
|
- /sys:/sys:ro
|
||||||
|
- /etc/os-release:/host/etc/os-release:ro
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro # 關鍵:讓 Netdata 讀取 Docker 狀態
|
||||||
|
- /docker/minecraft/crafty/servers:/host/minecraft:ro # 監控 MC 伺服器目錄大小
|
||||||
|
networks:
|
||||||
|
- minecraft_net
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512M
|
||||||
|
reservations:
|
||||||
|
memory: 256M
|
||||||
|
|
||||||
|
# 3. 即時日誌瀏覽器 (Dozzle) - 非常推薦,看報錯超方便
|
||||||
|
dozzle:
|
||||||
|
image: amir20/dozzle:latest
|
||||||
|
container_name: dozzle_minecraft
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Taipei
|
||||||
|
- DOZZLE_LEVEL=info
|
||||||
|
- DOZZLE_TAILSIZE=500 # 日誌顯示行數
|
||||||
|
- DOZZLE_FILTER=name=crafty*|name=minecraft* # 只顯示 MC 相關容器
|
||||||
|
ports:
|
||||||
|
- "8020:8080" # 訪問 http://localhost:8020 即可看到所有容器日誌
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
networks:
|
||||||
|
- minecraft_net
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 256M
|
||||||
|
|
||||||
|
# 4. 備份服務 (可選) - 自動備份到雲端或其他位置
|
||||||
|
# duplicati:
|
||||||
|
# image: lscr.io/linuxserver/duplicati:latest
|
||||||
|
# container_name: minecraft_backup
|
||||||
|
# restart: unless-stopped
|
||||||
|
# environment:
|
||||||
|
# - PUID=1000
|
||||||
|
# - PGID=1000
|
||||||
|
# - TZ=Asia/Taipei
|
||||||
|
# ports:
|
||||||
|
# - "8200:8200"
|
||||||
|
# volumes:
|
||||||
|
# - ./duplicati/config:/config
|
||||||
|
# - ./crafty/backups:/backups:ro
|
||||||
|
# - ./crafty/servers:/source:ro
|
||||||
|
# networks:
|
||||||
|
# - minecraft_net
|
||||||
|
|
||||||
|
# 5. Watchtower - 自動更新容器映像檔(可選)
|
||||||
|
# watchtower:
|
||||||
|
# image: containrrr/watchtower:latest
|
||||||
|
# container_name: watchtower_minecraft
|
||||||
|
# restart: unless-stopped
|
||||||
|
# environment:
|
||||||
|
# - TZ=Asia/Taipei
|
||||||
|
# - WATCHTOWER_CLEANUP=true
|
||||||
|
# - WATCHTOWER_SCHEDULE=0 0 4 * * * # 每天凌晨 4 點檢查更新
|
||||||
|
# - WATCHTOWER_INCLUDE_STOPPED=false
|
||||||
|
# volumes:
|
||||||
|
# - /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
# networks:
|
||||||
|
# - minecraft_net
|
||||||
|
|
||||||
|
networks:
|
||||||
|
minecraft_net:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
netdataconfig:
|
||||||
|
netdatalib:
|
||||||
|
netdatacache:
|
||||||
@@ -1,25 +1,6 @@
|
|||||||
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
|
||||||
@@ -28,14 +9,14 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Taipei
|
- TZ=Asia/Taipei
|
||||||
ports:
|
ports:
|
||||||
- "8000:8443" # 管理介面
|
- "8000:8443" # 管理介面
|
||||||
|
- "1110:11100" # Minecraft 統一連接埠
|
||||||
volumes:
|
volumes:
|
||||||
- /docker/minecraft/crafty/backups:/var/opt/crafty/backups
|
- /docker/minecraft/crafty/backups:/crafty/backups
|
||||||
- /docker/minecraft/crafty/db:/var/opt/crafty/db
|
- /docker/minecraft/crafty/logs:/crafty/logs
|
||||||
- /docker/minecraft/crafty/logs:/var/opt/crafty/logs
|
- /docker/minecraft/crafty/servers:/crafty/servers
|
||||||
- /docker/minecraft/crafty/servers:/var/opt/crafty/servers
|
- /docker/minecraft/crafty/config:/crafty/app/config
|
||||||
- /docker/minecraft/crafty/config:/var/opt/crafty/app/config
|
- /docker/minecraft/crafty/import:/crafty/import
|
||||||
- /docker/minecraft/crafty/import:/var/opt/crafty/import
|
|
||||||
networks:
|
networks:
|
||||||
- minecraft_net
|
- minecraft_net
|
||||||
# 資源限制(避免單一伺服器吃光所有資源)
|
# 資源限制(避免單一伺服器吃光所有資源)
|
||||||
@@ -87,7 +68,7 @@ services:
|
|||||||
reservations:
|
reservations:
|
||||||
memory: 256M
|
memory: 256M
|
||||||
|
|
||||||
# 3. 即時日誌瀏覽器 (Dozzle) - 非常推薦,看報錯超方便
|
# 3. 即時日誌瀏覽器 (Dozzle) - 看報錯用
|
||||||
dozzle:
|
dozzle:
|
||||||
image: amir20/dozzle:latest
|
image: amir20/dozzle:latest
|
||||||
container_name: dozzle_minecraft
|
container_name: dozzle_minecraft
|
||||||
|
|||||||
@@ -1,24 +1,54 @@
|
|||||||
# Velocity 配置檔範例
|
# Velocity 配置檔範例
|
||||||
# 啟動容器後會自動生成在 /docker/minecraft/velocity/velocity.toml
|
# 啟動容器後會自動生成在 /docker/minecraft/velocity/velocity.toml
|
||||||
# 以下是關鍵設定說明
|
|
||||||
|
# Config version. Do not change this
|
||||||
|
config-version = "2.7"
|
||||||
|
|
||||||
# 綁定地址和端口
|
# 綁定地址和端口
|
||||||
bind = "0.0.0.0:25577"
|
bind = "0.0.0.0:11100"
|
||||||
|
|
||||||
# 強制主機域名路由(關鍵!)
|
# 伺服器列表 MOTD
|
||||||
[forced-hosts]
|
motd = "<gradient:#09add3:#d33682>Karylab Minecraft Network</gradient>"
|
||||||
"parkour.您的網域.com" = ["parkour"]
|
|
||||||
"survival.您的網域.com" = ["survival"]
|
# 最大顯示玩家數
|
||||||
"lobby.您的網域.com" = ["lobby"]
|
show-max-players = 100
|
||||||
|
|
||||||
|
# 正版驗證
|
||||||
|
online-mode = false
|
||||||
|
|
||||||
|
# 防止透過代理/VPN連線 (會踢掉使用VPN的玩家,建議關閉)
|
||||||
|
prevent-client-proxy-connections = false
|
||||||
|
|
||||||
|
# 如果有相同玩家嘗試重複登入,是否踢掉已在線的玩家
|
||||||
|
kick-existing-players = true
|
||||||
|
|
||||||
# 後端伺服器列表
|
# 後端伺服器列表
|
||||||
[servers]
|
[servers]
|
||||||
parkour = "crafty_controller:11110"
|
parkour-spiral = "127.0.0.1:1110"
|
||||||
survival = "crafty_controller:11120"
|
parkour-volcano = "127.0.0.1:1120"
|
||||||
lobby = "crafty_controller:11130"
|
|
||||||
|
|
||||||
# 預設進入的伺服器(玩家直接用IP連線時)
|
# 強制主機域名路由(關鍵!)
|
||||||
try = ["lobby"]
|
[forced-hosts]
|
||||||
|
"parkour-spiral.karylab.uk" = ["parkour-spiral"]
|
||||||
|
"parkour-volcano.karylab.uk" = ["parkour-volcano"]
|
||||||
|
|
||||||
# 啟用 modern forwarding (讓後端伺服器知道玩家真實IP)
|
# 啟用 modern forwarding (讓後端伺服器知道玩家真實IP)
|
||||||
player-info-forwarding-mode = "modern"
|
player-info-forwarding-mode = "modern"
|
||||||
|
|
||||||
|
# 是否宣告伺服器支援 Forge 模組 (原版伺服器設為 false)
|
||||||
|
announce-forge = false
|
||||||
|
|
||||||
|
# 伺服器列表 Ping 穿透設定 (當玩家在 Minecraft 多人遊戲列表看到伺服器時,顯示的資訊從哪來)
|
||||||
|
ping-passthrough = "DISABLED"
|
||||||
|
|
||||||
|
# 轉發密鑰檔案
|
||||||
|
forwarding-secret-file = "forwarding.secret"
|
||||||
|
|
||||||
|
[advanced]
|
||||||
|
# 壓縮閾值
|
||||||
|
compression-threshold = 256
|
||||||
|
compression-level = -1
|
||||||
|
login-ratelimit = 3000
|
||||||
|
|
||||||
|
# 是否在日誌記錄玩家 IP
|
||||||
|
enable-player-address-logging = true
|
||||||
|
|||||||
Reference in New Issue
Block a user