Update mc-server & Add docker registry

This commit is contained in:
ChenKaiLiuG
2026-01-01 18:05:00 +08:00
parent 55bf89d276
commit f3fe55ef67
7 changed files with 359 additions and 19 deletions

View File

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

View File

@@ -10,7 +10,7 @@ services:
- TZ=Asia/Taipei
ports:
- "8000:8443" # 管理介面
- "1110:11100" # Minecraft Velocity 代理
- "1110:25555" # Velocity 代理端口
volumes:
- /docker/minecraft/crafty/backups:/crafty/backups
- /docker/minecraft/crafty/logs:/crafty/logs
@@ -68,7 +68,7 @@ services:
reservations:
memory: 256M
# 3. 即時日誌瀏覽器 (Dozzle) - 非常推薦,看報錯超方便
# 3. 即時日誌瀏覽器 (Dozzle) - 看報錯用
dozzle:
image: amir20/dozzle:latest
container_name: dozzle_minecraft

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

@@ -1,11 +1,11 @@
# Velocity 配置檔範例
# Velocity 配置檔
# 啟動容器後會自動生成在 /docker/minecraft/velocity/velocity.toml
# Config version. Do not change this
config-version = "2.7"
# 綁定地址和端口
bind = "0.0.0.0:11100"
bind = "0.0.0.0:25555"
# 伺服器列表 MOTD
motd = "<gradient:#09add3:#d33682>Karylab Minecraft Network</gradient>"
@@ -22,16 +22,6 @@ prevent-client-proxy-connections = false
# 如果有相同玩家嘗試重複登入,是否踢掉已在線的玩家
kick-existing-players = true
# 後端伺服器列表
[servers]
parkour-spiral = "127.0.0.1:1110"
parkour-volcano = "127.0.0.1:1120"
# 強制主機域名路由(關鍵!)
[forced-hosts]
"parkour-spiral.karylab.uk" = ["parkour-spiral"]
"parkour-volcano.karylab.uk" = ["parkour-volcano"]
# 啟用 modern forwarding (讓後端伺服器知道玩家真實IP)
player-info-forwarding-mode = "modern"
@@ -44,11 +34,34 @@ 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

@@ -10,7 +10,6 @@ services:
- TZ=Asia/Taipei
ports:
- "8000:8443" # 管理介面
- "1110:11100" # Minecraft 統一連接埠
volumes:
- /docker/minecraft/crafty/backups:/crafty/backups
- /docker/minecraft/crafty/logs:/crafty/logs
@@ -79,7 +78,7 @@ services:
- DOZZLE_TAILSIZE=500 # 日誌顯示行數
- DOZZLE_FILTER=name=crafty*|name=minecraft* # 只顯示 MC 相關容器
ports:
- "8020:8080" # 訪問 http://localhost:8020 即可看到所有容器日誌
- "8020:8080" # 訪問即可看到所有容器日誌
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
@@ -89,7 +88,39 @@ services:
limits:
memory: 256M
# 4. 備份服務 (可選) - 自動備份到雲端或其他位置
# 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
@@ -107,7 +138,7 @@ services:
# networks:
# - minecraft_net
# 5. Watchtower - 自動更新容器映像檔(可選)
# 7. Watchtower - 自動更新容器映像檔(可選)
# watchtower:
# image: containrrr/watchtower:latest
# container_name: watchtower_minecraft
@@ -129,4 +160,7 @@ networks:
volumes:
netdataconfig:
netdatalib:
netdatacache:
netdatacache:
goedge_admin_mysql: # MySQL 資料庫(單獨備份用)
goedge_admin_data: # Admin 所有資料(設定 + 日誌 + API
goedge_node_data: # Node 所有資料(設定 + 日誌)