diff --git a/.github/workflows/cd.prod.yml b/.github/workflows/cd.prod.yml
index 0da4ee8d4..abe30d329 100644
--- a/.github/workflows/cd.prod.yml
+++ b/.github/workflows/cd.prod.yml
@@ -11,7 +11,7 @@ jobs:
         uses: actions/checkout@v3
 
       - name: Build image
-        run: docker build -t anchor-python-bp-prod:latest -f docker/prod/Dockerfile .
+        run: docker build -t anchor-python-bp-prod:latest -f Dockerfile .
 
       - name: Save image 
         run: docker save anchor-python-bp-prod:latest | gzip > prod.tar.gz
@@ -23,7 +23,7 @@ jobs:
           username: ${{ secrets.USERNAME }}
           password: ${{ secrets.PASSWORD }}
           source: "prod.tar.gz"
-          target: "/home/${{ secrets.USERNAME }}/boilerplate-python/prod_source_code/docker/prod"
+          target: "/home/${{ secrets.USERNAME }}/boilerplate-python/prod_source_code"
  
       - name: Deploy image on server
         uses: appleboy/ssh-action@v0.1.8
@@ -32,8 +32,8 @@ jobs:
           username: ${{ secrets.USERNAME }}
           password: ${{ secrets.PASSWORD }}
           script: |
-            cd /home/${{ secrets.USERNAME }}/boilerplate-python/prod_source_code/docker/prod
+            cd /home/${{ secrets.USERNAME }}/boilerplate-python/prod_source_code
             git pull origin main
             docker load --input prod.tar.gz
-            docker-compose -f docker-compose.yml up -d
+            docker-compose -f docker-compose.prod.yml up -d
             rm -f prod.tar.gz
diff --git a/.github/workflows/cd.staging.yml b/.github/workflows/cd.staging.yml
index cf46991a3..81c6f8903 100644
--- a/.github/workflows/cd.staging.yml
+++ b/.github/workflows/cd.staging.yml
@@ -11,7 +11,7 @@ jobs:
         uses: actions/checkout@v3
 
       - name: Build image
-        run: docker build -t anchor-python-bp-staging:latest -f docker/staging/Dockerfile .
+        run: docker build -t anchor-python-bp-staging:latest -f Dockerfile .
 
       - name: Save image 
         run: docker save anchor-python-bp-staging:latest | gzip > staging.tar.gz
@@ -23,7 +23,7 @@ jobs:
           username: ${{ secrets.USERNAME }}
           password: ${{ secrets.PASSWORD }}
           source: "staging.tar.gz"
-          target: "/home/${{ secrets.USERNAME }}/boilerplate-python/staging_source_code/docker/staging"
+          target: "/home/${{ secrets.USERNAME }}/boilerplate-python/staging_source_code"
  
       - name: Deploy image on server
         uses: appleboy/ssh-action@v0.1.8
@@ -32,8 +32,8 @@ jobs:
           username: ${{ secrets.USERNAME }}
           password: ${{ secrets.PASSWORD }}
           script: |
-            cd /home/${{ secrets.USERNAME }}/boilerplate-python/staging_source_code/docker/staging
+            cd /home/${{ secrets.USERNAME }}/boilerplate-python/staging_source_code
             git pull origin staging
             docker load --input staging.tar.gz
-            docker-compose -f docker-compose.yml up -d
+            docker-compose -f docker-compose.staging.yml up -d
             rm -f staging.tar.gz
diff --git a/docker/prod/docker-compose.prod.yml b/docker-compose.prod.yml
similarity index 100%
rename from docker/prod/docker-compose.prod.yml
rename to docker-compose.prod.yml
diff --git a/docker/staging/docker-compose.staging.yml b/docker-compose.staging.yml
similarity index 100%
rename from docker/staging/docker-compose.staging.yml
rename to docker-compose.staging.yml
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 000000000..57cf66b4e
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,36 @@
+services:
+  app_dev:
+    image: anchor-python-bp-dev:latest
+    command: ["sh", "-c", "alembic upgrade head && uvicorn main:app --host 0.0.0.0 --port 7001 --reload"]
+    container_name: app_dev
+    networks:
+      - hng-network
+    restart: unless-stopped
+    ports:
+      - 7006:7001
+    working_dir: /app 
+    volumes:
+      - .env:/app/.env    
+    depends_on:
+      - dev_db
+
+  dev_db:
+    image: postgres:14.12
+    container_name: dev_db
+    restart: always
+    volumes:
+      - dev_db:/var/lib/postgresql/data
+      - .env:/app/.env
+    environment:
+      - POSTGRES_PASSWORD=${DB_PASSWORD?Variable not set}
+      - POSTGRES_USER=${DB_USER?Variable not set}
+      - POSTGRES_DB=${DB_NAME?Variable not set}
+    networks:
+      - hng-network
+
+volumes:
+  dev_db:
+
+networks:
+  hng-network:
+    driver: bridge
\ No newline at end of file
diff --git a/docker/prod/Dockerfile b/docker/prod/Dockerfile
deleted file mode 100644
index 0a84aa847..000000000
--- a/docker/prod/Dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-# Use an official Python runtime as the base image
-FROM python:3.12-alpine
-
-# Set environment variables
-ENV PYTHONDONTWRITEBYTECODE=1
-ENV PYTHONUNBUFFERED=1
-ENV PYTHONPATH=/app
-# Set the working directory in the container
-WORKDIR /app
-
-# Install system dependencies
-RUN apk add --no-cache curl
-
-#copy the requirements.txt file and install with pip
-COPY ./requirements.txt /app/requirements.txt
-RUN pip install --no-cache-dir --upgrade -r requirements.txt
-
-# Copy the rest of the backend files
-COPY . /app/
-
-# Expose the port the app runs on
-EXPOSE 7001
-
-# Command to run the application
-CMD ["/bin/sh", "-c", "uvicorn main:app --host 0.0.0.0 --port 7001 --reload"]
\ No newline at end of file
diff --git a/docker/staging/Dockerfile b/docker/staging/Dockerfile
deleted file mode 100644
index 0a84aa847..000000000
--- a/docker/staging/Dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-# Use an official Python runtime as the base image
-FROM python:3.12-alpine
-
-# Set environment variables
-ENV PYTHONDONTWRITEBYTECODE=1
-ENV PYTHONUNBUFFERED=1
-ENV PYTHONPATH=/app
-# Set the working directory in the container
-WORKDIR /app
-
-# Install system dependencies
-RUN apk add --no-cache curl
-
-#copy the requirements.txt file and install with pip
-COPY ./requirements.txt /app/requirements.txt
-RUN pip install --no-cache-dir --upgrade -r requirements.txt
-
-# Copy the rest of the backend files
-COPY . /app/
-
-# Expose the port the app runs on
-EXPOSE 7001
-
-# Command to run the application
-CMD ["/bin/sh", "-c", "uvicorn main:app --host 0.0.0.0 --port 7001 --reload"]
\ No newline at end of file