diff --git a/analytics-engine/docker-compose.yml.local b/analytics-engine/docker-compose.yml.local
new file mode 100644
index 0000000000000000000000000000000000000000..6ee9d9f5230b20ef677ef6e0803543bf1b62edeb
--- /dev/null
+++ b/analytics-engine/docker-compose.yml.local
@@ -0,0 +1,72 @@
+services:
+  database: 
+    image: postgres:15.1-alpine
+    restart: unless-stopped
+    environment:
+      - POSTGRES_DB=${POSTGRES_DATABASE}
+      - POSTGRES_USER=${POSTGRES_USER}
+      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
+    volumes:
+      - ./db/production:/var/lib/postgresql/data
+    networks:
+        - internal
+
+  redis_db:
+    image: redis:7-alpine
+    restart: unless-stopped
+    command: redis-server --requirepass ${REDIS_PASSWORD}
+    networks:
+      - internal
+
+  scheduler:
+    image: registry.digitallearning.gmbh/polaris/analytics-engine/scheduler:latest
+    restart: unless-stopped
+    expose:
+      - 8000
+    ports:
+      - 8000:8000
+    networks:
+      - internal
+      - web
+    depends_on:
+      - database
+      - redis_db
+    volumes:
+      - ".env:/app/.env"
+      - "./configuration:/app/configuration"
+
+  beat:
+    image: registry.digitallearning.gmbh/polaris/analytics-engine/scheduler:latest
+    restart: unless-stopped
+    entrypoint: celery
+    command: -A scheduler.worker beat -l info --scheduler celery_sqlalchemy_scheduler.schedulers:DatabaseScheduler
+    networks:
+      - internal
+    depends_on:
+      - database
+      - redis_db
+    volumes:
+      - ".env:/app/.env"
+      - "./configuration:/app/configuration"
+
+  worker:
+    image: registry.digitallearning.gmbh/polaris/analytics-engine/scheduler:latest
+    restart: unless-stopped
+    entrypoint: celery
+    command: -A scheduler.worker worker -l info
+    networks:
+      - internal
+    depends_on:
+      - database
+      - redis_db
+      - beat
+    volumes:
+      - ".env:/app/.env"
+      - "./configuration:/app/configuration"
+
+      
+networks:
+  web:
+    external: true
+  internal:
+    external: false