From f839fa454ede15381b41fef5ad18ca98ee8cea02 Mon Sep 17 00:00:00 2001
From: DerGrumpf
Date: Sat, 16 Nov 2024 22:05:08 +0100
Subject: [PATCH] WIP: changed project layout | added unified metrics
---
fallback/.gitignore | 1 +
fallback/compose.yml | 53 ++++++
.../config}/FabricProxy-Lite.toml | 0
.../config}/exporter.properties | 0
fallback/mods.txt | 18 ++
ops.json => fallback/ops.json | 0
whitelist.json => fallback/whitelist.json | 0
main/.gitignore | 1 +
docker-compose.yml => main/compose.yml | 0
main/config/FabricProxy-Lite.toml | 4 +
.../config}/biomesoplenty/biome_toggles.json | 0
.../config}/biomesoplenty/gameplay.toml | 0
.../config}/biomesoplenty/generation.toml | 0
{config => main/config}/fallingtree.json | 0
{config => main/config}/friendsandfoes.json | 0
{config => main/config}/frostiful.json | 0
main/config/unifiedmetrics/config.yml | 14 ++
.../unifiedmetrics/driver/prometheus.yml | 16 ++
{config => main/config}/villagernames.json5 | 0
.../config}/villagernames/customnames.txt | 0
mods.txt => main/mods.txt | 4 +-
main/ops.json | 32 ++++
rclone.conf => main/rclone.conf | 0
{squaremap => main/squaremap}/advanced.yml | 0
{squaremap => main/squaremap}/config.yml | 0
main/whitelist.json | 22 +++
proxy/compose.yml | 22 +++
proxy/forwarding.secret | 1 +
proxy/server-icon.png | Bin 0 -> 9935 bytes
proxy/unifiedmetrics/config.yml | 14 ++
proxy/unifiedmetrics/driver/prometheus.yml | 16 ++
proxy/velocity.toml | 159 ++++++++++++++++++
32 files changed, 375 insertions(+), 2 deletions(-)
create mode 100644 fallback/.gitignore
create mode 100644 fallback/compose.yml
rename {config => fallback/config}/FabricProxy-Lite.toml (100%)
rename {config => fallback/config}/exporter.properties (100%)
create mode 100644 fallback/mods.txt
rename ops.json => fallback/ops.json (100%)
rename whitelist.json => fallback/whitelist.json (100%)
create mode 100644 main/.gitignore
rename docker-compose.yml => main/compose.yml (100%)
create mode 100644 main/config/FabricProxy-Lite.toml
rename {config => main/config}/biomesoplenty/biome_toggles.json (100%)
rename {config => main/config}/biomesoplenty/gameplay.toml (100%)
rename {config => main/config}/biomesoplenty/generation.toml (100%)
rename {config => main/config}/fallingtree.json (100%)
rename {config => main/config}/friendsandfoes.json (100%)
rename {config => main/config}/frostiful.json (100%)
create mode 100644 main/config/unifiedmetrics/config.yml
create mode 100644 main/config/unifiedmetrics/driver/prometheus.yml
rename {config => main/config}/villagernames.json5 (100%)
rename {config => main/config}/villagernames/customnames.txt (100%)
rename mods.txt => main/mods.txt (95%)
create mode 100644 main/ops.json
rename rclone.conf => main/rclone.conf (100%)
rename {squaremap => main/squaremap}/advanced.yml (100%)
rename {squaremap => main/squaremap}/config.yml (100%)
create mode 100644 main/whitelist.json
create mode 100644 proxy/compose.yml
create mode 100644 proxy/forwarding.secret
create mode 100644 proxy/server-icon.png
create mode 100644 proxy/unifiedmetrics/config.yml
create mode 100644 proxy/unifiedmetrics/driver/prometheus.yml
create mode 100644 proxy/velocity.toml
diff --git a/fallback/.gitignore b/fallback/.gitignore
new file mode 100644
index 0000000..3af0ccb
--- /dev/null
+++ b/fallback/.gitignore
@@ -0,0 +1 @@
+/data
diff --git a/fallback/compose.yml b/fallback/compose.yml
new file mode 100644
index 0000000..70ce203
--- /dev/null
+++ b/fallback/compose.yml
@@ -0,0 +1,53 @@
+services:
+ server:
+ image: itzg/minecraft-server
+ container_name: fallback
+ restart: always
+ environment:
+ # What Server
+ EULA: "true"
+ TYPE: FABRIC
+ VERSION: 1.21.1
+ SERVER_NAME: uno
+ ONLINE_MODE: false
+ TZ: Europe/Berlin
+
+ # Server Properties
+ OVERRIDE_SERVER_PROPERTIES: true
+ ENABLE_COMMAND_BLOCK: true
+ GAMEMODE: adventure
+ FORCE_GAMEMODE: true
+
+ # RCON Setup
+ RCON_PASSWORD: garde-studios
+ BROADCAST_CONSOLE_TO_OPS: false
+ BROADCAST_RCON_TO_OPS: true
+
+ # Setup
+ FORCE_REDOWNLOAD: true
+ #MEMORY: 2G
+ INIT_MEMORY: 2G
+ MAX_MEMORY: 4G
+ USE_AIKAR_FLAGS: true
+
+ # World & Mod Data
+ WORLD: https://file.cyperpunk.de/filebrowser/api/public/dl/4FDwjgd8/lobby.zip
+ #SEED: 795488740
+ MODS_FILE: /extras/mods.txt
+ # Whitelisting Players
+ WHITELIST_FILE: /extras/whitelist.json
+ OVERRIDE_WHITELIST: true
+ ENFORCE_WHITELIST: false
+
+ # Operator Setup
+ OPS_FILE: /extras/ops.json
+ SYNC_SKIP_NEWER_IN_DESTINATION: false
+ ports:
+ - 30000:25565 # Connection Port
+ - 9000:25585 # Fabric Exporter
+ volumes:
+ - ./data:/data
+ - ./mods.txt:/extras/mods.txt:ro
+ - ./config:/config
+
+networks: {}
diff --git a/config/FabricProxy-Lite.toml b/fallback/config/FabricProxy-Lite.toml
similarity index 100%
rename from config/FabricProxy-Lite.toml
rename to fallback/config/FabricProxy-Lite.toml
diff --git a/config/exporter.properties b/fallback/config/exporter.properties
similarity index 100%
rename from config/exporter.properties
rename to fallback/config/exporter.properties
diff --git a/fallback/mods.txt b/fallback/mods.txt
new file mode 100644
index 0000000..614d4b5
--- /dev/null
+++ b/fallback/mods.txt
@@ -0,0 +1,18 @@
+# Fabric API
+https://cdn.modrinth.com/data/P7dR8mSH/versions/thGkUOxt/fabric-api-0.107.0%2B1.21.1.jar
+
+# Performance
+https://cdn.modrinth.com/data/gvQqBUqZ/versions/5szYtenV/lithium-fabric-mc1.21.1-0.13.0.jar
+https://cdn.modrinth.com/data/fALzjamp/versions/dPliWter/Chunky-1.4.16.jar
+https://cdn.modrinth.com/data/s86X568j/versions/uT1cdd3k/ChunkyBorder-1.2.18.jar
+https://cdn.modrinth.com/data/LFJf0Klb/versions/7e8Rxgsk/ce-2.1.1.jar
+
+# Proxy
+https://cdn.modrinth.com/data/8dI2tmqs/versions/AQhF7kvw/FabricProxy-Lite-2.9.0.jar
+
+# Monitoring
+https://cdn.modrinth.com/data/dbVXHSlv/versions/YcE9H1C5/fabricexporter-1.0.11.jar
+https://cdn.modrinth.com/data/l6YH9Als/versions/qTSaozEL/spark-1.10.97-fabric.jar
+
+# World Edit
+https://cdn.modrinth.com/data/1u6JkXh5/versions/vBzkrSYP/worldedit-mod-7.3.6.jar
diff --git a/ops.json b/fallback/ops.json
similarity index 100%
rename from ops.json
rename to fallback/ops.json
diff --git a/whitelist.json b/fallback/whitelist.json
similarity index 100%
rename from whitelist.json
rename to fallback/whitelist.json
diff --git a/main/.gitignore b/main/.gitignore
new file mode 100644
index 0000000..3af0ccb
--- /dev/null
+++ b/main/.gitignore
@@ -0,0 +1 @@
+/data
diff --git a/docker-compose.yml b/main/compose.yml
similarity index 100%
rename from docker-compose.yml
rename to main/compose.yml
diff --git a/main/config/FabricProxy-Lite.toml b/main/config/FabricProxy-Lite.toml
new file mode 100644
index 0000000..47762f5
--- /dev/null
+++ b/main/config/FabricProxy-Lite.toml
@@ -0,0 +1,4 @@
+hackOnlineMode = true
+hackEarlySend = false
+hackMessageChain = true
+secret = "CMhgx3vF17Nu"
diff --git a/config/biomesoplenty/biome_toggles.json b/main/config/biomesoplenty/biome_toggles.json
similarity index 100%
rename from config/biomesoplenty/biome_toggles.json
rename to main/config/biomesoplenty/biome_toggles.json
diff --git a/config/biomesoplenty/gameplay.toml b/main/config/biomesoplenty/gameplay.toml
similarity index 100%
rename from config/biomesoplenty/gameplay.toml
rename to main/config/biomesoplenty/gameplay.toml
diff --git a/config/biomesoplenty/generation.toml b/main/config/biomesoplenty/generation.toml
similarity index 100%
rename from config/biomesoplenty/generation.toml
rename to main/config/biomesoplenty/generation.toml
diff --git a/config/fallingtree.json b/main/config/fallingtree.json
similarity index 100%
rename from config/fallingtree.json
rename to main/config/fallingtree.json
diff --git a/config/friendsandfoes.json b/main/config/friendsandfoes.json
similarity index 100%
rename from config/friendsandfoes.json
rename to main/config/friendsandfoes.json
diff --git a/config/frostiful.json b/main/config/frostiful.json
similarity index 100%
rename from config/frostiful.json
rename to main/config/frostiful.json
diff --git a/main/config/unifiedmetrics/config.yml b/main/config/unifiedmetrics/config.yml
new file mode 100644
index 0000000..afdc9e5
--- /dev/null
+++ b/main/config/unifiedmetrics/config.yml
@@ -0,0 +1,14 @@
+server:
+ name: "global"
+metrics:
+ enabled: true
+ driver: "prometheus"
+ collectors:
+ systemGc: true
+ systemMemory: true
+ systemProcess: true
+ systemThread: true
+ server: true
+ world: true
+ tick: true
+ events: true
\ No newline at end of file
diff --git a/main/config/unifiedmetrics/driver/prometheus.yml b/main/config/unifiedmetrics/driver/prometheus.yml
new file mode 100644
index 0000000..89308c0
--- /dev/null
+++ b/main/config/unifiedmetrics/driver/prometheus.yml
@@ -0,0 +1,16 @@
+mode: "HTTP"
+http:
+ host: "0.0.0.0"
+ port: 9100
+ authentication:
+ scheme: "NONE"
+ username: "username"
+ password: "password"
+pushGateway:
+ job: "unifiedmetrics"
+ url: "http://pushgateway:9091"
+ authentication:
+ scheme: "NONE"
+ username: "username"
+ password: "password"
+ interval: 10
\ No newline at end of file
diff --git a/config/villagernames.json5 b/main/config/villagernames.json5
similarity index 100%
rename from config/villagernames.json5
rename to main/config/villagernames.json5
diff --git a/config/villagernames/customnames.txt b/main/config/villagernames/customnames.txt
similarity index 100%
rename from config/villagernames/customnames.txt
rename to main/config/villagernames/customnames.txt
diff --git a/mods.txt b/main/mods.txt
similarity index 95%
rename from mods.txt
rename to main/mods.txt
index 0057654..71e3c64 100644
--- a/mods.txt
+++ b/main/mods.txt
@@ -35,8 +35,8 @@ https://cdn.modrinth.com/data/LFJf0Klb/versions/7e8Rxgsk/ce-2.1.1.jar
https://cdn.modrinth.com/data/8dI2tmqs/versions/AQhF7kvw/FabricProxy-Lite-2.9.0.jar
# Monitoring
-https://cdn.modrinth.com/data/dbVXHSlv/versions/YcE9H1C5/fabricexporter-1.0.11.jar
-https://cdn.modrinth.com/data/l6YH9Als/versions/qTSaozEL/spark-1.10.97-fabric.jar
+https://cdn.modrinth.com/data/Ha28R6CL/versions/B0fZidZi/fabric-language-kotlin-1.12.3%2Bkotlin.2.0.21.jar
+https://cdn.modrinth.com/data/p1ewR5kV/versions/xwRVtqbA/unifiedmetrics-platform-fabric-0.3.8.jar
# World Edit
https://cdn.modrinth.com/data/1u6JkXh5/versions/vBzkrSYP/worldedit-mod-7.3.6.jar
diff --git a/main/ops.json b/main/ops.json
new file mode 100644
index 0000000..e45fe13
--- /dev/null
+++ b/main/ops.json
@@ -0,0 +1,32 @@
+[
+ {
+ "uuid": "61ec0d1b-0dc2-45bd-930e-ab45bcaa4386",
+ "name": "Athro_Hiro",
+ "level": 4,
+ "bypassesPlayerLimit": false
+ },
+ {
+ "uuid": "d3dd297f-0c08-45a0-8260-f1ac46af490a",
+ "name": "Der_Grumpf",
+ "level": 4,
+ "bypassesPlayerLimit": false
+ },
+ {
+ "uuid": "2f1de2e1-9fe8-457c-9a99-26c611fc6b64",
+ "name": "mlgChaostom44",
+ "level": 4,
+ "bypassesPlayerLimit": false
+ },
+ {
+ "uuid": "f42bbaa6-b2e7-4573-8092-13fbddf2544d",
+ "name": "Deltayquaza",
+ "level": 4,
+ "bypassesPlayerLimit": false
+ },
+ {
+ "uuid": "c76e4802-7f01-47cb-bc1b-16cadd736078",
+ "name": "Weizenkumpel",
+ "level": 4,
+ "bypassesPlayerLimit": false
+ }
+]
\ No newline at end of file
diff --git a/rclone.conf b/main/rclone.conf
similarity index 100%
rename from rclone.conf
rename to main/rclone.conf
diff --git a/squaremap/advanced.yml b/main/squaremap/advanced.yml
similarity index 100%
rename from squaremap/advanced.yml
rename to main/squaremap/advanced.yml
diff --git a/squaremap/config.yml b/main/squaremap/config.yml
similarity index 100%
rename from squaremap/config.yml
rename to main/squaremap/config.yml
diff --git a/main/whitelist.json b/main/whitelist.json
new file mode 100644
index 0000000..7d0c3aa
--- /dev/null
+++ b/main/whitelist.json
@@ -0,0 +1,22 @@
+[
+ {
+ "uuid": "61ec0d1b-0dc2-45bd-930e-ab45bcaa4386",
+ "name": "Athro_Hiro"
+ },
+ {
+ "uuid": "d3dd297f-0c08-45a0-8260-f1ac46af490a",
+ "name": "Der_Grumpf"
+ },
+ {
+ "uuid": "9b0fa43a-9c43-45bc-8e36-c282e87a3c69",
+ "name": "Keanu2010Profi"
+ },
+ {
+ "uuid": "2f1de2e1-9fe8-457c-9a99-26c611fc6b64",
+ "name": "mlgChaostom44"
+ },
+ {
+ "uuid": "c76e4802-7f01-47cb-bc1b-16cadd736078",
+ "name": "Weizenkumpel"
+ }
+]
\ No newline at end of file
diff --git a/proxy/compose.yml b/proxy/compose.yml
new file mode 100644
index 0000000..2be4afe
--- /dev/null
+++ b/proxy/compose.yml
@@ -0,0 +1,22 @@
+services:
+ proxy:
+ container_name: proxy
+ image: itzg/mc-proxy
+ environment:
+ TYPE: VELOCITY
+ DEBUG: false
+ OVERRIDE_ICON: true
+ VELOCITY_VERSION: latest
+ VELOCITY_BUILD_ID: 450
+ PLUGINS: https://cdn.modrinth.com/data/p1ewR5kV/versions/Dubg3nLw/unifiedmetrics-platform-velocity-0.3.8.jar
+ volumes:
+ - ./server-icon.png:/server/server-icon.png
+ - ./velocity.toml:/config/velocity.toml:ro
+ - ./forwarding.secret:/config/forwarding.secret:ro
+ - ./unifiedmetrics:/plugins/unifiedmetrics
+ - ./server:/server
+ ports:
+ - 25565:25565
+
+volumes:
+ proxy: {}
diff --git a/proxy/forwarding.secret b/proxy/forwarding.secret
new file mode 100644
index 0000000..51d393e
--- /dev/null
+++ b/proxy/forwarding.secret
@@ -0,0 +1 @@
+bGAJSlLeA4Wf
\ No newline at end of file
diff --git a/proxy/server-icon.png b/proxy/server-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..79e0f2c560667ea212d5a5d170f68bd2b9ec02eb
GIT binary patch
literal 9935
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
N002ovPDHLkV1nWci8KHJ
literal 0
HcmV?d00001
diff --git a/proxy/unifiedmetrics/config.yml b/proxy/unifiedmetrics/config.yml
new file mode 100644
index 0000000..afdc9e5
--- /dev/null
+++ b/proxy/unifiedmetrics/config.yml
@@ -0,0 +1,14 @@
+server:
+ name: "global"
+metrics:
+ enabled: true
+ driver: "prometheus"
+ collectors:
+ systemGc: true
+ systemMemory: true
+ systemProcess: true
+ systemThread: true
+ server: true
+ world: true
+ tick: true
+ events: true
\ No newline at end of file
diff --git a/proxy/unifiedmetrics/driver/prometheus.yml b/proxy/unifiedmetrics/driver/prometheus.yml
new file mode 100644
index 0000000..f0d8fa4
--- /dev/null
+++ b/proxy/unifiedmetrics/driver/prometheus.yml
@@ -0,0 +1,16 @@
+mode: "HTTP"
+http:
+ host: "0.0.0.0"
+ port: 9100
+ authentication:
+ scheme: "NONE"
+ username: "username"
+ password: "password"
+pushGateway:
+ job: "unifiedmetrics"
+ url: "http://pushgateway:9091"
+ authentication:
+ scheme: "NONE"
+ username: "username"
+ password: "password"
+ interval: 10
diff --git a/proxy/velocity.toml b/proxy/velocity.toml
new file mode 100644
index 0000000..8e6002d
--- /dev/null
+++ b/proxy/velocity.toml
@@ -0,0 +1,159 @@
+# Config version. Do not change this
+config-version = "2.7"
+
+# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25565.
+bind = "0.0.0.0:25565"
+
+# What should be the MOTD? This gets displayed when the player adds your server to
+# their server list. Only MiniMessage format is accepted.
+motd = "There is no Garde Studios Minecraft 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 = 20
+
+# 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 = "modern"
+
+# 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 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.
+main = "100.80.35.55:30000"
+fallback = "localhost:30000"
+
+
+# In what order we should try servers when a player logs in or is kicked from a server.
+try = [
+ "main",
+ "fallback"
+]
+
+[forced-hosts]
+# Configure your forced hosts here.
+"cloud.cyperpunk.de" = [
+ "main"
+]
+
+"garde-studios.de" = [
+ "fallback"
+]
+
+
+[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 = true
+
+# Enables logging of player connections when connecting to the proxy, switching servers
+# and disconnecting from the proxy.
+log-player-connections = true
+
+# Allows players transferred from other hosts via the
+# Transfer packet (Minecraft 1.20.5) to be received.
+accepts-transfers = false
+
+[query]
+# Whether to enable responding to GameSpy 4 query responses or not.
+enabled = true
+
+# If query is enabled, on what port should the query protocol listen on?
+port = 25565
+
+# This is the map name that is reported to the query services.
+map = "Mappie"
+
+# Whether plugins should be shown in query response by default or not
+show-plugins = false