新增说明文件;新增kiwix-serve、papermc示例;更新README.md文件

This commit is contained in:
huty 2023-12-13 15:59:22 +08:00 committed by huty
parent 37583b00df
commit 579a448fca
90 changed files with 1922 additions and 2 deletions

170
README.md
View File

@ -1,3 +1,169 @@
# dockerfile
# Dockerfile 示例
dockerfile说明及示例
## Kiwix Server
ZIM 资源阅读器,可在线预览 ZIM 文档。运行 Kiwix Server 服务后即可通过浏览器访问 ZIM 文件。
**官方网站:**
- 官网 https://kiwix.org
- ZIM 文件下载地址 https://download.kiwix.org/zim
**目录说明:**
- standard 标准镜像构建目录
- alpine 精简镜像构建目录
- example 使用示例
**构建说明:**
1. 进入指定目录standard 或 alpine
2. 构建镜像
``` bash
docker build --no-cache -t 镜像名称:镜像TAG .
```
示例:
- 标准镜像(基于 openSUSE 15.5
``` bash
docker build --no-cache -t hty1024/kiwix-serve:3.5.0 .
```
- 精简镜像(基于 AlpineLinux 3.18.2
``` bash
docker build --no-cache -t hty1024/kiwix-serve:3.5.0-alpine .
```
**使用方式:**
1. 下载 ZIM 文件至主机
2. 配置 ZIM 文件所属用户
将 ZIM 文件所属用户组及用户均修改为 `1024`,示例如下:
``` bash
chown -R 1024.1024 ./data
```
3. 运行 Docker 容器
- 直接运行
``` bash
docker run --name 容器名称 -dit -p 服务端口号:10080 -v ZIM文件目录:/data 镜像名称:镜像TAG
```
    示例:
```bash
docker run --name kiwix-serve -dit -p 10080:10080 -v ./data:/data hty1024/kiwix-serve:3.5.0
```
``` bash
docker run --name kiwix-serve -dit -p 10080:10080 -v ./data:/data hty1024/kiwix-serve:3.5.0-alpine
```
- Docker Compose 方式运行
请参考 example 目录内的 compose.yaml 文件
<br/>
## PaperMC Paper
Paper是基于Spigot的Minecraft游戏服务器旨在大大提高性能并提供更高级的功能和API。
**官方网站:**
- 官网 https://papermc.io
- 官网 https://papermc.io/software/paper
- 官方文档 https://docs.papermc.io
- 官网文档 https://docs.papermc.io/paper
**目录说明:**
- alpine 精简镜像构建目录
- example 使用示例
**构建说明:**
1. 进入指定目录alpine
2. 构建镜像
``` bash
docker build --no-cache -t 镜像名称:镜像TAG .
```
示例:
- 精简镜像(基于 Amazon Corretto 17.0.8
``` bash
docker build --no-cache -t hty1024/papermc/paper:1.20.1-134-alpine .
```
**使用方式:**
1. 创建相关目录(用于持久化相关数据)
创建 `world`、`world_nether`、`world_the_end`、`config`、`plugins`、`logs` 目录,示例如下:
``` bash
mkdir -pv {world,world_nether,world_the_end,config,plugins,logs}
```
2. 下载并按需修改配置文件 `server.properties`、`paper-global.yml`、`paper-world-defaults.yml` (文件见 `example` 目录)
具体选项参考官方文档
3. 阅读授权并修改 `eula.txt` 文件中 `eula` 的值为 `true`
4. 配置相关文件的所属用户
将目录的所属用户组及用户均修改为 `1024`:
``` bash
chown -R 1024.1024 world world_nether world_the_end config plugins logs server.properties eula.txt
```
5. 运行容器前的目录结构示例如下
``` bash
drwxr-xr-x 2 1024 1024 6 Aug 21 15:00 config
-rw-r--r-- 1 1024 1024 157 Aug 21 13:18 eula.txt
drwxr-xr-x 2 1024 1024 6 Aug 21 15:00 logs
drwxr-xr-x 2 1024 1024 6 Aug 21 15:00 plugins
-rw-r--r-- 1 1024 1024 1285 Aug 21 14:23 server.properties
drwxr-xr-x 2 1024 1024 23 Aug 21 15:03 world
drwxr-xr-x 2 1024 1024 23 Aug 21 15:03 world_nether
drwxr-xr-x 2 1024 1024 23 Aug 21 15:03 world_the_end
```
- `world` Overworld目录
- `world_nether` Nether目录
- `world_the_end` End目录
- `config` 配置文件目录
- `server.properties` 服务端配置文件
- `eula.txt` 授权校验文件
- `plugins` 插件目录
- `logs` 日志目录
6. 运行 Docker 容器
- 直接运行
``` bash
docker run --name 容器名称 -dit -p 服务端口号:25565 -v world目录:/opt/papermc/world -v world_nether目录:/opt/papermc/world_nether -v world_the_end目录:/opt/papermc/world_the_end -v config目录:/opt/papermc/config -v plugins目录:/opt/papermc/plugins -v logs目录:/opt/papermc/logs 镜像名称:镜像TAG
```
示例:
```bash
docker run --name papermc-server -dit -p 25565:25565 -v ./world:/opt/papermc/world -v ./world_nether:/opt/papermc/world_nether -v ./world_the_end:/opt/papermc/world_the_end -v ./config:/opt/papermc/config -v ./plugins:/opt/papermc/plugins -v ./logs:/opt/papermc/logs hty1024/papermc/paper:1.20.1-134-alpine
```
- Docker Compose 方式运行
请参考 example 目录内的 compose.yaml 文件

55
description/dockerfile Normal file
View File

@ -0,0 +1,55 @@
# 配置参数(指定基础镜像版本)
ARG BASE_NAME=${BASE_NAME} \
BASE_TAG=${BASE_TAG}
# 基于基础镜像构建
FROM $BASE_NAME:$BASE_TAG
# 指定自定义标签
LABEL ${KEY1}=${VALUE1} ${KEY2}=${VALUE2} ${KEY3}=${VALUE3}
# 指定默认挂载的目录
VOLUME [${CONTAINER_DIR1},${CONTAINER_DIR2},${CONTAINER_DIR3}]
# 指定端口号
EXPOSE ${PORT1} ${PORT2} ${PORT3}
# 配置参数
ARG ${ARG1_NAME}=${ARG1_VALUE} \
${ARG2_NAME}=${ARG2_VALUE} \
${ARG3_NAME}=${ARG3_VALUE}
# 配置环境变量
ENV ${ENV1_NAME}=${ENV1_VALUE} \
${ENV2_NAME}=${ENV2_VALUE} \
${ENV3_NAME}=${ENV3_VALUE}
# 运行命令
RUN ${COMMAND1} && \
${COMMAND2} && \
${COMMAND3}
# 复制文件(仅复制)
COPY ${HOST_FILE1_NAME} ${CONTAINER_FILE1_PATH_AND_NAME}
COPY ${HOST_FILE2_NAME} ${CONTAINER_FILE2_PATH_AND_NAME}
COPY ${HOST_FILE3_NAME} ${CONTAINER_FILE3_PATH_AND_NAME}
# 复制文件(自动解压 tar、zip、xz 等压缩文件)
ADD ${HOST_FILE1_NAME} ${CONTAINER_FILE1_PATH_AND_NAME}
ADD ${HOST_FILE2_NAME} ${CONTAINER_FILE2_PATH_AND_NAME}
ADD ${HOST_FILE3_NAME} ${CONTAINER_FILE3_PATH_AND_NAME}
# 设置工作目录
WORKDIR ${CONTAINER_DIR}
# 设置启动用户
USER ${GROUP_NAME}:${USER_NAME}
# 设置监控检查
HEALTHCHECK ${HEALTHCHECK}
# 设置执行启动脚本( docker run 时不可覆盖)
ENTRYPOINT [${EXEC_FILE},${ARG1},${ARG2}]
# 设置执行启动脚本( docker run 时可以覆盖)
CMD [${EXEC_FILE},${ARG1},${ARG2}]

View File

@ -0,0 +1,52 @@
# 配置参数(指定基础镜像版本)
ARG BASE_TAG=3.18.2
# 基于 AlpineLinux 构建
FROM alpine:$BASE_TAG
# 指定端口号
EXPOSE 10080
# 配置参数
ARG GROUP_ID=1024 \
GROUP_NAME=kiwix \
USER_ID=1024 \
USER_NAME=kiwix \
USER_HOME=/home/kiwix \
USER_SHELL=/bin/bash
# 更新应用并安装基础应用
RUN set -ex && \
apk add tzdata && \
apk add --no-cache bash bash-doc bash-completion curl
# 设置时区、新建用户组及用户、配置目录权限
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
addgroup $GROUP_NAME -g $GROUP_ID && \
adduser $USER_NAME -G $GROUP_NAME -h $USER_HOME -s $USER_SHELL -u $USER_ID -D && \
mkdir -pv $USER_HOME && \
chown -R $GROUP_NAME.$USER_NAME $USER_HOME
# 配置环境变量
ARG KIWIX_SERVE_VERSION=3.5.0
ENV KIWIX_HOME=/opt/kiwix-serve/$KIWIX_SERVE_VERSION \
KIWIX_ZIM_FILE_DIR=/data
# 安装 Kiwix Server
COPY kiwix-serve $KIWIX_HOME/kiwix-serve
COPY entrypoint.sh $KIWIX_HOME/entrypoint.sh
RUN mkdir -pv $KIWIX_ZIM_FILE_DIR && \
chown -R $GROUP_NAME.$USER_NAME $KIWIX_HOME $KIWIX_ZIM_FILE_DIR && \
chmod -R 755 $KIWIX_HOME $KIWIX_ZIM_FILE_DIR
# 健康检查
HEALTHCHECK --interval=10s --timeout=3s CMD curl -f http://127.0.0.1:10080 || exit 1
# 设置工作目录
WORKDIR $KIWIX_HOME
# 设置启动用户
USER $GROUP_NAME:$USER_NAME
# 设置执行启动脚本
CMD ["/bin/bash","-c","./entrypoint.sh"]

View File

@ -0,0 +1,10 @@
#!/bin/bash
echo '===================================================================================================='
echo `date +%Y-%m-%d` `date +%H:%M:%S`
echo '============================== 开始启动 Kiwix Serve...... =============================='
echo 'Kiwix Serve 工作目录:' $KIWIX_HOME
echo 'Kiwix Serve 监听端口10080'
echo 'ZIM 文件目录:' $KIWIX_ZIM_FILE_DIR
echo '----------------------------------------------------------------------------------------------------'
$KIWIX_HOME/kiwix-serve -p 10080 $KIWIX_ZIM_FILE_DIR/*.zim

Binary file not shown.

View File

@ -0,0 +1,20 @@
version: "3.9"
services:
kiwix-serve:
# image: hty1024/kiwix-serve:3.5.0-2
image: hty1024/kiwix-serve:3.5.0-2-alpine
container_name: kiwix-serve
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
- ./data:/data
ports:
- "10080:10080"
networks:
- app_network
networks:
app_network:
external: true
name: app_network

View File

@ -0,0 +1,54 @@
# 配置参数(指定基础镜像版本)
ARG BASE_TAG=15.5
# 基于 openSUSE 构建
FROM opensuse/leap:$BASE_TAG
# 指定端口号
EXPOSE 10080
# 配置参数
ARG GROUP_ID=1024 \
GROUP_NAME=kiwix \
USER_ID=1024 \
USER_NAME=kiwix \
USER_HOME=/home/kiwix \
USER_SHELL=/bin/bash
# 更新应用并安装基础应用、清除 zypper 缓存
RUN set -ex && \
zypper refresh && \
zypper update -y && \
zypper install -y curl && \
zypper clean
# 设置时区、新建用户组及用户、配置目录权限
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
groupadd $GROUP_NAME -g $GROUP_ID && \
useradd $USER_NAME -g $GROUP_ID -d $USER_HOME -s $USER_SHELL -u $USER_ID && \
mkdir -pv $USER_HOME && \
chown -R $GROUP_NAME.$USER_NAME $USER_HOME
# 配置环境变量
ARG KIWIX_SERVE_VERSION=3.5.0
ENV KIWIX_HOME=/opt/kiwix-serve/$KIWIX_SERVE_VERSION \
KIWIX_ZIM_FILE_DIR=/data
# 安装 Kiwix Server
COPY kiwix-serve $KIWIX_HOME/kiwix-serve
COPY entrypoint.sh $KIWIX_HOME/entrypoint.sh
RUN mkdir -pv $KIWIX_ZIM_FILE_DIR && \
chown -R $GROUP_NAME.$USER_NAME $KIWIX_HOME $KIWIX_ZIM_FILE_DIR && \
chmod -R 755 $KIWIX_HOME $KIWIX_ZIM_FILE_DIR
# 健康检查
HEALTHCHECK --interval=10s --timeout=3s CMD curl -f http://127.0.0.1:10080 || exit 1
# 设置工作目录
WORKDIR $KIWIX_HOME
# 设置启动用户
USER $GROUP_NAME:$USER_NAME
# 设置执行启动脚本
CMD ["/bin/bash","-c","./entrypoint.sh"]

View File

@ -0,0 +1,10 @@
#!/bin/bash
echo '===================================================================================================='
echo `date +%Y-%m-%d` `date +%H:%M:%S`
echo '============================== 开始启动 Kiwix Serve...... =============================='
echo 'Kiwix Serve 工作目录:' $KIWIX_HOME
echo 'Kiwix Serve 监听端口10080'
echo 'ZIM 文件目录:' $KIWIX_ZIM_FILE_DIR
echo '----------------------------------------------------------------------------------------------------'
$KIWIX_HOME/kiwix-serve -p 10080 $KIWIX_ZIM_FILE_DIR/*.zim

Binary file not shown.

View File

@ -0,0 +1,60 @@
# 配置参数(指定基础镜像版本)
ARG BASE_TAG=17.0.8-alpine3.18
# 基于 Amazon Corretto 构建
FROM amazoncorretto:$BASE_TAG
# 指定端口号
EXPOSE 25565 25575
# 配置参数
ARG GROUP_ID=1024 \
GROUP_NAME=papermc \
USER_ID=1024 \
USER_NAME=papermc \
USER_HOME=/home/papermc \
USER_SHELL=/bin/bash
# 更新应用并安装基础应用
RUN set -ex && \
apk add tzdata && \
apk add --no-cache bash bash-doc bash-completion
# 设置时区、新建用户组及用户、配置目录权限
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
addgroup $GROUP_NAME -g $GROUP_ID && \
adduser $USER_NAME -G $GROUP_NAME -h $USER_HOME -s $USER_SHELL -u $USER_ID -D && \
mkdir -pv $USER_HOME && \
chown -R $GROUP_NAME.$USER_NAME $USER_HOME
# 配置环境变量
ARG PAPERMC_PAPER_VERSION=1.20.1-134 \
MOJANG_VERSION=1.20.1
ENV PAPERMC_PAPER_VERSION=$PAPERMC_PAPER_VERSION \
MOJANG_VERSION=$MOJANG_VERSION \
PAPERMC_PAPER_HOME=/opt/papermc/paper \
PAPERMC_PAPER_DATA_DIR=/opt/papermc/paper
# 安装 PaperMC Server
COPY paper-$PAPERMC_PAPER_VERSION.jar $PAPERMC_PAPER_HOME/paper-$PAPERMC_PAPER_VERSION.jar
COPY mojang_$MOJANG_VERSION.jar $PAPERMC_PAPER_HOME/cache/mojang_$MOJANG_VERSION.jar
COPY server.properties $PAPERMC_PAPER_HOME/server.properties
COPY paper-global.yml $PAPERMC_PAPER_HOME/config/paper-global.yml
COPY paper-world-defaults.yml $PAPERMC_PAPER_HOME/config/paper-world-defaults.yml
COPY eula.txt $PAPERMC_PAPER_HOME/eula.txt
COPY entrypoint.sh $PAPERMC_PAPER_HOME/entrypoint.sh
RUN mkdir -pv $PAPERMC_PAPER_DATA_DIR && \
chown -R $GROUP_NAME.$USER_NAME $PAPERMC_PAPER_HOME $PAPERMC_PAPER_DATA_DIR && \
chmod -R 755 $PAPERMC_PAPER_HOME $PAPERMC_PAPER_DATA_DIR
# 设置工作目录
WORKDIR $PAPERMC_PAPER_HOME
# 指定默认挂载目录
VOLUME [$PAPERMC_PAPER_HOME/world, $PAPERMC_PAPER_HOME/world_nether, $PAPERMC_PAPER_HOME/world_the_end, $PAPERMC_PAPER_HOME/config, $PAPERMC_PAPER_HOME/plugins, $PAPERMC_PAPER_HOME/logs]
# 设置启动用户
USER $GROUP_NAME:$USER_NAME
# 设置执行启动脚本
CMD ["/bin/bash","-c","./entrypoint.sh"]

View File

@ -0,0 +1,11 @@
#!/bin/bash
echo '===================================================================================================='
echo `date +%Y-%m-%d` `date +%H:%M:%S`
echo '============================== 开始启动 PaperMC Paper...... =============================='
echo 'PaperMC Paper 版本号:' $PAPERMC_PAPER_VERSION
echo 'PaperMC Paper 工作目录:' $PAPERMC_PAPER_HOME
echo 'PaperMC Paper 监听端口25565'
echo '数据文件目录:' $PAPERMC_PAPER_DATA_DIR
echo '----------------------------------------------------------------------------------------------------'
java -Xms2G -Xmx2G -jar $PAPERMC_PAPER_HOME/paper-$PAPERMC_PAPER_VERSION.jar --nogui

View File

@ -0,0 +1,3 @@
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Mon Aug 21 11:07:07 CST 2023
eula=false

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,128 @@
# This is the global configuration file for Paper.
# As you can see, there's a lot to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
#
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
#
# The world configuration options have been moved inside
# their respective world folder. The files are named paper-world.yml
#
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
# Website: https://papermc.io/
_version: 28
block-updates:
disable-noteblock-updates: false
disable-tripwire-updates: false
chunk-loading-advanced:
auto-config-send-distance: true
player-max-concurrent-chunk-generates: 0
player-max-concurrent-chunk-loads: 0
chunk-loading-basic:
player-max-chunk-generate-rate: -1.0
player-max-chunk-load-rate: 100.0
player-max-chunk-send-rate: 75.0
chunk-system:
gen-parallelism: default
io-threads: -1
worker-threads: -1
collisions:
enable-player-collisions: true
send-full-pos-for-hard-colliding-entities: true
commands:
fix-target-selector-tag-completion: true
suggest-player-names-when-null-tab-completions: true
time-command-affects-all-worlds: false
console:
enable-brigadier-completions: true
enable-brigadier-highlighting: true
has-all-permissions: false
item-validation:
book:
author: 8192
page: 16384
title: 8192
book-size:
page-max: 2560
total-multiplier: 0.98
display-name: 8192
lore-line: 8192
resolve-selectors-in-books: false
logging:
deobfuscate-stacktraces: true
log-player-ip-addresses: true
messages:
kick:
authentication-servers-down: <lang:multiplayer.disconnect.authservers_down>
connection-throttle: Connection throttled! Please wait before reconnecting.
flying-player: <lang:multiplayer.disconnect.flying>
flying-vehicle: <lang:multiplayer.disconnect.flying>
no-permission: <red>I'm sorry, but you do not have permission to perform this command.
Please contact the server administrators if you believe that this is in error.
use-display-name-in-quit-message: false
misc:
chat-threads:
chat-executor-core-size: -1
chat-executor-max-size: -1
fix-entity-position-desync: true
lag-compensate-block-breaking: true
load-permissions-yml-before-plugins: true
max-joins-per-tick: 5
region-file-cache-size: 256
strict-advancement-dimension-check: false
use-alternative-luck-formula: false
use-dimension-type-for-custom-spawners: false
packet-limiter:
all-packets:
action: KICK
interval: 7.0
max-packet-rate: 500.0
kick-message: <red><lang:disconnect.exceeded_packet_rate>
overrides:
ServerboundPlaceRecipePacket:
action: DROP
interval: 4.0
max-packet-rate: 5.0
player-auto-save:
max-per-tick: -1
rate: -1
proxies:
bungee-cord:
online-mode: true
proxy-protocol: false
velocity:
enabled: false
online-mode: false
secret: ''
scoreboards:
save-empty-scoreboard-teams: false
track-plugin-scoreboards: false
spam-limiter:
incoming-packet-threshold: 300
recipe-spam-increment: 1
recipe-spam-limit: 20
tab-spam-increment: 1
tab-spam-limit: 500
timings:
enabled: true
hidden-config-entries:
- database
- proxies.velocity.secret
history-interval: 300
history-length: 3600
server-name: Unknown Server
server-name-privacy: false
url: https://timings.aikar.co/
verbose: true
unsupported-settings:
allow-grindstone-overstacking: false
allow-headless-pistons: false
allow-permanent-block-break-exploits: false
allow-piston-duplication: false
compression-format: ZLIB
perform-username-validation: true
watchdog:
early-warning-delay: 10000
early-warning-every: 5000

View File

@ -0,0 +1,290 @@
# This is the world defaults configuration file for Paper.
# As you can see, there's a lot to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
#
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
#
# Configuration options here apply to all worlds, unless you specify overrides inside
# the world-specific config file inside each world folder.
#
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
# Website: https://papermc.io/
_version: 30
anticheat:
anti-xray:
enabled: false
engine-mode: 1
hidden-blocks:
- copper_ore
- deepslate_copper_ore
- gold_ore
- deepslate_gold_ore
- iron_ore
- deepslate_iron_ore
- coal_ore
- deepslate_coal_ore
- lapis_ore
- deepslate_lapis_ore
- mossy_cobblestone
- obsidian
- chest
- diamond_ore
- deepslate_diamond_ore
- redstone_ore
- deepslate_redstone_ore
- clay
- emerald_ore
- deepslate_emerald_ore
- ender_chest
lava-obscures: false
max-block-height: 64
replacement-blocks:
- stone
- oak_planks
- deepslate
update-radius: 2
use-permission: false
obfuscation:
items:
hide-durability: false
hide-itemmeta: false
hide-itemmeta-with-visual-effects: false
chunks:
auto-save-interval: default
delay-chunk-unloads-by: 10s
entity-per-chunk-save-limit:
arrow: -1
ender_pearl: -1
experience_orb: -1
fireball: -1
small_fireball: -1
snowball: -1
fixed-chunk-inhabited-time: -1
flush-regions-on-save: false
max-auto-save-chunks-per-tick: 24
prevent-moving-into-unloaded-chunks: false
collisions:
allow-player-cramming-damage: false
allow-vehicle-collisions: true
fix-climbing-bypassing-cramming-rule: false
max-entity-collisions: 8
only-players-collide: false
entities:
armor-stands:
do-collision-entity-lookups: true
tick: true
behavior:
allow-spider-world-border-climbing: true
baby-zombie-movement-modifier: 0.5
disable-chest-cat-detection: false
disable-creeper-lingering-effect: false
disable-player-crits: false
door-breaking-difficulty:
husk:
- HARD
vindicator:
- NORMAL
- HARD
zombie:
- HARD
zombie_villager:
- HARD
zombified_piglin:
- HARD
ender-dragons-death-always-places-dragon-egg: false
experience-merge-max-value: -1
mobs-can-always-pick-up-loot:
skeletons: false
zombies: false
nerf-pigmen-from-nether-portals: false
parrots-are-unaffected-by-player-movement: false
phantoms-do-not-spawn-on-creative-players: true
phantoms-only-attack-insomniacs: true
phantoms-spawn-attempt-max-seconds: 119
phantoms-spawn-attempt-min-seconds: 60
piglins-guard-chests: true
pillager-patrols:
disable: false
spawn-chance: 0.2
spawn-delay:
per-player: false
ticks: 12000
start:
day: 5
per-player: false
player-insomnia-start-ticks: 72000
should-remove-dragon: false
spawner-nerfed-mobs-should-jump: false
zombie-villager-infection-chance: -1.0
zombies-target-turtle-eggs: true
entities-target-with-follow-range: false
markers:
tick: true
mob-effects:
immune-to-wither-effect:
wither: true
wither-skeleton: true
spiders-immune-to-poison-effect: true
undead-immune-to-certain-effects: true
spawning:
all-chunks-are-slime-chunks: false
alt-item-despawn-rate:
enabled: false
items:
cobblestone: 300
count-all-mobs-for-spawning: false
creative-arrow-despawn-rate: default
despawn-ranges:
ambient:
hard: 128
soft: 32
axolotls:
hard: 128
soft: 32
creature:
hard: 128
soft: 32
misc:
hard: 128
soft: 32
monster:
hard: 128
soft: 32
underground_water_creature:
hard: 128
soft: 32
water_ambient:
hard: 64
soft: 32
water_creature:
hard: 128
soft: 32
disable-mob-spawner-spawn-egg-transformation: false
duplicate-uuid:
mode: SAFE_REGEN
safe-regen-delete-range: 32
filter-bad-tile-entity-nbt-from-falling-blocks: true
filtered-entity-tag-nbt-paths:
- Pos
- Motion
- SleepingX
- SleepingY
- SleepingZ
iron-golems-can-spawn-in-air: false
monster-spawn-max-light-level: -1
non-player-arrow-despawn-rate: default
per-player-mob-spawns: true
scan-for-legacy-ender-dragon: true
skeleton-horse-thunder-spawn-chance: default
slime-spawn-height:
slime-chunk:
maximum: 40.0
surface-biome:
maximum: 70.0
minimum: 50.0
spawn-limits:
ambient: -1
axolotls: -1
creature: -1
monster: -1
underground_water_creature: -1
water_ambient: -1
water_creature: -1
wandering-trader:
spawn-chance-failure-increment: 25
spawn-chance-max: 75
spawn-chance-min: 25
spawn-day-length: 24000
spawn-minute-length: 1200
wateranimal-spawn-height:
maximum: default
minimum: default
environment:
disable-explosion-knockback: false
disable-ice-and-snow: false
disable-teleportation-suffocation-check: false
disable-thunder: false
fire-tick-delay: 30
frosted-ice:
delay:
max: 40
min: 20
enabled: true
generate-flat-bedrock: false
nether-ceiling-void-damage-height: disabled
optimize-explosions: false
portal-create-radius: 16
portal-search-radius: 128
portal-search-vanilla-dimension-scaling: true
treasure-maps:
enabled: true
find-already-discovered:
loot-tables: default
villager-trade: false
water-over-lava-flow-speed: 5
feature-seeds:
generate-random-seeds-for-all: false
fishing-time-range:
maximum: 600
minimum: 100
fixes:
disable-unloaded-chunk-enderpearl-exploit: true
falling-block-height-nerf: disabled
fix-curing-zombie-villager-discount-exploit: true
fix-items-merging-through-walls: false
prevent-tnt-from-moving-in-water: false
split-overstacked-loot: true
tnt-entity-height-nerf: disabled
hopper:
cooldown-when-full: true
disable-move-event: false
ignore-occluding-blocks: false
lootables:
auto-replenish: false
max-refills: -1
refresh-max: 2d
refresh-min: 12h
reset-seed-on-fill: true
restrict-player-reloot: true
restrict-player-reloot-time: disabled
maps:
item-frame-cursor-limit: 128
item-frame-cursor-update-interval: 10
max-growth-height:
bamboo:
max: 16
min: 11
cactus: 3
reeds: 3
misc:
disable-end-credits: false
disable-relative-projectile-velocity: false
disable-sprint-interruption-on-attack: false
light-queue-size: 20
max-leash-distance: 10.0
redstone-implementation: VANILLA
shield-blocking-delay: 5
show-sign-click-command-failure-msgs-to-player: false
update-pathfinding-on-block-update: true
scoreboards:
allow-non-player-entities-on-scoreboards: true
use-vanilla-world-scoreboard-name-coloring: false
spawn:
allow-using-signs-inside-spawn-protection: false
keep-spawn-loaded: true
keep-spawn-loaded-range: 10
tick-rates:
behavior:
villager:
validatenearbypoi: -1
container-update: 1
grass-spread: 1
mob-spawner: 1
sensor:
villager:
secondarypoisensor: 40
unsupported-settings:
fix-invulnerable-end-crystal-exploit: true

View File

@ -0,0 +1,59 @@
#Minecraft server properties
#Mon Aug 21 11:08:46 CST 2023
enable-jmx-monitoring=false
rcon.port=25575
level-seed=
gamemode=survival
enable-command-block=false
enable-query=false
generator-settings={}
enforce-secure-profile=true
level-name=world
motd=A Minecraft Server
query.port=25565
pvp=true
generate-structures=true
max-chained-neighbor-updates=1000000
difficulty=easy
network-compression-threshold=256
max-tick-time=60000
require-resource-pack=false
use-native-transport=true
max-players=20
online-mode=false
enable-status=true
allow-flight=false
initial-disabled-packs=
broadcast-rcon-to-ops=true
view-distance=10
server-ip=
resource-pack-prompt=
allow-nether=true
server-port=25565
enable-rcon=false
sync-chunk-writes=true
op-permission-level=4
prevent-proxy-connections=false
hide-online-players=false
resource-pack=
entity-broadcast-range-percentage=100
simulation-distance=10
rcon.password=
player-idle-timeout=0
debug=false
force-gamemode=false
rate-limit=0
hardcore=false
white-list=false
broadcast-console-to-ops=true
spawn-npcs=true
spawn-animals=true
function-permission-level=2
initial-enabled-packs=vanilla
level-type=minecraft\:normal
text-filtering-config=
spawn-monsters=true
enforce-whitelist=false
spawn-protection=16
resource-pack-sha1=
max-world-size=29999984

View File

@ -0,0 +1,27 @@
version: "3.9"
services:
papermc-paper:
# image: hty1024/papermc/paper:1.20.1-134
image: hty1024/papermc/paper:1.20.1-134-alpine
container_name: papermc-paper
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
- ./world:/opt/papermc/paper/world
- ./world_nether:/opt/papermc/paper/world_nether
- ./world_the_end:/opt/papermc/paper/world_the_end
- ./config:/opt/papermc/paper/config
- ./server.properties:/opt/papermc/paper/server.properties
- ./eula.txt:/opt/papermc/paper/eula.txt
- ./plugins:/opt/papermc/paper/plugins
- ./logs:/opt/papermc/paper/logs
ports:
- "25565:25565"
networks:
- app_network
networks:
app_network:
external: true
name: app_network

View File

@ -0,0 +1,128 @@
# This is the global configuration file for Paper.
# As you can see, there's a lot to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
#
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
#
# The world configuration options have been moved inside
# their respective world folder. The files are named paper-world.yml
#
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
# Website: https://papermc.io/
_version: 28
block-updates:
disable-noteblock-updates: false
disable-tripwire-updates: false
chunk-loading-advanced:
auto-config-send-distance: true
player-max-concurrent-chunk-generates: 0
player-max-concurrent-chunk-loads: 0
chunk-loading-basic:
player-max-chunk-generate-rate: -1.0
player-max-chunk-load-rate: 100.0
player-max-chunk-send-rate: 75.0
chunk-system:
gen-parallelism: default
io-threads: -1
worker-threads: -1
collisions:
enable-player-collisions: true
send-full-pos-for-hard-colliding-entities: true
commands:
fix-target-selector-tag-completion: true
suggest-player-names-when-null-tab-completions: true
time-command-affects-all-worlds: false
console:
enable-brigadier-completions: true
enable-brigadier-highlighting: true
has-all-permissions: false
item-validation:
book:
author: 8192
page: 16384
title: 8192
book-size:
page-max: 2560
total-multiplier: 0.98
display-name: 8192
lore-line: 8192
resolve-selectors-in-books: false
logging:
deobfuscate-stacktraces: true
log-player-ip-addresses: true
messages:
kick:
authentication-servers-down: <lang:multiplayer.disconnect.authservers_down>
connection-throttle: Connection throttled! Please wait before reconnecting.
flying-player: <lang:multiplayer.disconnect.flying>
flying-vehicle: <lang:multiplayer.disconnect.flying>
no-permission: <red>I'm sorry, but you do not have permission to perform this command.
Please contact the server administrators if you believe that this is in error.
use-display-name-in-quit-message: false
misc:
chat-threads:
chat-executor-core-size: -1
chat-executor-max-size: -1
fix-entity-position-desync: true
lag-compensate-block-breaking: true
load-permissions-yml-before-plugins: true
max-joins-per-tick: 5
region-file-cache-size: 256
strict-advancement-dimension-check: false
use-alternative-luck-formula: false
use-dimension-type-for-custom-spawners: false
packet-limiter:
all-packets:
action: KICK
interval: 7.0
max-packet-rate: 500.0
kick-message: <red><lang:disconnect.exceeded_packet_rate>
overrides:
ServerboundPlaceRecipePacket:
action: DROP
interval: 4.0
max-packet-rate: 5.0
player-auto-save:
max-per-tick: -1
rate: -1
proxies:
bungee-cord:
online-mode: true
proxy-protocol: false
velocity:
enabled: false
online-mode: false
secret: ''
scoreboards:
save-empty-scoreboard-teams: false
track-plugin-scoreboards: false
spam-limiter:
incoming-packet-threshold: 300
recipe-spam-increment: 1
recipe-spam-limit: 20
tab-spam-increment: 1
tab-spam-limit: 500
timings:
enabled: true
hidden-config-entries:
- database
- proxies.velocity.secret
history-interval: 300
history-length: 3600
server-name: Unknown Server
server-name-privacy: false
url: https://timings.aikar.co/
verbose: true
unsupported-settings:
allow-grindstone-overstacking: false
allow-headless-pistons: false
allow-permanent-block-break-exploits: false
allow-piston-duplication: false
compression-format: ZLIB
perform-username-validation: true
watchdog:
early-warning-delay: 10000
early-warning-every: 5000

View File

@ -0,0 +1,290 @@
# This is the world defaults configuration file for Paper.
# As you can see, there's a lot to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
#
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
#
# Configuration options here apply to all worlds, unless you specify overrides inside
# the world-specific config file inside each world folder.
#
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
# Website: https://papermc.io/
_version: 30
anticheat:
anti-xray:
enabled: false
engine-mode: 1
hidden-blocks:
- copper_ore
- deepslate_copper_ore
- gold_ore
- deepslate_gold_ore
- iron_ore
- deepslate_iron_ore
- coal_ore
- deepslate_coal_ore
- lapis_ore
- deepslate_lapis_ore
- mossy_cobblestone
- obsidian
- chest
- diamond_ore
- deepslate_diamond_ore
- redstone_ore
- deepslate_redstone_ore
- clay
- emerald_ore
- deepslate_emerald_ore
- ender_chest
lava-obscures: false
max-block-height: 64
replacement-blocks:
- stone
- oak_planks
- deepslate
update-radius: 2
use-permission: false
obfuscation:
items:
hide-durability: false
hide-itemmeta: false
hide-itemmeta-with-visual-effects: false
chunks:
auto-save-interval: default
delay-chunk-unloads-by: 10s
entity-per-chunk-save-limit:
arrow: -1
ender_pearl: -1
experience_orb: -1
fireball: -1
small_fireball: -1
snowball: -1
fixed-chunk-inhabited-time: -1
flush-regions-on-save: false
max-auto-save-chunks-per-tick: 24
prevent-moving-into-unloaded-chunks: false
collisions:
allow-player-cramming-damage: false
allow-vehicle-collisions: true
fix-climbing-bypassing-cramming-rule: false
max-entity-collisions: 8
only-players-collide: false
entities:
armor-stands:
do-collision-entity-lookups: true
tick: true
behavior:
allow-spider-world-border-climbing: true
baby-zombie-movement-modifier: 0.5
disable-chest-cat-detection: false
disable-creeper-lingering-effect: false
disable-player-crits: false
door-breaking-difficulty:
husk:
- HARD
vindicator:
- NORMAL
- HARD
zombie:
- HARD
zombie_villager:
- HARD
zombified_piglin:
- HARD
ender-dragons-death-always-places-dragon-egg: false
experience-merge-max-value: -1
mobs-can-always-pick-up-loot:
skeletons: false
zombies: false
nerf-pigmen-from-nether-portals: false
parrots-are-unaffected-by-player-movement: false
phantoms-do-not-spawn-on-creative-players: true
phantoms-only-attack-insomniacs: true
phantoms-spawn-attempt-max-seconds: 119
phantoms-spawn-attempt-min-seconds: 60
piglins-guard-chests: true
pillager-patrols:
disable: false
spawn-chance: 0.2
spawn-delay:
per-player: false
ticks: 12000
start:
day: 5
per-player: false
player-insomnia-start-ticks: 72000
should-remove-dragon: false
spawner-nerfed-mobs-should-jump: false
zombie-villager-infection-chance: -1.0
zombies-target-turtle-eggs: true
entities-target-with-follow-range: false
markers:
tick: true
mob-effects:
immune-to-wither-effect:
wither: true
wither-skeleton: true
spiders-immune-to-poison-effect: true
undead-immune-to-certain-effects: true
spawning:
all-chunks-are-slime-chunks: false
alt-item-despawn-rate:
enabled: false
items:
cobblestone: 300
count-all-mobs-for-spawning: false
creative-arrow-despawn-rate: default
despawn-ranges:
ambient:
hard: 128
soft: 32
axolotls:
hard: 128
soft: 32
creature:
hard: 128
soft: 32
misc:
hard: 128
soft: 32
monster:
hard: 128
soft: 32
underground_water_creature:
hard: 128
soft: 32
water_ambient:
hard: 64
soft: 32
water_creature:
hard: 128
soft: 32
disable-mob-spawner-spawn-egg-transformation: false
duplicate-uuid:
mode: SAFE_REGEN
safe-regen-delete-range: 32
filter-bad-tile-entity-nbt-from-falling-blocks: true
filtered-entity-tag-nbt-paths:
- Pos
- Motion
- SleepingX
- SleepingY
- SleepingZ
iron-golems-can-spawn-in-air: false
monster-spawn-max-light-level: -1
non-player-arrow-despawn-rate: default
per-player-mob-spawns: true
scan-for-legacy-ender-dragon: true
skeleton-horse-thunder-spawn-chance: default
slime-spawn-height:
slime-chunk:
maximum: 40.0
surface-biome:
maximum: 70.0
minimum: 50.0
spawn-limits:
ambient: -1
axolotls: -1
creature: -1
monster: -1
underground_water_creature: -1
water_ambient: -1
water_creature: -1
wandering-trader:
spawn-chance-failure-increment: 25
spawn-chance-max: 75
spawn-chance-min: 25
spawn-day-length: 24000
spawn-minute-length: 1200
wateranimal-spawn-height:
maximum: default
minimum: default
environment:
disable-explosion-knockback: false
disable-ice-and-snow: false
disable-teleportation-suffocation-check: false
disable-thunder: false
fire-tick-delay: 30
frosted-ice:
delay:
max: 40
min: 20
enabled: true
generate-flat-bedrock: false
nether-ceiling-void-damage-height: disabled
optimize-explosions: false
portal-create-radius: 16
portal-search-radius: 128
portal-search-vanilla-dimension-scaling: true
treasure-maps:
enabled: true
find-already-discovered:
loot-tables: default
villager-trade: false
water-over-lava-flow-speed: 5
feature-seeds:
generate-random-seeds-for-all: false
fishing-time-range:
maximum: 600
minimum: 100
fixes:
disable-unloaded-chunk-enderpearl-exploit: true
falling-block-height-nerf: disabled
fix-curing-zombie-villager-discount-exploit: true
fix-items-merging-through-walls: false
prevent-tnt-from-moving-in-water: false
split-overstacked-loot: true
tnt-entity-height-nerf: disabled
hopper:
cooldown-when-full: true
disable-move-event: false
ignore-occluding-blocks: false
lootables:
auto-replenish: false
max-refills: -1
refresh-max: 2d
refresh-min: 12h
reset-seed-on-fill: true
restrict-player-reloot: true
restrict-player-reloot-time: disabled
maps:
item-frame-cursor-limit: 128
item-frame-cursor-update-interval: 10
max-growth-height:
bamboo:
max: 16
min: 11
cactus: 3
reeds: 3
misc:
disable-end-credits: false
disable-relative-projectile-velocity: false
disable-sprint-interruption-on-attack: false
light-queue-size: 20
max-leash-distance: 10.0
redstone-implementation: VANILLA
shield-blocking-delay: 5
show-sign-click-command-failure-msgs-to-player: false
update-pathfinding-on-block-update: true
scoreboards:
allow-non-player-entities-on-scoreboards: true
use-vanilla-world-scoreboard-name-coloring: false
spawn:
allow-using-signs-inside-spawn-protection: false
keep-spawn-loaded: true
keep-spawn-loaded-range: 10
tick-rates:
behavior:
villager:
validatenearbypoi: -1
container-update: 1
grass-spread: 1
mob-spawner: 1
sensor:
villager:
secondarypoisensor: 40
unsupported-settings:
fix-invulnerable-end-crystal-exploit: true

View File

@ -0,0 +1,3 @@
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Mon Aug 21 11:07:07 CST 2023
eula=true

View File

@ -0,0 +1,34 @@
[04:00:45] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 7445ms or 148 ticks behind
[09:26:12] [Yggdrasil Key Fetcher/ERROR]: Failed to request yggdrasil public key
com.mojang.authlib.exceptions.AuthenticationUnavailableException: Cannot contact authentication server
at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:119) ~[authlib-4.0.43.jar:?]
at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:91) ~[authlib-4.0.43.jar:?]
at com.mojang.authlib.yggdrasil.YggdrasilServicesKeyInfo.fetch(YggdrasilServicesKeyInfo.java:94) ~[authlib-4.0.43.jar:?]
at com.mojang.authlib.yggdrasil.YggdrasilServicesKeyInfo.lambda$get$1(YggdrasilServicesKeyInfo.java:81) ~[authlib-4.0.43.jar:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.net.SocketTimeoutException: Connect timed out
at sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551) ~[?:?]
at sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602) ~[?:?]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[?:?]
at java.net.Socket.connect(Socket.java:633) ~[?:?]
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) ~[?:?]
at sun.net.NetworkClient.doConnect(NetworkClient.java:178) ~[?:?]
at sun.net.www.http.HttpClient.openServer(HttpClient.java:533) ~[?:?]
at sun.net.www.http.HttpClient.openServer(HttpClient.java:638) ~[?:?]
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266) ~[?:?]
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380) ~[?:?]
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) ~[?:?]
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1287) ~[?:?]
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) ~[?:?]
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) ~[?:?]
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665) ~[?:?]
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) ~[?:?]
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224) ~[?:?]
at com.mojang.authlib.HttpAuthenticationService.performGetRequest(HttpAuthenticationService.java:140) ~[authlib-4.0.43.jar:?]
at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:96) ~[authlib-4.0.43.jar:?]
... 9 more

View File

@ -0,0 +1,8 @@
# bStats collects some data for plugin authors like how many servers are using their plugins.
# To honor their work, you should not disable it.
# This has nearly no effect on the server performance!
# Check out https://bStats.org/ to learn more :)
enabled: true
serverUuid: 4062765f-c9ca-4314-8170-5b58a1d2a7ba
logFailedRequests: false

View File

@ -0,0 +1,59 @@
#Minecraft server properties
#Tue Aug 22 09:25:57 CST 2023
enable-jmx-monitoring=false
rcon.port=25575
level-seed=
gamemode=survival
enable-command-block=false
enable-query=false
generator-settings={}
enforce-secure-profile=true
level-name=world
motd=A Minecraft Server
query.port=25565
pvp=true
generate-structures=true
max-chained-neighbor-updates=1000000
difficulty=easy
network-compression-threshold=256
max-tick-time=60000
require-resource-pack=false
use-native-transport=true
max-players=20
online-mode=false
enable-status=true
allow-flight=false
initial-disabled-packs=
broadcast-rcon-to-ops=true
view-distance=10
server-ip=
resource-pack-prompt=
allow-nether=true
server-port=25565
enable-rcon=false
sync-chunk-writes=true
op-permission-level=4
prevent-proxy-connections=false
hide-online-players=false
resource-pack=
entity-broadcast-range-percentage=100
simulation-distance=10
rcon.password=
player-idle-timeout=0
debug=false
force-gamemode=false
rate-limit=0
hardcore=false
white-list=false
broadcast-console-to-ops=true
spawn-npcs=true
spawn-animals=true
function-permission-level=2
initial-enabled-packs=vanilla
level-type=minecraft\:normal
text-filtering-config=
spawn-monsters=true
enforce-whitelist=false
spawn-protection=16
resource-pack-sha1=
max-world-size=29999984

Binary file not shown.

View File

@ -0,0 +1,6 @@
{
"pack": {
"description": "Data pack for resources provided by Bukkit plugins",
"pack_format": 15
}
}

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,6 @@
# This is a world configuration file for Paper.
# This file may start empty but can be filled with settings to override ones in the config/paper-world-defaults.yml
#
# World: world (minecraft:overworld)
_version: 30

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@
ÇÛÍoùEZ€! Åõ€ A

Binary file not shown.

View File

@ -0,0 +1,6 @@
# This is a world configuration file for Paper.
# This file may start empty but can be filled with settings to override ones in the config/paper-world-defaults.yml
#
# World: world_nether (minecraft:the_nether)
_version: 30

View File

@ -0,0 +1 @@

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,6 @@
# This is a world configuration file for Paper.
# This file may start empty but can be filled with settings to override ones in the config/paper-world-defaults.yml
#
# World: world_the_end (minecraft:the_end)
_version: 30

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@
ァSウ|ネB!€歉| 絅4

View File

@ -0,0 +1,55 @@
# 配置参数(指定基础镜像版本)
ARG BASE_TAG=11.0.20-alpine3.18
# 基于 Amazon Corretto 构建
FROM amazoncorretto:$BASE_TAG
# 指定端口号
EXPOSE 25577
# 配置参数
ARG GROUP_ID=1024 \
GROUP_NAME=papermc \
USER_ID=1024 \
USER_NAME=papermc \
USER_HOME=/home/papermc \
USER_SHELL=/bin/bash
# 更新应用并安装基础应用
RUN set -ex && \
apk add tzdata && \
apk add --no-cache bash bash-doc bash-completion
# 设置时区、新建用户组及用户、配置目录权限
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
addgroup $GROUP_NAME -g $GROUP_ID && \
adduser $USER_NAME -G $GROUP_NAME -h $USER_HOME -s $USER_SHELL -u $USER_ID -D && \
mkdir -pv $USER_HOME && \
chown -R $GROUP_NAME.$USER_NAME $USER_HOME
# 配置环境变量
ARG PAPERMC_VELOCITY_VERSION=3.2.0-SNAPSHOT-265
ENV PAPERMC_VELOCITY_VERSION=$PAPERMC_VELOCITY_VERSION \
PAPERMC_VELOCITY_HOME=/opt/papermc/velocity \
PAPERMC_VELOCITY_DATA_DIR=/opt/papermc/velocity
# 安装 PaperMC Server
COPY velocity-$PAPERMC_VELOCITY_VERSION.jar $PAPERMC_VELOCITY_HOME/velocity-$PAPERMC_VELOCITY_VERSION.jar
COPY velocity.toml $PAPERMC_VELOCITY_HOME/velocity.toml
COPY forwarding.secret $PAPERMC_VELOCITY_HOME/forwarding.secret
COPY entrypoint.sh $PAPERMC_VELOCITY_HOME/entrypoint.sh
RUN mkdir -pv $PAPERMC_VELOCITY_DATA_DIR && \
chown -R $GROUP_NAME.$USER_NAME $PAPERMC_VELOCITY_HOME $PAPERMC_VELOCITY_DATA_DIR && \
chmod -R 755 $PAPERMC_VELOCITY_HOME $PAPERMC_VELOCITY_DATA_DIR
# 设置工作目录
WORKDIR $PAPERMC_VELOCITY_HOME
# 设置默认挂载目录
VOLUME [$PAPERMC_VELOCITY_HOME/plugins, $PAPERMC_VELOCITY_HOME/logs]
# 设置启动用户
USER $GROUP_NAME:$USER_NAME
# 设置执行启动脚本
CMD ["/bin/bash","-c","./entrypoint.sh"]

View File

@ -0,0 +1,11 @@
#!/bin/bash
echo '===================================================================================================='
echo `date +%Y-%m-%d` `date +%H:%M:%S`
echo '============================== 开始启动 PaperMC Velocity...... =============================='
echo 'PaperMC Velocity 版本号:' $PAPERMC_VELOCITY_VERSION
echo 'PaperMC Velocity 工作目录:' $PAPERMC_VELOCITY_HOME
echo 'PaperMC Velocity 监听端口25577'
echo '数据文件目录:' $PAPERMC_VELOCITY_DATA_DIR
echo '----------------------------------------------------------------------------------------------------'
java -Xms1G -Xmx1G -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar $PAPERMC_VELOCITY_HOME/velocity-$PAPERMC_VELOCITY_VERSION.jar

View File

@ -0,0 +1 @@
OiXweorTzCig

View File

@ -0,0 +1,155 @@
# Config version. Do not change this
config-version = "2.6"
# 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. Only MiniMessage format is accepted.
motd = "<#09add3>A 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
# Should the proxy enforce the new public key security standard? By default, this is on.
force-key-authentication = 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 file that contains a unique secret here.
# The file is expected to be UTF-8 encoded and not empty.
forwarding-secret-file = "forwarding.secret"
# 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"
# If not enabled (default is true) player IP addresses will be replaced by <ip address withheld> in logs
enable-player-address-logging = true
[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
# Enables logging of player connections when connecting to the proxy, switching servers
# and disconnecting from the proxy.
log-player-connections = true
[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"
# Whether plugins should be shown in query response by default or not
show-plugins = false

View File

@ -0,0 +1,23 @@
version: "3.9"
services:
papermc-velocity:
# image: hty1024/papermc/velocity:3.2.0-SNAPSHOT-265
image: hty1024/papermc/velocity:3.2.0-SNAPSHOT-265-alpine
container_name: papermc-velocity
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
- ./velocity.toml:/opt/papermc/velocity/velocity.toml
- ./forwarding.secret:/opt/papermc/velocity/forwarding.secret
- ./plugins:/opt/papermc/velocity/plugins
- ./logs:/opt/papermc/velocity/logs
ports:
- "25577:25577"
networks:
- app_network
networks:
app_network:
external: true
name: app_network

View File

@ -0,0 +1 @@
CEqNAMuCv85AGSjn

View File

@ -0,0 +1,13 @@
[09:29:40] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Booting up Velocity 3.2.0-SNAPSHOT (git-19abb909-b265)...
[09:29:40] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Loading localizations...
[09:29:40] [main/INFO] [com.velocitypowered.proxy.network.ConnectionManager]: Connections will use epoll channels, libdeflate (Linux x86_64) compression, OpenSSL 3.0.x (Linux x86_64) ciphers
[09:29:40] [main/WARN] [com.velocitypowered.proxy.config.VelocityConfiguration]: Player info forwarding is disabled! All players will appear to be connecting from the proxy and will have offline-mode UUIDs.
[09:29:40] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Loading plugins...
[09:29:40] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Loaded 0 plugins
[09:29:41] [main/INFO] [com.velocitypowered.proxy.Metrics]: Velocity and some of its plugins collect metrics and send them to bStats (https://bStats.org).
[09:29:41] [main/INFO] [com.velocitypowered.proxy.Metrics]: bStats collects some basic information for plugin authors, like how many people use
[09:29:41] [main/INFO] [com.velocitypowered.proxy.Metrics]: their plugin and their total player count. It's recommended to keep bStats enabled, but
[09:29:41] [main/INFO] [com.velocitypowered.proxy.Metrics]: if you're not comfortable with this, you can opt-out by editing the config.txt file in
[09:29:41] [main/INFO] [com.velocitypowered.proxy.Metrics]: the '/plugins/bStats/' folder and setting enabled to false.
[09:29:41] [main/INFO] [com.velocitypowered.proxy.Velocity]: Done (1.57s)!
[09:29:41] [Netty epoll Boss #0/INFO] [com.velocitypowered.proxy.network.ConnectionManager]: Listening on /0.0.0.0:25577

View File

@ -0,0 +1,10 @@
# bStats (https://bStats.org) collects some basic information for plugin authors, like
# how many people use their plugin and their total player count. It's recommended to keep
# bStats enabled, but if you're not comfortable with this, you can turn this setting off.
# There is no performance penalty associated with having metrics enabled, and data sent to
# bStats is fully anonymous.
enabled=true
server-uuid=3a00e61a-2c29-4da7-a066-755532f7d936
log-errors=false
log-sent-data=false
log-response-status-text=false

View File

@ -0,0 +1,155 @@
# Config version. Do not change this
config-version = "2.6"
# 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. Only MiniMessage format is accepted.
motd = "<#09add3>A 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
# Should the proxy enforce the new public key security standard? By default, this is on.
force-key-authentication = 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 file that contains a unique secret here.
# The file is expected to be UTF-8 encoded and not empty.
forwarding-secret-file = "forwarding.secret"
# 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"
# If not enabled (default is true) player IP addresses will be replaced by <ip address withheld> in logs
enable-player-address-logging = true
[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
# Enables logging of player connections when connecting to the proxy, switching servers
# and disconnecting from the proxy.
log-player-connections = true
[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"
# Whether plugins should be shown in query response by default or not
show-plugins = false