diff --git a/Dockerfile b/Dockerfile
index a5cca0a875aca371469befc7c5dee6fc81c2f591..f11e9a217129b195ad3efa8d1a21179f76a37042 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,18 +1,29 @@
-FROM ghcr.io/enricoros/big-agi:development
+FROM node:22-alpine
 
+RUN apk add --no-cache git
 RUN apk add --no-cache openssl
 
 WORKDIR /app
-RUN mv middleware_BASIC_AUTH.ts middleware.ts
+RUN git clone https://github.com/enricoros/big-AGI.git .
+
+RUN if [ -f middleware_BASIC_AUTH.ts ]; then \
+        mv middleware_BASIC_AUTH.ts middleware.ts; \
+    fi
+
+# Build the application
+ENV NODE_ENV=development
+RUN npm ci
 
 ENV NODE_ENV=production
 RUN npm run build
 
-# Copy Built app
-COPY --from=builder --chown=nextjs:nodejs /app/public ./public
-COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next
-COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules
-COPY --from=builder --chown=nextjs:nodejs /app/src/server/prisma ./src/server/prisma
+# Reduce installed packages to production-only
+RUN npm prune --production
+
+ENV NODE_ENV=production
+ENV PATH=$PATH:/app/node_modules/.bin
+
+EXPOSE 3000
 
 # Start the application
 CMD ["next", "start"]
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 0961e2f2065f4607e1c2444dbdd6bb46dfa4ef44..fc2dda330896f5bf9253de21747c615aac23755c 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,6 +1,8 @@
 services:
   big-agi:
-    build: .
+    build:
+      context: .
+      dockerfile: Dockerfile
     ports:
       - "1004:3000"
     command: [ "next", "start", "-p", "3000" ]
@@ -14,6 +16,8 @@ services:
     restart: unless-stopped
     environment:
       - POSTGRES_PRISMA_URL=postgresql://bigagi:${POSTGRES_PASSWORD}@postgres:5432/bigagi?schema=public
+      - HTTP_BASIC_AUTH_USERNAME=${HTTP_BASIC_AUTH_USERNAME}
+      - HTTP_BASIC_AUTH_PASSWORD=${HTTP_BASIC_AUTH_PASSWORD}
     depends_on:
       - postgres
 
@@ -38,3 +42,6 @@ services:
       - /var/run/docker.sock:/var/run/docker.sock
     command: --schedule "0 0 * * *" --cleanup
     restart: unless-stopped
+
+volumes:
+  postgres_data: