update minecraft compose file and some specific config

This commit is contained in:
m1ngsama 2025-11-12 15:33:22 +08:00
parent dcb32e6b91
commit 2207914289
7 changed files with 216 additions and 13 deletions

12
minecraft/.env Normal file
View file

@ -0,0 +1,12 @@
# .env 文件:用于存储敏感或可变配置,避免硬编码到 YAML 中。
# 用户需自行修改以下值,并确保文件权限安全(例如 chmod 600 .env
# 用户权限(避免容器文件权限问题,替换为您的主机用户 UID/GID使用命令 'id' 查询)
UID=1000
GID=1000
# RCON 密码(远程控制密码,必须复杂且安全;原配置中已移除具体值)
RCON_PASSWORD=your_rcon_password_here
# 时区(根据服务器位置调整,例如 Asia/Shanghai 为中国标准时间)
TZ=Asia/Shanghai

15
minecraft/README.md Normal file
View file

@ -0,0 +1,15 @@
# Automa Minecraft
```
mc-fabric-docker/
├── docker-compose.yml
├── .env # 必改UID、GID、RCON_PASSWORD、TZ
├── mods/ # 放你的所有 mods jar
├── configs/
│ ├── server.properties # 服务器配置
│ ├── whitelist.json # 白名单(示例)
│ └── ops.json # OP示例
├── data/ # 自动生成:世界、备份、日志
└── extras/
└── mods.txt # 可选Modrinth 自动下载模组
```

View file

@ -1,13 +0,0 @@
services:
mc:
image: itzg/minecraft-server:latest
pull_policy: daily
tty: true
stdin_open: true
ports:
- "25565:25565"
environment:
EULA: "TRUE"
volumes:
# attach the relative directory 'data' to the container's /data path
- ./data:/data

View file

@ -0,0 +1,70 @@
# server.properties 文件Minecraft 服务器核心配置。
# 此文件通过卷挂载到容器中,优先覆盖环境变量设置。
# 所有值均为示例,用户可根据需求修改。
# 注意:移除原 rcon.password 值,使用 .env 中的 RCON_PASSWORD 动态注入。
#Minecraft server properties
# 生成时间示例(自动更新,无需修改)
#Tue Nov 04 17:06:20 CST 2025
accepts-transfers=false # 是否允许玩家从其他服务器传输(默认 false
allow-flight=false # 是否允许飞行false 防止作弊)
allow-nether=true # 是否启用下界true 为标准生存)
broadcast-console-to-ops=true # 是否向 OP 广播控制台消息
broadcast-rcon-to-ops=true # 是否向 OP 广播 RCON 消息
bug-report-link= # 错误报告链接(留空或填自定义)
difficulty=normal # 难度peaceful/easy/normal/hardnormal 为标准)
enable-command-block=false # 是否启用命令方块false 防止滥用)
enable-jmx-monitoring=false # 是否启用 JMX 监控(用于高级调试)
enable-query=false # 是否启用查询端口(用于外部工具查询服务器状态)
enable-rcon=true # 是否启用 RCONtrue与 .env 中的密码结合使用)
enable-status=true # 是否启用服务器状态查询
enforce-secure-profile=true # 是否强制安全配置文件(正版验证相关)
enforce-whitelist=false # 是否强制白名单false未启用如需启用设为 true 并配置 whitelist.json
entity-broadcast-range-percentage=100 # 实体广播范围百分比100 为默认)
force-gamemode=false # 是否强制游戏模式
function-permission-level=2 # 函数权限级别2 为标准)
gamemode=survival # 默认游戏模式survival/creative/adventure/spectator
generate-structures=true # 是否生成结构(如村庄)
generator-settings={} # 生成器设置JSON留空为默认
hardcore=false # 是否硬核模式(死亡后封号)
hide-online-players=false # 是否隐藏在线玩家列表
initial-disabled-packs= # 初始禁用数据包
initial-enabled-packs=vanilla,fabric,easyauth,fabric-convention-tags-v2,server_translations_api # 初始启用数据包(基于 Fabric 和模组)
level-name=world # 世界名称world 为默认文件夹)
level-seed= # 世界种子(留空为随机)
level-type=minecraft\:normal # 世界类型normal 为标准)
log-ips=true # 是否记录玩家 IPtrue 为安全审计)
max-chained-neighbor-updates=1000000 # 最大链式邻居更新(防止滞后)
max-players=20 # 最大玩家数(原为 114514改为通用示例 20根据服务器资源调整
max-tick-time=60000 # 最大 tick 时间(毫秒,超时重启)
max-world-size=29999984 # 最大世界大小
motd=A Minecraft Server # 服务器欢迎消息(改为通用示例,原为个人化;支持颜色代码如 §6
network-compression-threshold=256 # 网络压缩阈值
online-mode=false # 是否正版验证false 允许盗版客户端连接)
op-permission-level=4 # OP 权限级别4 为最高)
player-idle-timeout=0 # 玩家空闲超时0 为无限)
prevent-proxy-connections=false # 是否防止代理连接
pvp=true # 是否启用 PVP
query.port=25565 # 查询端口(与服务器端口一致)
rate-limit=0 # 速率限制0 为无)
rcon.password= # RCON 密码(留空,使用 .env 中的值动态注入;原已移除)
rcon.port=25575 # RCON 端口
region-file-compression=deflate # 区域文件压缩deflate 为标准)
require-resource-pack=false # 是否要求资源包
resource-pack= # 资源包 URL
resource-pack-id= # 资源包 ID
resource-pack-prompt= # 资源包提示
resource-pack-sha1= # 资源包 SHA1
server-ip= # 服务器 IP留空为所有接口
server-port=25565 # 服务器端口
simulation-distance=10 # 模拟距离(影响性能)
spawn-animals=true # 是否生成动物
spawn-monsters=true # 是否生成怪物
spawn-npcs=true # 是否生成 NPC
spawn-protection=16 # 生成保护半径(新手保护)
sync-chunk-writes=true # 是否同步区块写入(防止数据丢失)
text-filtering-config= # 文本过滤配置
use-native-transport=true # 是否使用本地传输(优化性能)
view-distance=10 # 视图距离(影响性能)
white-list=false # 是否启用白名单false未启用如需启用设为 true

View file

@ -0,0 +1,17 @@
[
// whitelist.json JSON
// uuid name
//
// UUID mcuuid.net
//
//
{
"uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "example_player1"
},
{
"uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "example_player2"
}
//
]

View file

@ -0,0 +1,66 @@
# docker-compose.yml 文件Docker Compose 配置,用于启动 Minecraft Fabric 服务器容器。
# 版本3.8(兼容大多数 Docker 版本)。
# 此文件已去敏,所有敏感数据移到 .env 或 configs 中。
# 运行命令docker compose up -d后台启动
version: "3.8"
services:
minecraft: # 服务名称(可自定义)
image: itzg/minecraft-server:latest # 使用镜像itzg/minecraft-server支持 Fabric 和自动模组管理)
container_name: mc-fabric-1.21.1 # 容器名称(便于 docker ps 查看)
ports:
- "25565:25565/tcp" # Minecraft 主端口TCP客户端连接
- "25565:25565/udp" # 查询端口UDP服务器列表查询
- "25575:25575/tcp" # RCON 端口TCP远程控制与 server.properties 一致)
environment: # 环境变量:用于动态配置服务器参数
UID: "${UID}" # 从 .env 加载主机用户 UID避免权限问题
GID: "${GID}" # 从 .env 加载主机用户 GID
EULA: "TRUE" # 同意 Minecraft EULA必须为 TRUE否则启动失败
TYPE: "FABRIC" # 服务器类型FABRIC支持模组加载器
VERSION: "1.21.1" # Minecraft 版本(固定为 1.21.1
FABRIC_VERSION: "latest" # Fabric 加载器版本latest 为自动最新)
MEMORY: "4G" # 最大内存分配4G 为示例,根据主机 RAM 调整;模组多建议 4G+
INIT_MEMORY: "2G" # 初始内存分配2G 为示例)
# 服务器核心设置(可覆盖 server.properties 中的值)
ONLINE_MODE: "false" # 正版验证false 允许非正版客户端;生产环境建议 true 以防安全风险)
ENABLE_RCON: "true" # 启用 RCONtrue与 .env 密码结合)
RCON_PASSWORD: "${RCON_PASSWORD}" # RCON 密码(从 .env 加载,用户自行设置)
RCON_PORT: 25575 # RCON 端口(与 server.properties 一致)
DIFFICULTY: "normal" # 难度normal 为默认)
GAMEMODE: "survival" # 游戏模式survival 为生存)
MAX_PLAYERS: 20 # 最大玩家数(改为通用示例,原为特定值;根据资源调整)
MOTD: "A Minecraft Server" # 欢迎消息(改为通用示例,支持颜色代码)
VIEW_DISTANCE: 10 # 视图距离10 为平衡性能)
SIMULATION_DISTANCE: 10 # 模拟距离10 为平衡)
SPAWN_PROTECTION: 16 # 生成保护16 为默认)
PVP: "true" # 启用 PVPtrue
WHITE_LIST: "false" # 启用白名单false如需启用设为 true 并配置 whitelist.json
ENFORCE_WHITELIST: "false" # 强制白名单false
# 其他优化设置
TZ: "${TZ}" # 时区(从 .env 加载)
REMOVE_OLD_MODS: "true" # 自动移除旧模组true保持 mods 干净)
# 可选:模组自动下载(如果不挂载 mods/ 目录,取消注释启用)
# MODRINTH_PROJECTS: "@/extras/mods.txt" # 从 mods.txt 加载 Modrinth slugs
# MODRINTH_DOWNLOAD_DEPENDENCIES: "required" # 只下载必需依赖
volumes: # 卷挂载:持久化数据和自定义文件
- ./data:/data # 持久化世界、backups、logs 等(重要,防止数据丢失)
- ./mods:/data/mods # 挂载用户 mods jar从原服务器复制
- ./configs/server.properties:/data/server.properties:ro # 挂载自定义 server.propertiesro 为只读,防止容器修改)
- ./configs/whitelist.json:/data/whitelist.json:ro # 挂载自定义白名单
- ./configs/ops.json:/data/ops.json:ro # 挂载自定义 OP
# 可选:挂载其他目录(根据需要取消注释)
# - ./data/backups:/data/backups # 备份目录
# - ./configs/EasyAuth:/data/EasyAuth:ro # EasyAuth 配置(如果有)
# - ./extras:/extras:ro # mods.txt 目录(如果启用自动下载)
restart: unless-stopped # 重启策略:除非手动停止,否则自动重启(提升可用性)
stdin_open: true # 启用 stdin便于 attach 容器)
tty: true # 启用 tty便于交互调试
logging: # 日志配置(防止日志文件过大)
driver: "json-file" # 日志驱动json-file 为 Docker 默认)
options:
max-size: "10m" # 单个日志文件最大大小10m 为示例)
max-file: "3" # 最大日志文件数3 个轮换)

36
minecraft/extras/mods.txt Normal file
View file

@ -0,0 +1,36 @@
# mods.txt 文件:用于 Modrinth 自动下载模组的 slugs 列表。
# 每行一个 slug从 Modrinth 网站获取),镜像会自动下载最新 1.21.1 兼容版本。
# 如果您有现有 jar 文件,优先挂载 mods/ 目录;否则启用此文件。
# 基于原 mods 列表推断,聚焦性能、兼容和实用模组。
# 核心 API 和加载器
fabric-api
# 性能优化模组(减少延迟、提升 TPS
sodium
iris
lithium
krypton
architectury
# 地毯模组(调试和服务器优化)
carpet
carpet-extra
# 版本兼容模组(允许旧版客户端连接)
viafabric
viaversion
viabackwards
# 地图模组(小地图和世界地图)
xaeros-minimap
xaeros-world-map
# 其他实用模组(地图渲染、备份、认证等)
bluemap
ftbbackups2
easyauth
no-chat-reports
polylib
energy
minimotd # 假设为 minimotd 的 slug请在 Modrinth 确认