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 0000000..79e0f2c Binary files /dev/null and b/proxy/server-icon.png differ 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