diff --git a/mongodb/docker-compose.yml b/mongodb/docker-compose.yml
index 1a9524966c44b1c9336420d6340ef076ea50ef3a..1509bbfd16249af2b691169e16c720425c5bdf0c 100644
--- a/mongodb/docker-compose.yml
+++ b/mongodb/docker-compose.yml
@@ -2,6 +2,7 @@ version: '3.7'
 services:
   mongodb_container:
     image: mongo:6
+    restart: unless-stopped
     environment:
       MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER}
       MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORT}
diff --git a/moodle/.env.sample b/moodle/.env.sample
new file mode 100644
index 0000000000000000000000000000000000000000..4a9dfbabfe4a49eff866e61144c135ab5ffcaf06
--- /dev/null
+++ b/moodle/.env.sample
@@ -0,0 +1,12 @@
+MOODLE_DB_NAME=moodle
+MOODLE_DB_USER=moodle
+MOODLE_MYSQL_USER=moodle
+MOODLE_DB_PASSWORD=4T6F9FWsBzILLA5SY83t
+MOODLE_URL=polaris-moodle.educacloud.de
+MOODLE_ADMIN_USER=admin
+MOODLE_ADMIN_PASSWORD=mBDL5S260gQEF3fAZQJ7
+MOODLE_ADMIN_EMAIL=support@digitallearning.gmbh
+MOODLE_SITE_NAME=Moodle
+MOODLE_DATABASE_PASSWORD=4T6F9FWsBzILLA5SY83t
+WEBSITE=
+MOODLE_MAIL_HOST=
\ No newline at end of file
diff --git a/moodle/docker-compose.yml b/moodle/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0109ed7922a123098964395ad6e62b8182b12662
--- /dev/null
+++ b/moodle/docker-compose.yml
@@ -0,0 +1,60 @@
+version: '3'
+services:
+  mariadb:
+    image: mariadb:10.6
+    environment:
+      - TZ=Europe/Berlin
+      - MARIADB_ROOT_PASSWORD=${MOODLE_DB_PASSWORD}
+      - MARIADB_USER=moodle
+      - MARIADB_PASSWORD=${MOODLE_DB_PASSWORD}
+      - MARIADB_DATABASE=moodle
+      - MARIADB_CHARACTER_SET=utf8mb4
+      - MARIADB_COLLATE=utf8mb4_unicode_ci
+    volumes:
+      - './mariadb_data:/var/lib/mysql'
+    networks:
+      - internal
+
+  moodle:
+    image: bitnami/moodle:latest
+    environment:
+      - TZ=Europe/Berlin
+      - MOODLE_DATABASE_HOST=mariadb
+      - MOODLE_DATABASE_PORT_NUMBER=3306
+      - MOODLE_DATABASE_USER=moodle
+      - MOODLE_DATABASE_NAME=moodle
+      - MOODLE_DATABASE_PASSWORD=${MOODLE_DB_PASSWORD}
+      - MOODLE_HOST=${MOODLE_URL}
+      - MOODLE_LANG=de
+      - MOODLE_SITE_NAME=${MOODLE_SITE_NAME}
+      - MOODLE_USERNAME=${MOODLE_ADMIN_USER}
+      - MOODLE_PASSWORD=${MOODLE_ADMIN_PASSWORD}
+      - MOODLE_EMAIL=${MOODLE_ADMIN_EMAIL}
+      - PHP_ENABLE_OPCACHE=yes
+      - PHP_UPLOAD_MAX_FILESIZE=1024M
+      - PHP_POST_MAX_SIZE=1024M
+      - PHP_MAX_EXECUTION_TIME=600
+      - PHP_DATE_TIMEZONE=Europe/Berlin
+      - MOODLE_SMTP_HOST=${MOODLE_MAIL_HOST}
+      - MOODLE_SMTP_PORT=587
+      - MOODLE_SMTP_PROTOCOL=tls
+    volumes:
+      - './moodle_code:/bitnami/moodle'
+      - './moodle_data:/bitnami/moodledata'
+    networks:
+      - web
+      - internal
+    labels:
+      - traefik.enable=true
+      - traefik.http.routers.${WEBSITE}.rule=Host(`${URL}`)
+      - traefik.http.routers.${WEBSITE}.tls=true
+      - traefik.http.routers.${WEBSITE}.tls.certresolver=lets-encrypt
+      - traefik.http.routers.${WEBSITE}.middlewares=security-headers@file
+    depends_on:
+      - mariadb
+
+networks:
+  web:
+    external: true
+  internal:
+    external: false
diff --git a/rights-engine/.env.sample b/rights-engine/.env.sample
index 44d0785f8645a2e395f9fb3efcc7c07f6732691b..af67df1bbaf6dae1fac14b57ab01800685c9b112 100644
--- a/rights-engine/.env.sample
+++ b/rights-engine/.env.sample
@@ -24,3 +24,6 @@ JWT_PRIVATE_KEY_PATH=backend/id_rsa
 IDP_SERVER=https://aai-test-v3.ruhr-uni-bochum.de
 IDP_ENABLED=false
 SP_HOST=polaris.digitallearning.gmbh
+PROVIDER_CONTEXTS_PULL_ENABLED=False
+PROVIDER_CONTEXTS_PULL_URL=https://example.com
+PROVIDER_CONTEXTS_PULL_TOKEN=CHANGE_ME
diff --git a/single-compose-with-moodle/.env.sample b/single-compose-with-moodle/.env.sample
new file mode 100644
index 0000000000000000000000000000000000000000..b1966ccdbe1d2e3a10a70728233a9642b925ad23
--- /dev/null
+++ b/single-compose-with-moodle/.env.sample
@@ -0,0 +1,49 @@
+URL=localhost
+DB_PASSWORD=CHANGE_ME
+DJANGO_DEVELOPMENT=false
+DATABASE_NAME=polaris
+DATABASE_USER=root
+DATABASE_PASSWORD=CHANGE_ME
+DATABASE_HOST=database
+DEBUG=False
+LRS_HOST=http://learninglocker.digitallearning.gmbh:8080
+LRS_TOKEN=CHANGE_ME
+MONGO_USER=root
+MONGO_PASSWORT=CHANGE_ME
+LRS_CONNECTION_STRING=mongodb://root:CHANGE_ME@mongodb_container:27017
+LRS_MONGO_DB_NAME=lrs
+DATA_DISCLOSURE_EXPIRATION=30
+DATA_DISCLOSURE_LOCATION=/usr/src/app/backend/data_disclosure_zips
+EMAIL_HOST=
+EMAIL_PORT=
+EMAIL_HOST_USER=
+EMAIL_HOST_PASSWORD=
+REDIS_PASSWORD=CHANGE_ME
+CELERY_BROKER_URL=redis://:CHANGE_ME@redis:6379/0
+JWT_PUBLIC_KEY_PATH=backend/id_rsa.pub
+JWT_PRIVATE_KEY_PATH=backend/id_rsa
+IDP_SERVER=https://aai-test-v3.ruhr-uni-bochum.de
+IDP_ENABLED=false
+DYNACONF_SQLALCHEMY_DATABASE_URI=postgresql://postgres:CHANGE_ME@database_analytics/analytics-engine
+DYNACONF_CELERY_BROKER_URL=redis://:CHANGE_ME@redis_db_anayltics:6379/0
+DYNACONF_CELERY_RESULT_BACKEND=redis://:CHANGE_ME@redis_db_anayltics:6379/1
+DYNACONF_ANALYTICS_BACKEND_URL=http://scheduler:5000
+DYNACONF_RIGHTS_ENGINE_BACKEND_URL=http://rights-engine:80
+POSTGRES_USER=postgres
+POSTGRES_DATABASE=analytics-engine
+POSTGRES_PASSWORD=CHANGE_ME
+SP_HOST=polaris.ruhr-uni-bochum.de
+PROVIDER_CONTEXTS_PULL_ENABLED=False
+PROVIDER_CONTEXTS_PULL_URL=https://example.com
+PROVIDER_CONTEXTS_PULL_TOKEN=CHANGE_ME
+MOODLE_DB_NAME=moodle
+MOODLE_DB_USER=moodle
+MOODLE_MYSQL_USER=moodle
+MOODLE_DB_PASSWORD=4T6F9FWsBzILLA5SY83t
+MOODLE_URL=polaris-moodle.educacloud.de
+MOODLE_ADMIN_USER=admin
+MOODLE_ADMIN_PASSWORD=mBDL5S260gQEF3fAZQJ7
+MOODLE_ADMIN_EMAIL=support@digitallearning.gmbh
+MOODLE_SITE_NAME=Moodle
+MOODLE_DATABASE_PASSWORD=4T6F9FWsBzILLA5SY83t
+MOODLE_MAIL_HOST=
diff --git a/single-compose-with-moodle/configuration/h5p_engines.yml b/single-compose-with-moodle/configuration/h5p_engines.yml
new file mode 100644
index 0000000000000000000000000000000000000000..85eb85b823685a08abbd56663259fd87035b7365
--- /dev/null
+++ b/single-compose-with-moodle/configuration/h5p_engines.yml
@@ -0,0 +1,4 @@
+h5p_statements_count_engine:
+    crontab: "*/1 * * * *"
+    repo: "https://scheduler:glpat-MsDsrHMH-k3-DzEfNRgk@gitlab.digitallearning.gmbh/polaris/engines/dummy-engine.git"
+    analytics_token: "b6a4ec069ef9f688e781161d46c2a85c14a761a4eaf0074099656c7de44a65d9"
diff --git a/single-compose-with-moodle/configuration/moodle_engines.yml b/single-compose-with-moodle/configuration/moodle_engines.yml
new file mode 100644
index 0000000000000000000000000000000000000000..485137ff3c35af36b697f9c6af0c1584fcae0b5d
--- /dev/null
+++ b/single-compose-with-moodle/configuration/moodle_engines.yml
@@ -0,0 +1,5 @@
+moodle_statements_count_engine:
+    crontab: "*/1 * * * *"
+    repo: "https://scheduler:glpat-MsDsrHMH-k3-DzEfNRgk@gitlab.digitallearning.gmbh/polaris/engines/dummy-engine.git"
+    analytics_token: "0482a0f3259c966dfddb38de867573a95995ee5e10898bb71f9ae0e99efe54ef"
+
diff --git a/single-compose-with-moodle/docker-compose.yml b/single-compose-with-moodle/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..20f3dd7270ef53c335fb980f504aa97e67652d90
--- /dev/null
+++ b/single-compose-with-moodle/docker-compose.yml
@@ -0,0 +1,188 @@
+services:
+ # MONGO DB
+  mongodb_container:
+    image: mongo:6
+    restart: always
+    environment:
+      MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER}
+      MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORT}
+    ports:
+      - 27017:27017
+    volumes:
+      - ./mongodb_data:/data/db
+
+  # RIGHTS ENGINE
+  database:
+    image: mariadb:10.6
+    restart: always
+    environment:
+      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
+      MYSQL_DATABASE: polaris
+    volumes:
+      - ./db:/var/lib/mysql
+
+  redis_db:
+    image: redis:7-alpine
+    restart: always
+    command: redis-server --requirepass ${REDIS_PASSWORD}
+
+  rights-engine:
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest
+    restart: always
+    ports:
+      - 8004:80
+    environment:
+      - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db:6379
+    depends_on:
+      - database
+      - redis_db
+      - mongodb_container
+    volumes:
+      - ".env:/usr/src/app/backend/.env"
+      - "./id_rsa.pub:/usr/src/app/backend/id_rsa.pub"
+      - "./id_rsa:/usr/src/app/backend/id_rsa"
+      - "./data_disclosure_zips/:/usr/src/app/backend/data_disclosure_zips"
+
+  beat:
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest
+    restart: always
+    entrypoint: celery
+    command: -A backend beat -l info
+    environment:
+      - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db:6379
+    depends_on:
+      - database
+      - redis_db
+      - mongodb_container
+    volumes:
+      - ".env:/usr/src/app/backend/.env"
+      - "./id_rsa.pub:/usr/src/app/backend/id_rsa.pub"
+      - "./id_rsa:/usr/src/app/backend/id_rsa"
+
+  worker:
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest
+    restart: always
+    entrypoint: celery
+    command: -A backend worker --loglevel=debug
+    environment:
+      - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db:6379
+    depends_on:
+      - database
+      - redis_db
+      - beat
+      - mongodb_container
+    volumes:
+      - ".env:/usr/src/app/backend/.env"
+      - "./id_rsa.pub:/usr/src/app/backend/id_rsa.pub"
+      - "./id_rsa:/usr/src/app/backend/id_rsa"
+      - "./data_disclosure_zips/:/usr/src/app/backend/data_disclosure_zips"
+
+  # Analytics Engine 
+  database_analytics: 
+     image: postgres:15.1-alpine
+     restart: always
+     environment:
+       - POSTGRES_DB=${POSTGRES_DATABASE}
+       - POSTGRES_USER=${POSTGRES_USER}
+       - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
+     volumes:
+       - ./database_analytics/production:/var/lib/postgresql/data
+
+  redis_db_anayltics:
+    image: redis:7-alpine
+    restart: always
+    command: redis-server --requirepass ${REDIS_PASSWORD}
+
+  scheduler:
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest
+    restart: always
+    ports:
+      - 8000:8000
+    environment:
+      - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db_anayltics:6379
+    depends_on:
+      - database
+      - redis_db_anayltics
+    volumes:
+      - ".env:/app/.env"
+      - "./configuration:/app/configuration"
+
+  beat_analytics:
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest
+    restart: always
+    entrypoint: celery
+    command: -A scheduler.worker beat -l info --scheduler celery_sqlalchemy_scheduler.schedulers:DatabaseScheduler
+    environment:
+      - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db_anayltics:6379
+    depends_on:
+      - database_analytics
+      - redis_db_anayltics
+    volumes:
+      - ".env:/app/.env"
+      - "./configuration:/app/configuration"
+
+  worker_analytics:
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest
+    restart: always
+    entrypoint: celery
+    command: -A scheduler.worker worker -l info
+    environment:
+      - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db_anayltics:6379
+    depends_on:
+      - database_analytics
+      - redis_db_anayltics
+      - beat_analytics
+    volumes:
+      - ".env:/app/.env"
+      - "./configuration:/app/configuration"
+
+  dashboard:
+    image: registry.digitallearning.gmbh/polaris/dashboard-example/dashboard-example:latest
+    restart: always
+    ports:
+      - 8005:80
+
+  moodle_mariadb:
+    image: mariadb:10.6
+    environment:
+      - TZ=Europe/Berlin
+      - MARIADB_ROOT_PASSWORD=fdslfasfleqwdsdfasdwae2wtsdfsdffh35qwsfsd
+      - MARIADB_USER=moodle
+      - MARIADB_PASSWORD=${MOODLE_DB_PASSWORD}
+      - MARIADB_DATABASE=moodle
+      - MARIADB_CHARACTER_SET=utf8mb4
+      - MARIADB_COLLATE=utf8mb4_unicode_ci
+    volumes:
+      - './mariadb_data:/var/lib/mysql'
+
+  
+  moodle:
+    image: bitnami/moodle:latest
+    environment:
+      - TZ=Europe/Berlin
+      - MOODLE_DATABASE_HOST=mariadb
+      - MOODLE_DATABASE_PORT_NUMBER=3306
+      - MOODLE_DATABASE_USER=moodle
+      - MOODLE_DATABASE_NAME=moodle
+      - MOODLE_DATABASE_PASSWORD=${MOODLE_DB_PASSWORD}
+      - MOODLE_HOST=${MOODLE_URL}
+      - MOODLE_LANG=de
+      - MOODLE_SITE_NAME=${MOODLE_SITE_NAME}
+      - MOODLE_USERNAME=${MOODLE_ADMIN_USER}
+      - MOODLE_PASSWORD=${MOODLE_ADMIN_PASSWORD}
+      - MOODLE_EMAIL=${MOODLE_ADMIN_EMAIL}
+      - PHP_ENABLE_OPCACHE=yes
+      - PHP_UPLOAD_MAX_FILESIZE=1024M
+      - PHP_POST_MAX_SIZE=1024M
+      - PHP_MAX_EXECUTION_TIME=600
+      - PHP_DATE_TIMEZONE=Europe/Berlin
+      - MOODLE_SMTP_HOST=${MOODLE_MAIL_HOST}
+      - MOODLE_SMTP_PORT=587
+      - MOODLE_SMTP_PROTOCOL=tls
+    ports:
+      - 80:9000
+    volumes:
+      - './moodle_code:/bitnami/moodle'
+      - './moodle_data:/bitnami/moodledata'
+    depends_on:
+      - moodle_mariadb
diff --git a/single-compose/.env.sample b/single-compose/.env.sample
index 9ad1aeba57ecf342d032226af8699cdfb808a777..7537613085232c1522a1f58c4760755a67a35013 100644
--- a/single-compose/.env.sample
+++ b/single-compose/.env.sample
@@ -33,3 +33,6 @@ POSTGRES_USER=postgres
 POSTGRES_DATABASE=analytics-engine
 POSTGRES_PASSWORD=CHANGE_ME
 SP_HOST=polaris.ruhr-uni-bochum.de
+PROVIDER_CONTEXTS_PULL_ENABLED=False
+PROVIDER_CONTEXTS_PULL_URL=https://example.com
+PROVIDER_CONTEXTS_PULL_TOKEN=CHANGE_ME
diff --git a/single-compose/docker-compose.yml b/single-compose/docker-compose.yml
index 2362f0190405fe8609a91469fea9b8dc62481441..db2ae149759c0c9b905cb8b460a478acde4ee8c5 100644
--- a/single-compose/docker-compose.yml
+++ b/single-compose/docker-compose.yml
@@ -27,7 +27,7 @@ services:
     command: redis-server --requirepass ${REDIS_PASSWORD}
 
   rights-engine:
-    image: registry.digitallearning.gmbh/polaris/rights-engine/rights-engine:latest
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest
     restart: always
     ports:
       - 8004:80
@@ -44,7 +44,7 @@ services:
       - "./data_disclosure_zips/:/usr/src/app/backend/data_disclosure_zips"
 
   beat:
-    image: registry.digitallearning.gmbh/polaris/rights-engine/rights-engine:latest
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest
     restart: always
     entrypoint: celery
     command: -A backend beat -l info
@@ -60,7 +60,7 @@ services:
       - "./id_rsa:/usr/src/app/backend/id_rsa"
 
   worker:
-    image: registry.digitallearning.gmbh/polaris/rights-engine/rights-engine:latest
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest
     restart: always
     entrypoint: celery
     command: -A backend worker --loglevel=debug
@@ -94,7 +94,7 @@ services:
     command: redis-server --requirepass ${REDIS_PASSWORD}
 
   scheduler:
-    image: registry.digitallearning.gmbh/polaris/analytics-engine/scheduler:latest
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest
     restart: always
     ports:
       - 8000:8000
@@ -108,7 +108,7 @@ services:
       - "./configuration:/app/configuration"
 
   beat_analytics:
-    image: registry.digitallearning.gmbh/polaris/analytics-engine/scheduler:latest
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest
     restart: always
     entrypoint: celery
     command: -A scheduler.worker beat -l info --scheduler celery_sqlalchemy_scheduler.schedulers:DatabaseScheduler
@@ -122,7 +122,7 @@ services:
       - "./configuration:/app/configuration"
 
   worker_analytics:
-    image: registry.digitallearning.gmbh/polaris/analytics-engine/scheduler:latest
+    image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest
     restart: always
     entrypoint: celery
     command: -A scheduler.worker worker -l info