diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..30ec52eb7624e0f1f2918cf31dec447f6820eb5e
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,4 @@
+build/
+.gradle/
+.idea/
+node_modules/
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1bec35e570deb55a46c8665aebf9019302f5495f
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,10 @@
+<component name="ProjectCodeStyleConfiguration">
+  <code_scheme name="Project" version="173">
+    <JetCodeStyleSettings>
+      <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
+    </JetCodeStyleSettings>
+    <codeStyleSettings language="kotlin">
+      <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
+    </codeStyleSettings>
+  </code_scheme>
+</component>
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000000000000000000000000000000000000..79ee123c2b23e069e35ed634d687e17f731cc702
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+<component name="ProjectCodeStyleConfiguration">
+  <state>
+    <option name="USE_PER_PROJECT_SETTINGS" value="true" />
+  </state>
+</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 1cb24d3db54cd5de9e7158eecb29b5f0e027285c..c087b6e2aec8b196c2d44ad3e3c7fa0f179b3c3a 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,5 +4,5 @@
   <component name="FrameworkDetectionExcludesConfiguration">
     <file type="web" url="file://$PROJECT_DIR$" />
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="openjdk-22" project-jdk-type="JavaSDK" />
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" project-jdk-name="openjdk-22" project-jdk-type="JavaSDK" />
 </project>
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..0f5bb4075cf6646b8d3d96cb7b3e25a7537effb3
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,21 @@
+FROM gradle:jdk11
+
+# Set the working directory
+WORKDIR /app
+
+# Copy all files to the container
+COPY . .
+
+# Convert gradlew to Unix line endings and make it executable
+RUN sed -i 's/\r$//' gradlew && chmod +x gradlew
+
+
+# Build the app
+RUN ./gradlew clean build --no-daemon
+
+
+# Expose the application port
+EXPOSE 8080
+
+# Run the application with Kobweb
+CMD ["./gradlew", "kobwebStart", "-t"]
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..511aefefe1ad19c919a2046cd1443eed617cac3e
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,35 @@
+version: '3.9'
+services:
+  mongodbservice:
+    container_name: mongo_database
+    image: mongo:5.0
+    restart: always
+    ports:
+      - 27017:27017
+    volumes:
+      - mongo-data:/data/db
+    networks:
+      - todolist-network
+  todolistservice:
+    container_name: kobweb_backend
+    image: gradle:jdk11
+    build:
+      context: .
+      dockerfile: Dockerfile
+    ports:
+      - 8080:8080
+    environment:
+      MONGO_URL: mongodb://mongodbservice:27017
+    depends_on:
+      - mongodbservice
+    networks:
+      - todolist-network
+volumes:
+  mongo-data:
+
+networks:
+  todolist-network:
+    driver: bridge
+
+
+    
\ No newline at end of file
diff --git a/gradle.properties.txt b/gradle.properties.txt
new file mode 100644
index 0000000000000000000000000000000000000000..643758feb598c2a37870e87fd958363efe36ea6d
--- /dev/null
+++ b/gradle.properties.txt
@@ -0,0 +1,3 @@
+kotlin.code.style=official
+org.gradle.caching=true
+org.gradle.configuration-cache=true
\ No newline at end of file
diff --git a/site/build.gradle.kts b/site/build.gradle.kts
index bb9e81375ebd0c8561348387a3f439c78fa22652..1a17768205e1d9bc6b5941e6caef662315170128 100644
--- a/site/build.gradle.kts
+++ b/site/build.gradle.kts
@@ -20,6 +20,8 @@ repositories {
 group = "todo"
 version = "1.0-SNAPSHOT"
 
+
+
 kotlin {
     configAsKobwebApplication(includeServer = true)
 
diff --git a/site/src/jvmMain/kotlin/todo/data/MongoDbImp.kt b/site/src/jvmMain/kotlin/todo/data/MongoDbImp.kt
index 3633fd0b9df8dd2a06ee2d8aac4cf5bbc9285f3f..a797aea62c69716eb071210a87023788f589156c 100644
--- a/site/src/jvmMain/kotlin/todo/data/MongoDbImp.kt
+++ b/site/src/jvmMain/kotlin/todo/data/MongoDbImp.kt
@@ -20,7 +20,7 @@ fun initializeMongo(context: InitApiContext) {
 
 class MongoDbImp(): MongoDb {
 
-    private val client = MongoClient.create()
+    private val client = MongoClient.create(System.getenv("MONGO_URL"))
     private val database = client.getDatabase("todolist")
     private val tasksCollection = database.getCollection<Task>("tasks")
     private val finishedTasksCollection = database.getCollection<Task>("finishedTasks")