Compare commits

...

11 Commits
main ... main

Author SHA1 Message Date
18003e7813 Added deployment strategie for garde-studios.de 2024-11-16 22:57:04 +01:00
101a598f6f Added prometheus with scrape options 2024-11-16 22:26:23 +01:00
f839fa454e WIP: changed project layout | added unified metrics 2024-11-16 22:05:08 +01:00
349a7cff3d Change in villiagernames.json5 Merge pull request 'config / villagernames.json5 verändert' (#2) from Athro-HIro/new:main into main
Reviewed-on: https://git.cyperpunk.de/Garde-Studios/new/pulls/2
2024-11-12 21:45:40 +01:00
e16988435c config / villagernames.json5 verändert
in Zeile 9 von false auf true gesetzt damit auch die Standardnamen von der Villigernames mod benutzt werden
in Zeile 15 von false auf true gesetzt damit der Job vor dem Namen im TradeScreen gezeigt wird
2024-11-11 17:27:06 +01:00
c4daa73481 Added Architecture Overview to Assets 2024-11-11 02:59:38 +01:00
phil
a3444bf9b4 Edited README | Providing Config Files generated by previously added mods 2024-11-11 02:32:14 +01:00
d39a71fb8d Changed to Major Fabric API Version 2024-11-11 02:04:01 +01:00
cab4e7d8fe Changed world generation seed 2024-11-10 19:49:27 +01:00
f5f96d86ad Added squaremap component features and config files -> Tested 2024-11-10 19:46:03 +01:00
c96061dc4e Merge pull request 'mods.txt aktualisiert' (#1) from CapLoa/new:main into main
Reviewed-on: https://git.cyperpunk.de/Garde-Studios/new/pulls/1
2024-11-10 19:44:48 +01:00
44 changed files with 1152 additions and 11 deletions

4
.gitignore vendored
View File

@ -1 +1,5 @@
/data
/squaremap/data
/squaremap/web
/squaremap/locale
.DS_Store

View File

@ -1,4 +1,72 @@
# NEW MC Server - Powered by Garde Studios
Testing WebHook
## Development
### (Prerequisite) Install Docker
Go to the Website [docker.com](https://www.docker.com/) and download the Docker Desktop Version for you're Operating System.
In case you're using Linux find a guide on the internet. For RHEL/Fedora/CentOS/Rocky Linux the setup process is as follows:
```bash
sudo dnf check-update # Update System
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # Add the docker repo to dnf
sudo dnf install docker-ce docker-ce-cli containerd.io -y # Install docker engine
sudo systemctl start docker # start docker deamon
sudo systemctl enable docker # enable docker deamon on startup
sudo usermod -aG docker $(whoami) # elevate user to use docker cmd
```
### Starting the Server
> [!WARNING]
> Make sure you first configure the `docker-compose.yml` under the `environment` section to use the appropiate ammount of RAM youre system can provide.
> 16GB isn't sensible in most development/testing environments
Start a Terminal or use Docker Desktop
> [!NOTE]
> The first Startup creates the whole infrastructure behind the project and can take up some time.
> Make sure you grab some 0xCOFFE :)
#### Using Docker CLI
cd into the repo.
Start the Server:
```bash
docker compose up
```
To close it just use `ctrl+c`.
Deamon Mode:
```bash
docker compose up -d
```
To hook into the servers logs use:
```bash
docker logs <container-name>
```
Killing the server is done in two ways.
Either by killing it directly:
```bash
docker kill <container-name>
```
Or by hooking against the compose file:
```bash
docker compose down
```
## Architecture
![](assets/Architecture-Overview.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

View File

@ -0,0 +1,162 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" version="24.8.4">
<diagram name="Page-1" id="ngFJ-PK3nhXtL8uodcvB">
<mxGraphModel dx="656" dy="620" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="rkxtWGMJMKr7dUVkmx0B-43" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="30" y="150" width="660" height="225" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-8" value="" style="group" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-43">
<mxGeometry x="490" y="20" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-4" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.application_server2" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-8">
<mxGeometry x="8.5" y="30" width="43" height="50" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-7" value="cloud.cyperpunk.de" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-8">
<mxGeometry width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-10" value="" style="group" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-43">
<mxGeometry x="230" y="145" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-6" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.application_server2" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-10">
<mxGeometry x="8.5" y="30" width="43" height="50" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-9" value="garde-studios.de" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-10">
<mxGeometry x="-20" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;shape=link;" edge="1" parent="rkxtWGMJMKr7dUVkmx0B-43" source="rkxtWGMJMKr7dUVkmx0B-4" target="rkxtWGMJMKr7dUVkmx0B-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-21" value="Main Connection" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-13">
<mxGeometry x="0.0358" y="1" relative="1" as="geometry">
<mxPoint x="-1" y="-30" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.57;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="rkxtWGMJMKr7dUVkmx0B-43" source="rkxtWGMJMKr7dUVkmx0B-6" target="rkxtWGMJMKr7dUVkmx0B-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-18" value="Authenticates User" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-14">
<mxGeometry x="-0.155" relative="1" as="geometry">
<mxPoint x="17" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-16" value="" style="group" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-43">
<mxGeometry x="400" y="140" width="60" height="85" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-2" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.gateway" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-16">
<mxGeometry x="5" y="35" width="50" height="50" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-15" value="Proxy" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-16">
<mxGeometry width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-22" value="" style="group" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-43">
<mxGeometry x="230" y="20" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-23" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.application_server2" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-22">
<mxGeometry x="8.5" y="30" width="43" height="50" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-24" value="web&lt;span style=&quot;background-color: initial;&quot;&gt;.cyperpunk.de&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-22">
<mxGeometry width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.57;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;shape=link;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="rkxtWGMJMKr7dUVkmx0B-43" source="rkxtWGMJMKr7dUVkmx0B-23" target="rkxtWGMJMKr7dUVkmx0B-2">
<mxGeometry relative="1" as="geometry">
<mxPoint x="430" y="120" as="targetPoint" />
<Array as="points">
<mxPoint x="430" y="75" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-26" value="Fallback to Limbo Server" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-25">
<mxGeometry x="-0.1838" y="-1" relative="1" as="geometry">
<mxPoint x="-22" y="-1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-41" value="" style="group" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-43">
<mxGeometry width="180" height="175" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-29" value="" style="group" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-41">
<mxGeometry width="60" height="64" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-27" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.application" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-29">
<mxGeometry x="5" y="30" width="50" height="34" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-28" value="Grafana" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-29">
<mxGeometry width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-33" value="" style="group" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-41">
<mxGeometry x="120" width="60" height="64" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-34" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.application" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-33">
<mxGeometry x="5" y="30" width="50" height="34" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-35" value="Squaremap" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-33">
<mxGeometry width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-36" value="" style="group" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-41">
<mxGeometry x="60" y="90" width="60" height="85" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-37" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.gateway" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-36">
<mxGeometry x="5" y="35" width="50" height="50" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-38" value="NGINX" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-36">
<mxGeometry width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="rkxtWGMJMKr7dUVkmx0B-41" source="rkxtWGMJMKr7dUVkmx0B-37" target="rkxtWGMJMKr7dUVkmx0B-34">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="rkxtWGMJMKr7dUVkmx0B-41" source="rkxtWGMJMKr7dUVkmx0B-37" target="rkxtWGMJMKr7dUVkmx0B-27">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="rkxtWGMJMKr7dUVkmx0B-43" source="rkxtWGMJMKr7dUVkmx0B-6" target="rkxtWGMJMKr7dUVkmx0B-37">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-59" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="180" y="448" width="220" height="204" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-48" value="" style="group" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-59">
<mxGeometry y="130" width="60" height="74" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-44" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.direct_access_feature" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-48">
<mxGeometry x="5" width="50" height="44" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-47" value="MC Client" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-48">
<mxGeometry y="44" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-49" value="" style="group" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-59">
<mxGeometry x="80" y="130" width="60" height="74" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-50" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.direct_access_feature" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-49">
<mxGeometry x="5" width="50" height="44" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-51" value="MC Client" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-49">
<mxGeometry y="44" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-52" value="" style="group" vertex="1" connectable="0" parent="rkxtWGMJMKr7dUVkmx0B-59">
<mxGeometry x="160" y="130" width="60" height="74" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-53" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.direct_access_feature" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-52">
<mxGeometry x="5" width="50" height="44" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-54" value="MC Client" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-52">
<mxGeometry y="44" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-55" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.internet" vertex="1" parent="rkxtWGMJMKr7dUVkmx0B-59">
<mxGeometry x="52.74000000000001" width="114.52" height="71" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.61;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="rkxtWGMJMKr7dUVkmx0B-59" source="rkxtWGMJMKr7dUVkmx0B-50" target="rkxtWGMJMKr7dUVkmx0B-55">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.61;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.14;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="rkxtWGMJMKr7dUVkmx0B-59" source="rkxtWGMJMKr7dUVkmx0B-44" target="rkxtWGMJMKr7dUVkmx0B-55">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.61;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.87;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="rkxtWGMJMKr7dUVkmx0B-59" source="rkxtWGMJMKr7dUVkmx0B-53" target="rkxtWGMJMKr7dUVkmx0B-55">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0.03;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;shape=link;" edge="1" parent="1" source="rkxtWGMJMKr7dUVkmx0B-55" target="rkxtWGMJMKr7dUVkmx0B-6">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -1,3 +0,0 @@
server-port: 25585
update-interval: 1000
use-spark: true

View File

@ -0,0 +1,4 @@
include:
- ../proxy/compose.yml
- ../fallback/compose.yml
- ../monitoring/compose.yml

1
fallback/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/data

55
fallback/compose.yml Normal file
View File

@ -0,0 +1,55 @@
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
- 9100:9100 # unified Exporter
volumes:
- ./data:/data
- ./mods.txt:/extras/mods.txt:ro
- ./ops.json:/extras/ops.json:ro
- ./whitelist.json:/extras/whitelist.json:ro
- ./config:/config
networks: {}

View File

@ -1,4 +1,4 @@
hackOnlineMode = true
hackEarlySend = false
hackMessageChain = true
secret = "CMhgx3vF17Nu"
secret = "bGAJSlLeA4Wf"

View File

@ -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

View File

@ -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

18
fallback/mods.txt Normal file
View File

@ -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/p1ewR5kV/versions/xwRVtqbA/unifiedmetrics-platform-fabric-0.3.8.jar
https://cdn.modrinth.com/data/Ha28R6CL/versions/B0fZidZi/fabric-language-kotlin-1.12.3%2Bkotlin.2.0.21.jar
# World Edit
https://cdn.modrinth.com/data/1u6JkXh5/versions/vBzkrSYP/worldedit-mod-7.3.6.jar

1
main/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/data

View File

@ -32,7 +32,8 @@ services:
USE_AIKAR_FLAGS: true
# World & Mod Data
#WORLD: https://file.cyperpunk.de/filebrowser/api/public/dl/4FDwjgd8
#WORLD:
SEED: 795488740
MODS_FILE: /extras/mods.txt
# Whitelisting Players
WHITELIST_FILE: https://git.cyperpunk.de/Garde-Studios/Uno-MC/raw/branch/main/whitelist.json
@ -45,10 +46,11 @@ services:
ports:
- 30066:25565 # Connection Port
- 31066:25575 # Rcon
- 8080:8080 # Squaremap
- 8090:8080 # Squaremap
- 9001:25585 # Fabric Exporter
volumes:
- ./data:/data
- ./squaremap:/data/squaremap
- ./mods.txt:/extras/mods.txt:ro
- ./config:/config

View File

@ -0,0 +1,4 @@
hackOnlineMode = true
hackEarlySend = false
hackMessageChain = true
secret = "bGAJSlLeA4Wf"

View File

@ -0,0 +1,71 @@
{
"aspen_glade_enabled": true,
"auroral_garden_enabled": true,
"bayou_enabled": true,
"bog_enabled": true,
"cold_desert_enabled": true,
"coniferous_forest_enabled": true,
"crag_enabled": true,
"crystalline_chasm_enabled": true,
"dead_forest_enabled": true,
"dryland_enabled": true,
"dune_beach_enabled": true,
"end_corruption_enabled": true,
"end_reef_enabled": true,
"end_wilds_enabled": true,
"erupting_inferno_enabled": true,
"field_enabled": true,
"fir_clearing_enabled": true,
"floodplain_enabled": true,
"forested_field_enabled": true,
"fungal_jungle_enabled": true,
"glowing_grotto_enabled": true,
"grassland_enabled": true,
"gravel_beach_enabled": true,
"highland_enabled": true,
"hot_springs_enabled": true,
"jacaranda_glade_enabled": true,
"jade_cliffs_enabled": true,
"lavender_field_enabled": true,
"lush_desert_enabled": true,
"lush_savanna_enabled": true,
"maple_woods_enabled": true,
"marsh_enabled": true,
"mediterranean_forest_enabled": true,
"moor_enabled": true,
"muskeg_enabled": true,
"mystic_grove_enabled": true,
"old_growth_dead_forest_enabled": true,
"old_growth_woodland_enabled": true,
"ominous_woods_enabled": true,
"orchard_enabled": true,
"origin_valley_enabled": true,
"overgrown_greens_enabled": true,
"pasture_enabled": true,
"prairie_enabled": true,
"pumpkin_patch_enabled": true,
"rainforest_enabled": true,
"redwood_forest_enabled": true,
"rocky_rainforest_enabled": true,
"rocky_shrubland_enabled": true,
"scrubland_enabled": true,
"seasonal_forest_enabled": true,
"shrubland_enabled": true,
"snowblossom_grove_enabled": true,
"snowy_coniferous_forest_enabled": true,
"snowy_fir_clearing_enabled": true,
"snowy_maple_woods_enabled": true,
"spider_nest_enabled": true,
"tropics_enabled": true,
"tundra_enabled": true,
"undergrowth_enabled": true,
"visceral_heap_enabled": true,
"volcanic_plains_enabled": true,
"volcano_enabled": true,
"wasteland_enabled": true,
"wasteland_steppe_enabled": true,
"wetland_enabled": true,
"wintry_origin_valley_enabled": true,
"withered_abyss_enabled": true,
"woodland_enabled": true
}

View File

@ -0,0 +1,3 @@
[general]
#Add various BOP resources to the Wandering Trader trade pool.
wandering_trader_trades = true

View File

@ -0,0 +1,13 @@
[nether]
#The weighting of bop biome regions in the nether.
bop_nether_region_weight = 13
#The weighting of rare bop biome regions in the nether.
bop_nether_rare_region_weight = 2
[overworld]
#The weighting of primary bop biome regions in the overworld.
bop_primary_overworld_region_weight = 10
#The weighting of rare bop biome regions in the overworld.
bop_overworld_rare_region_weight = 2
#The weighting of secondary bop biome regions in the overworld.
bop_secondary_overworld_region_weight = 8

View File

@ -0,0 +1,48 @@
{
"trees": {
"allowedLogs": [],
"deniedLogs": [],
"allowedLeaves": [],
"allowedNonDecayLeaves": [],
"deniedLeaves": [],
"breakMode": "INSTANTANEOUS",
"detectionMode": "WHOLE_TREE",
"maxScanSize": 500,
"maxSize": 100,
"maxLeafDistanceFromLog": 15,
"maxSizeAction": "ABORT",
"breakOrder": "FURTHEST_FIRST",
"minimumLeavesAroundRequired": 1,
"includePersistentLeavesInRequiredCount": true,
"treeBreaking": true,
"leavesBreaking": true,
"leavesBreakingForceRadius": 0,
"allowMixedLogs": false,
"breakNetherTreeWarts": true,
"breakMangroveRoots": true,
"searchAreaRadius": -1,
"allowedAdjacentBlocks": [],
"adjacentStopMode": "STOP_ALL",
"spawnItemsAtBreakPoint": false
},
"tools": {
"allowed": [],
"denied": [],
"durabilityMode": "NORMAL",
"ignoreTools": false,
"damageMultiplicand": 1.0,
"damageRounding": "ROUND_DOWN",
"speedMultiplicand": 0.0,
"forceToolUsage": false
},
"player": {
"allowedTags": []
},
"enchantment": {
"requireEnchantment": false
},
"sneakMode": "SNEAK_DISABLE",
"breakInCreative": false,
"lootInCreative": true,
"notificationMode": "ACTION_BAR"
}

View File

@ -0,0 +1,55 @@
{
"checkForNewUpdates": false,
"enableCopperGolem": true,
"generateCopperGolemAreaStructure": true,
"copperGolemAreaStructureWeight": 1,
"generateCopperGolemInAncientCity": true,
"copperGolemAncientCityCenterWeight": 10,
"enableCrab": true,
"enableCrabSpawn": true,
"crabSpawnWeight": 14,
"crabSpawnMinGroupSize": 2,
"crabSpawnMaxGroupSize": 4,
"reachingStatusEffectModifier": 1,
"enableGlare": true,
"enableGlareSpawn": true,
"enableGlareGriefing": true,
"glareSpawnWeight": 4,
"glareSpawnMinGroupSize": 1,
"glareSpawnMaxGroupSize": 1,
"enableMauler": true,
"enableMaulerSpawn": true,
"maulerDesertSpawnWeight": 8,
"maulerDesertSpawnMinGroupSize": 1,
"maulerDesertSpawnMaxGroupSize": 1,
"maulerBadlandsSpawnWeight": 16,
"maulerBadlandsSpawnMinGroupSize": 1,
"maulerBadlandsSpawnMaxGroupSize": 1,
"maulerSavannaSpawnWeight": 32,
"maulerSavannaSpawnMinGroupSize": 1,
"maulerSavannaSpawnMaxGroupSize": 1,
"enableMoobloom": true,
"enableMoobloomSpawn": true,
"moobloomSpawnWeight": 4,
"moobloomSpawnMinGroupSize": 2,
"moobloomSpawnMaxGroupSize": 4,
"enableIceologer": true,
"enableIceologerSpawn": true,
"enableIceologerInRaids": true,
"generateIceologerCabinStructure": true,
"enableIllusioner": true,
"enableIllusionerSpawn": true,
"enableIllusionerInRaids": true,
"generateIllusionerShackStructure": true,
"generateIllusionerTrainingGroundsStructure": true,
"enableZombieHorseTrap": true,
"enableRascal": true,
"enableRascalSpawn": true,
"enableTuffGolem": true,
"generateTuffGolemInStronghold": true,
"enableWildfire": true,
"generateCitadelStructure": true,
"enableBeekeeperVillagerProfession": true,
"generateBeekeeperAreaStructure": true,
"beekeeperAreaStructureWeight": 2
}

View File

@ -0,0 +1,91 @@
{
"clientConfig": {
"frostOverlayStart": 0.5,
"doColdHeartOverlay": true,
"renderDripParticles": true,
"disableFrostOverlayWhenWearingFrostologyCloak": true,
"shakeHandWhenShivering": true,
"handShakeIntensity": 1.0
},
"updateConfig": {
"currentConfigVersion": 2,
"enableConfigUpdates": true
},
"environmentConfig": {
"doDryBiomeNightFreezing": true,
"nightTemperatureShift": -1,
"coldBiomeTemperatureChange": -1,
"freezingBiomeTemperatureChange": -3,
"rainWetnessIncrease": 1,
"touchingWaterWetnessIncrease": 5,
"dryRate": 1,
"onFireDryDate": 50,
"onFireWarmRate": 50,
"powderSnowFreezeRate": 30,
"warmthPerLightLevel": 2,
"minLightForWarmth": 5,
"ultrawarmWarmRate": 15,
"enableSeasonsIntegration": true
},
"combatConfig": {
"doChillagerPatrols": true,
"straysCarryFrostArrows": true,
"maxFrostSpellDistance": 25.0,
"frostWandCooldown": 120,
"frostWandRootTime": 100,
"frostologerHeatDrainPerTick": 30,
"packedSnowballFreezeAmount": 500,
"packedSnowballDamage": 2.0,
"packedSnowballVulnerableTypesDamage": 5.0,
"frostologerPassiveFreezingPerTick": 2,
"frostologerMaxPassiveFreezing": 0.5,
"biterFrostBiteMaxAmplifier": 2,
"chillagerFireDamageMultiplier": 1.5,
"frostologerIntolerableHeat": 9,
"furUpgradeTemplateGenerateChance": 0.5,
"skateUpgradeTemplateGenerateChance": 0.33,
"veryProtectiveFrostResistanceMultiplier": 1.0,
"protectiveFrostResistanceMultiplier": 0.5
},
"freezingConfig": {
"doPassiveFreezing": true,
"doWindSpawning": true,
"windSpawnStrategy": "POINT",
"spawnWindInAir": true,
"windDestroysTorches": true,
"doSnowPacking": true,
"passiveFreezingTickInterval": 1,
"windSpawnCapPerSecond": 15,
"windSpawnRarity": 750,
"windSpawnRarityThunder": 500,
"maxPassiveFreezingPercent": 1.0,
"passiveFreezingWetnessScaleMultiplier": 2.1,
"soakPercentFromWaterPotion": 0.5,
"sunLichenHeatPerLevel": 500,
"sunLichenBurnTime": 60,
"campfireWarmthSearchRadius": 10.0,
"campfireWarmthTime": 1200,
"freezingWindFrost": 160,
"conduitPowerWarmthPerTick": 12,
"heatFromHotFloor": 12,
"shiverBelow": -0.51,
"shiverWarmth": 1,
"stopShiverWarmingBelowFoodLevel": 10,
"warmFoodWarmthTime": 1200
},
"icicleConfig": {
"iciclesFormInWeather": true,
"becomeUnstableChance": 0.05,
"growChance": 0.02,
"growChanceDuringRain": 0.09,
"growChanceDuringThunder": 0.15,
"frostArrowFreezeAmount": 1000,
"thrownIcicleFreezeAmount": 1500,
"icicleCollisionFreezeAmount": 3000,
"maxLightLevelToForm": 8,
"minSkylightLevelToForm": 11,
"thrownIcicleDamage": 1.0,
"thrownIcicleExtraDamage": 3.0,
"thrownIcicleCooldown": 10
}
}

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,20 @@
{
// Use the custom name list, editable in ./mods/villagernames/customnames.txt, seperated by a comma. If custom names are found, the default name list is ignored.
"useCustomNames": true,
// Use the list of pre-defined female names when naming villagers.
"useDefaultFemaleNames": true,
// Use the list of pre-defined male names when naming villagers.
"useDefaultMaleNames": true,
// Disabled by default. Whether both custom and default names should be used to name villagers. Custom names will probably not be chosen often due to the amount of default names.
"useBothCustomAndDefaultNames": true,
// If enabled, also gives modded villagers a name. If you've found a 'villager'-entity that isn't named let me know by opening an issue so I can add it in.
"nameModdedVillagers": true,
// Whether the profession should be added to the villager's trade screen next to their name.
"showProfessionOnTradeScreen": true,
// If enabled, switches the name and profession on the villager trading screen. Result: <profession> - <name>.
"switchNameAndProfessionTradeScreen": true,
// Whether the merchant level (novice, apprentice etc.) should be hidden on the trade screen.
"hideMerchantLevelTradeScreen": false,
// If enabled, the mod capitalizes each word in the custom name list.
"shouldCapitalizeNames": true
}

View File

@ -1,5 +1,5 @@
# Fabric API
https://cdn.modrinth.com/data/P7dR8mSH/versions/bK6OgzFj/fabric-api-0.102.1%2B1.21.1.jar
https://cdn.modrinth.com/data/P7dR8mSH/versions/thGkUOxt/fabric-api-0.107.0%2B1.21.1.jar
# Cloth Config API
https://cdn.modrinth.com/data/9s6osm5g/versions/7jtvrmVP/cloth-config-15.0.130-fabric.jar
@ -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
@ -82,4 +82,4 @@ https://cdn.modrinth.com/data/cnIatHrN/versions/BfXSBkjs/universal_shops-1.7.1%2
https://cdn.modrinth.com/data/8oi3bsk5/versions/81gyNzd0/Terralith_1.21.x_v2.5.6.jar
https://cdn.modrinth.com/data/DjLobEOy/versions/MntMLupc/t_and_t-neoforge-fabric-1.13.2.jar
https://cdn.modrinth.com/data/DjLobEOy/versions/MntMLupc/t_and_t-neoforge-fabric-1.13.2.jar

32
main/ops.json Normal file
View File

@ -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
}
]

View File

@ -0,0 +1,59 @@
config-version: 3
world-settings:
default:
invisible-blocks:
- minecraft:tall_grass
- minecraft:fern
- minecraft:short_grass
- minecraft:large_fern
iterate-up-base-blocks:
- minecraft:netherrack
- minecraft:glowstone
- minecraft:soul_sand
- minecraft:soul_soil
- minecraft:gravel
- minecraft:warped_nylium
- minecraft:crimson_nylium
- minecraft:nether_gold_ore
- minecraft:ancient_debris
- minecraft:nether_quartz_ore
- minecraft:magma_block
- minecraft:basalt
color-overrides:
biomes:
foliage:
minecraft:jungle: '#1f8907'
minecraft:mangrove_swamp: '#6f9623'
minecraft:sparse_jungle: '#1f8907'
minecraft:bamboo_jungle: '#1f8907'
minecraft:dark_forest: '#1c7b07'
grass: {}
water: {}
blocks:
minecraft:azure_bluet: '#F7F7F7'
minecraft:oxeye_daisy: '#D6E8E8'
minecraft:glass: '#FFFFFF'
minecraft:white_tulip: '#D6E8E8'
minecraft:mycelium: '#6F6265'
minecraft:spruce_leaves: '#619961'
minecraft:pink_tulip: '#EBC5FD'
minecraft:rose_bush: '#9B221A'
minecraft:blue_orchid: '#2ABFFD'
minecraft:orange_tulip: '#BD6A22'
minecraft:peony: '#EBC5FD'
minecraft:sunflower: '#FFEC4F'
minecraft:allium: '#B878ED'
minecraft:wither_rose: '#211A16'
minecraft:birch_leaves: '#80A755'
minecraft:lava: '#EA5C0F'
minecraft:lily_of_the_valley: '#FFFFFF'
minecraft:poppy: '#ED302C'
minecraft:attached_melon_stem: '#E0C71C'
minecraft:red_tulip: '#9B221A'
minecraft:dandelion: '#FFEC4F'
minecraft:pink_petals: '#FFB4DB'
minecraft:attached_pumpkin_stem: '#E0C71C'
minecraft:lilac: '#B66BB2'
minecraft:cornflower: '#466AEB'
minecraft:terracotta: '#9E6246'
minecraft:lily_pad: '#208030'

95
main/squaremap/config.yml Normal file
View File

@ -0,0 +1,95 @@
config-version: 2
settings:
commands:
main-command-label: squaremap
main-command-aliases:
- map
render-progress-logging:
enabled: true
interval-seconds: 1
language-file: lang-en.yml
debug-mode: false
update-checker: false
web-address: http://localhost:8080
web-directory:
path: web
auto-update: true
image-quality:
compress-images:
enabled: true
value: 0.5
internal-webserver:
enabled: true
bind: 0.0.0.0
port: 8080
flush-json-immediately: false
ui:
coordinates:
enabled: true
link:
enabled: true
sidebar:
pinned: pinned
world-settings:
default:
map:
enabled: true
display-name: '{world} @ Garde Studios'
order: 0
icon: ''
max-render-threads: -1
iterate-up: false
max-height: -1
biomes:
enabled: true
blend-biomes: 3
glass:
clear: true
lava:
checkerboard: true
water:
clear-depth: true
checkerboard: false
zoom:
maximum: 3
default: 3
extra: 2
background-render:
enabled: true
max-chunks-per-interval: 1024
interval-seconds: 15
max-render-threads: -1
markers:
update-interval-seconds: 5
spawn-icon:
enabled: true
show-controls: true
default-hidden: false
layer-priority: 0
z-index: 0
world-border:
enabled: true
show-controls: true
default-hidden: false
layer-priority: 1
z-index: 1
visibility-limits:
- type: world-border
enabled: 'false'
player-tracker:
enabled: true
update-interval-seconds: 1
show-controls: true
default-hidden: false
layer-priority: 2
z-index: 2
nameplate:
enabled: true
show-head: true
heads-url: https://mc-heads.net/avatar/{uuid}/16
show-armor: true
show-health: true
hide:
invisible: true
spectators: true
use-display-names: false

22
main/whitelist.json Normal file
View File

@ -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"
}
]

3
monitoring/compose.yml Normal file
View File

@ -0,0 +1,3 @@
include:
- grafana/compose.yml
- prometheus/compose.yml

View File

@ -0,0 +1,13 @@
services:
grafana:
image: grafana/grafana-oss
container_name: grafana
restart: unless-stopped
user: '1000'
volumes:
- grafana-storage:/var/lib/grafana
ports:
- 3000:3000
volumes:
grafana-storage: {}

0
monitoring/prometheus/.gitignore vendored Normal file
View File

View File

@ -0,0 +1,9 @@
services:
prometheus:
image: prom/prometheus
container_name: prometheus
restart: unless-stopped
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- 9090:9090

View File

@ -0,0 +1,19 @@
global:
scrape_interval: 10s
scrape_configs:
# This instance scraper
- job_name: 'prometheus'
static_configs:
- targets:
- prometheus:9090
# Server Scrapers
- job_name: 'mc-server'
static_configs:
- targets: ['100.113.167.128:9100']
labels:
instance: 'Fallback'
- targets: ['100.80.35.55:9100']
labels:
instance: 'Main'

22
proxy/compose.yml Normal file
View File

@ -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
- proxy:/server
ports:
- 25565:25565
volumes:
proxy: {}

1
proxy/forwarding.secret Normal file
View File

@ -0,0 +1 @@
bGAJSlLeA4Wf

BIN
proxy/server-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@ -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

View File

@ -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

159
proxy/velocity.toml Normal file
View File

@ -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 = "<yellow>There is no </yellow><b><dark_purple>Garde Studios</dark_purple></b> <color:#1cff27>Minecraft Server</color><yellow>!</yellow>"
# 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 <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.
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