diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..0ffcf3a
Binary files /dev/null and b/.DS_Store differ
diff --git a/.gitignore b/.gitignore
index 7422ee6..8b3d99c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,3 +81,7 @@ backrest/backup/
backrest/repos/
semaphore/semaphore_config/config.json
semaphore/semaphore_data/database.boltdb
+mosquitto/data/
+mosquitto/log/
+mosquitto/config/
+postgres17/postgres/
diff --git a/gatus/compose.yml b/gatus/compose.yml
new file mode 100644
index 0000000..2c824a4
--- /dev/null
+++ b/gatus/compose.yml
@@ -0,0 +1,21 @@
+# https://github.com/TwiN/gatus/blob/master/.examples/docker-compose/docker-compose.yml
+
+#
+
+name: gatus
+
+services:
+ gatus:
+ image: twinproduction/gatus:latest
+ container_name: gatus
+ ports:
+ - 8080:8080
+ volumes:
+ - ./config:/config
+ networks:
+ - proxy
+
+networks:
+ proxy:
+ external: true
+
\ No newline at end of file
diff --git a/gatus/config/config.yaml b/gatus/config/config.yaml
new file mode 100644
index 0000000..82d2afb
--- /dev/null
+++ b/gatus/config/config.yaml
@@ -0,0 +1,40 @@
+
+
+ui:
+ default-sort-by: group
+
+connectivity:
+ checker:
+ target: 1.1.1.1:53
+ interval: 60s
+
+endpoints:
+ - name: website # Name of your endpoint, can be anything
+ group: Test
+ url: "https://twin.sh/health"
+ interval: 5m # Duration to wait between every status check (default: 60s)
+ conditions:
+ - "[STATUS] == 200" # Status must be 200
+ - "[BODY].status == UP" # The json path "$.status" must be equal to UP
+ - "[RESPONSE_TIME] < 300" # Response time must be under 300ms
+ alerts:
+ - type: telegram
+
+ - name: make-sure-header-is-rendered
+ group: Test
+ url: "https://example.org/"
+ interval: 60s
+ conditions:
+ - "[STATUS] == 200" # Status must be 200
+ - "[BODY] == pat(*
Example Domain
*)" # Body must contain the specified header
+ alerts:
+ - type: telegram
+
+ - name: Guacamole
+ group: Local
+ url: "http://host.docker.internal:80"
+ conditions:
+ - "[STATUS] == 200"
+ alerts:
+ - type: telegram
+
diff --git a/mariadb/.DS_Store b/mariadb/.DS_Store
new file mode 100644
index 0000000..4c5c7e8
Binary files /dev/null and b/mariadb/.DS_Store differ
diff --git a/mariadb/compose.yml b/mariadb/compose.yml
index 5721520..1b5e58d 100644
--- a/mariadb/compose.yml
+++ b/mariadb/compose.yml
@@ -9,11 +9,9 @@ services:
container_name: mariadb
restart: always
ports:
- - 3306:3306
+ - 127.0.0.1:3306:3306
environment:
- MARIADB_ROOT_PASSWORD: example
- MARIADB_USER: example-user
- MARIADB_PASSWORD: my_cool_secret
+ MARIADB_ROOT_PASSWORD: administrator
volumes:
- ./mysql:/var/lib/mysql
@@ -60,14 +58,14 @@ services:
LABEL_con1: MariaDB
SERVER_con1: mariadb
USER_con1: root
- PASSWORD_con1: example
+ PASSWORD_con1: administrator
PORT_con1: 3306
ENGINE_con1: mysql@dbgate-plugin-mysql
nocodb:
container_name: nocodb
# environment:
- # NC_DB: "mysql://mariadb:3306?u=root&p=example"
+ # NC_DB: "mysql://mariadb:3306?u=root&p=administrator"
image: "nocodb/nocodb:latest"
ports:
- "8070:8080"
diff --git a/meshdash/compose.yml b/meshdash/compose.yml
new file mode 100644
index 0000000..50a2414
--- /dev/null
+++ b/meshdash/compose.yml
@@ -0,0 +1,16 @@
+services:
+ meshdash:
+ image: rusjpmd/meshdash-runner:latest
+ container_name: meshdash
+ restart: always
+ network_mode: host
+ privileged: true
+ environment:
+ MD_SETUP_KEY: "YOUR_API_KEY_HERE"
+ MD_SETUP_URL: "https://meshdash.co.uk/user_setup_core.php"
+ volumes:
+ - /dev:/dev
+ - meshdash_data:/app/data
+
+volumes:
+ meshdash_data:
diff --git a/moodle/.env b/moodle/.env
new file mode 100644
index 0000000..cfb2ae4
--- /dev/null
+++ b/moodle/.env
@@ -0,0 +1,12 @@
+# Moodle application admin credentials
+MOODLE_USERNAME=admin
+MOODLE_PASSWORD=change_me_admin_password
+MOODLE_EMAIL=admin@example.com
+
+# Database connection details
+MOODLE_DATABASE_USER=moodle
+MOODLE_DATABASE_PASSWORD=change_me_database_password
+MOODLE_DATABASE_NAME=moodle
+
+# MariaDB root credentials
+MARIADB_ROOT_PASSWORD=change_me_root_password
diff --git a/mosquitto/compose.yml b/mosquitto/compose.yml
new file mode 100644
index 0000000..21d10f7
--- /dev/null
+++ b/mosquitto/compose.yml
@@ -0,0 +1,11 @@
+services:
+ mosquitto:
+ image: eclipse-mosquitto:2
+ container_name: mosquitto
+ restart: unless-stopped
+ ports:
+ - "1883:1883"
+ volumes:
+ - ./config/mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
+ - ./data:/mosquitto/data
+ - ./log:/mosquitto/log
diff --git a/postgres17/compose.yml b/postgres17/compose.yml
new file mode 100644
index 0000000..173cc89
--- /dev/null
+++ b/postgres17/compose.yml
@@ -0,0 +1,31 @@
+name: postgres
+
+services:
+ postgres:
+ container_name: postgres
+ image: postgres:17.6
+ restart: unless-stopped
+ ports:
+ - 5432:5432
+ environment:
+ POSTGRES_PASSWORD: postgres
+ POSTGRES_USER: postgres
+ volumes:
+ - ./postgres:/var/lib/postgresql/data
+
+ pgadmin:
+ container_name: pgadmin
+ image: dpage/pgadmin4:2025-09-02-1
+ environment:
+ PGADMIN_DEFAULT_EMAIL: admin@pgadmin.com
+ PGADMIN_DEFAULT_PASSWORD: password
+ PGADMIN_LISTEN_PORT: 80
+ ports:
+ - 15433:80
+ volumes:
+ - pgadmin:/var/lib/pgadmin
+ depends_on:
+ - postgres
+
+volumes:
+ pgadmin:
diff --git a/webstack-task/TASK.md b/webstack-task/TASK.md
new file mode 100644
index 0000000..60412fa
--- /dev/null
+++ b/webstack-task/TASK.md
@@ -0,0 +1,13 @@
+Es soll ein Webstack lokal mit Docker aufgesetzt werden.
+
+1. [nginx](https://hub.docker.com/_/nginx)
+2. [PHP](https://hub.docker.com/_/php)
+3. [sftp](https://hub.docker.com/r/atmoz/sftp)
+
+sftp um die Dateien zu übertragen und verwalten. nginx und PHP als Webserver.
+Hoste eine einfache Testanwendung auf dem Server.
+Verwende Docker Compose.
+
+Die Lehrperson soll mit deiner IP-Adresse darauf zugreifen können.
+
+Dokumentiere die Schritte hier kurz, und lade sie hoch.
diff --git a/webstack-task/app/index.html b/webstack-task/app/index.html
new file mode 100644
index 0000000..6cbc977
--- /dev/null
+++ b/webstack-task/app/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Webstack Task
+
+
+ Webstack Task
+ Wenn du das siehst, liefert Nginx aus.
+ PHP-Test öffnen
+
+
diff --git a/webstack-task/app/index.php b/webstack-task/app/index.php
new file mode 100644
index 0000000..5ccab94
--- /dev/null
+++ b/webstack-task/app/index.php
@@ -0,0 +1,9 @@
+