Remove unnessary files

This commit is contained in:
ChenKaiLiuG
2026-03-28 21:57:44 +08:00
parent 997d078b64
commit 555e5e70f1
10 changed files with 73 additions and 129 deletions

View File

@@ -0,0 +1,7 @@
# 啟用 Velocity 支援
hackEarlySend = false
hackMessageChain = false
hackOfflinePlayersUuid = true
# 重要!複製 Velocity 的 secret
secret = "ymQ8CZfTMx8z" # 從 Velocity 的 forwarding.secret 複製

View 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:25555" # 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:

View File

@@ -0,0 +1,111 @@
# Config version. Do not change this
config-version = "1.0"
# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577.
bind = "0.0.0.0:25577"
# What should be the MOTD? This gets displayed when the player adds your server to
# their server list. Legacy color codes and JSON are accepted.
motd = "&#09add3A Velocity Server"
# What should we display for the maximum number of players? (Velocity does not support a cap
# on the number of players online.)
show-max-players = 500
# Should we authenticate players with Mojang? By default, this is on.
online-mode = true
# If client's ISP/AS sent from this proxy is different from the one from Mojang's
# authentication server, the player is kicked. This disallows some VPN and proxy
# connections but is a weak form of protection.
prevent-client-proxy-connections = false
# Should we forward IP addresses and other data to backend servers?
# Available options:
# - "none": No forwarding will be done. All players will appear to be connecting
# from the proxy and will have offline-mode UUIDs.
# - "legacy": Forward player IPs and UUIDs in a BungeeCord-compatible format. Use this
# if you run servers using Minecraft 1.12 or lower.
# - "bungeeguard": Forward player IPs and UUIDs in a format supported by the BungeeGuard
# plugin. Use this if you run servers using Minecraft 1.12 or lower, and are
# unable to implement network level firewalling (on a shared host).
# - "modern": Forward player IPs and UUIDs as part of the login process using
# Velocity's native forwarding. Only applicable for Minecraft 1.13 or higher.
player-info-forwarding-mode = "NONE"
# If you are using modern or BungeeGuard IP forwarding, configure a unique secret here.
forwarding-secret = "j8obT9lp7Dys"
# Announce whether or not your server supports Forge. If you run a modded server, we
# suggest turning this on.
#
# If your network runs one modpack consistently, consider using ping-passthrough = "mods"
# instead for a nicer display in the server list.
announce-forge = false
# If enabled (default is false) and the proxy is in online mode, Velocity will kick
# any existing player who is online if a duplicate connection attempt is made.
kick-existing-players = false
# Should Velocity pass server list ping requests to a backend server?
# Available options:
# - "disabled": No pass-through will be done. The velocity.toml and server-icon.png
# will determine the initial server list ping response.
# - "mods": Passes only the mod list from your backend server into the response.
# The first server in your try list (or forced host) with a mod list will be
# used. If no backend servers can be contacted, Velocity won't display any
# mod information.
# - "description": Uses the description and mod list from the backend server. The first
# server in the try (or forced host) list that responds is used for the
# description and mod list.
# - "all": Uses the backend server's response as the proxy response. The Velocity
# configuration is used if no servers could be contacted.
ping-passthrough = "DISABLED"
[servers]
# Configure your servers here. Each key represents the server's name, and the value
# represents the IP address of the server to connect to.
lobby = "127.0.0.1:30066"
factions = "127.0.0.1:30067"
minigames = "127.0.0.1:30068"
# In what order we should try servers when a player logs in or is kicked from a server.
try = ["lobby"]
[forced-hosts]
# Configure your forced hosts here.
"lobby.example.com" = ["lobby"]
"factions.example.com" = ["factions"]
"minigames.example.com" = ["minigames"]
[advanced]
# How large a Minecraft packet has to be before we compress it. Setting this to zero will
# compress all packets, and setting it to -1 will disable compression entirely.
compression-threshold = 256
# How much compression should be done (from 0-9). The default is -1, which uses the
# default level of 6.
compression-level = -1
# How fast (in milliseconds) are clients allowed to connect after the last connection? By
# default, this is three seconds. Disable this by setting this to 0.
login-ratelimit = 3000
# Specify a custom timeout for connection timeouts here. The default is five seconds.
connection-timeout = 5000
# Specify a read timeout for connections here. The default is 30 seconds.
read-timeout = 30000
# Enables compatibility with HAProxy's PROXY protocol. If you don't know what this is for, then
# don't enable it.
haproxy-protocol = false
# Enables TCP fast open support on the proxy. Requires the proxy to run on Linux.
tcp-fast-open = false
# Enables BungeeCord plugin messaging channel support on Velocity.
bungee-plugin-message-channel = true
# Shows ping requests to the proxy from clients.
show-ping-requests = false
# By default, Velocity will attempt to gracefully handle situations where the user unexpectedly
# loses connection to the server without an explicit disconnect message by attempting to fall the
# user back, except in the case of read timeouts. BungeeCord will disconnect the user instead. You
# can disable this setting to use the BungeeCord behavior.
failover-on-unexpected-server-disconnect = true
# Declares the proxy commands to 1.13+ clients.
announce-proxy-commands = true
# Enables the logging of commands
log-command-executions = false
[query]
# Whether to enable responding to GameSpy 4 query responses or not.
enabled = false
# If query is enabled, on what port should the query protocol listen on?
port = 25577
# This is the map name that is reported to the query services.
map = "Velocity"
show-plugins = false

View File

@@ -0,0 +1,67 @@
# Velocity 配置檔
# 啟動容器後會自動生成在 /docker/minecraft/velocity/velocity.toml
# Config version. Do not change this
config-version = "2.7"
# 綁定地址和端口
bind = "0.0.0.0:25555"
# 伺服器列表 MOTD
motd = "<gradient:#09add3:#d33682>Karylab Minecraft Network</gradient>"
# 最大顯示玩家數
show-max-players = 100
# 正版驗證
online-mode = false
# 防止透過代理/VPN連線 (會踢掉使用VPN的玩家建議關閉)
prevent-client-proxy-connections = false
# 如果有相同玩家嘗試重複登入,是否踢掉已在線的玩家
kick-existing-players = true
# 啟用 modern forwarding (讓後端伺服器知道玩家真實IP)
player-info-forwarding-mode = "modern"
# 是否宣告伺服器支援 Forge 模組 (原版伺服器設為 false)
announce-forge = false
# 伺服器列表 Ping 穿透設定 (當玩家在 Minecraft 多人遊戲列表看到伺服器時,顯示的資訊從哪來)
ping-passthrough = "DISABLED"
# 轉發密鑰檔案
forwarding-secret-file = "forwarding.secret"
# 後端伺服器列表
[servers]
parkour-spiral = "127.0.0.1:1110"
parkour-volcano = "127.0.0.1:1120"
# 玩家登入時的伺服器嘗試順序(空陣列 = 禁止直接用 IP 連線,必須用域名)
try = []
# 強制主機域名路由(關鍵!)
[forced-hosts]
"parkour-spiral.karylab.uk" = ["parkour-spiral"]
"parkour-volcano.karylab.uk" = ["parkour-volcano"]
[advanced]
# 壓縮閾值
compression-threshold = 256
compression-level = -1
login-ratelimit = 3000
# 連線超時設定(毫秒)
connection-timeout = 5000
read-timeout = 30000
# 向 1.13+ 客戶端宣告代理指令
announce-proxy-commands = false
# 記錄指令執行(除錯用,平時關閉)
log-command-executions = false
# 是否在日誌記錄玩家 IP
enable-player-address-logging = true

View File

@@ -0,0 +1,166 @@
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" # 管理介面
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" # 訪問即可看到所有容器日誌
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- minecraft_net
deploy:
resources:
limits:
memory: 256M
# 4. GoEdge 管理後台 + API 節點 + MySQL
# 官方建議使用 goedgelabs/goedge-admin 映像,內建 MariaDB
goedge-admin:
image: goedgelabs/goedge-admin:latest
container_name: goedge_admin
restart: unless-stopped
environment:
- TZ=Asia/Taipei
volumes:
- goedge_admin_mysql:/var/lib/mysql # MySQL 資料庫
- goedge_admin_data:/usr/local/goedge/edge-admin # Admin 設定 + 日誌 + API 設定
ports:
- "8030:7788" # 管理後台登入端口 (預設 admin/123456)
networks:
- minecraft_net
# 5. GoEdge 邊緣節點 (實際負責轉發的 Proxy)
goedge-node:
image: goedgelabs/goedge-node:latest
container_name: goedge_node
restart: unless-stopped
environment:
- TZ=Asia/Taipei
volumes:
- goedge_node_data:/usr/local/goedge/edge-node
ports:
- "1110-1200:1110-1200" # 預留 1110 到 1200 之間的 90 個端口
networks:
- minecraft_net
depends_on:
- goedge-admin
# 6. 備份服務 (可選) - 自動備份到雲端或其他位置
# 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
# 7. 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:
goedge_admin_mysql: # MySQL 資料庫(單獨備份用)
goedge_admin_data: # Admin 所有資料(設定 + 日誌 + API
goedge_node_data: # Node 所有資料(設定 + 日誌)