diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..915e79c
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,22 @@
+FROM golang:1.19 as go
+
+COPY ./api /api
+WORKDIR /api
+RUN go build -o /api/main /api/*.go 
+
+FROM node as node
+
+COPY ./app /app
+WORKDIR /app
+ENV NODE_ENV=production
+RUN npm install
+RUN npm install && npm run build
+
+FROM debian
+
+COPY --from=go /api/main /main
+COPY --from=node /app/www /api/www
+
+EXPOSE 8080
+
+CMD [ "/main" ]
\ No newline at end of file
diff --git a/docker-compose.yaml b/docker-compose.yaml
new file mode 100644
index 0000000..383c95b
--- /dev/null
+++ b/docker-compose.yaml
@@ -0,0 +1,51 @@
+version: '3.7'
+
+services:
+
+  clndr:
+    build: ./
+    ports: 
+      - 8080:8080
+    volumes:
+      - /data:/data
+      - /var/run/docker.sock:/var/run/docker.sock
+
+  test:
+    image: golang:1.19
+    volumes:
+      - ./api:/api
+      - testdata:/data
+      - test:/root/go
+      - /var/run/docker.sock:/var/run/docker.sock
+    environment:
+      - GOPATH=/root/go
+      - HASHKEY=test
+      - BLOCKKEY=test
+      - CSRFKEY=test
+    working_dir: /api
+    command: go test ./test/...
+   
+  air:
+    image: cosmtrek/air
+    volumes:
+      - ./api:/api
+      - ./app/www:/api/www
+      - ./data:/data
+      - /var/run/docker.sock:/var/run/docker.sock
+    working_dir: /api
+    ports: 
+      - 8080:8080
+      
+
+  stencil:
+    image: node
+    volumes:
+      - ./app:/app
+    ports:
+      - 1234:1234
+    working_dir: /app
+    command: sh -c "npm install && npm run start"
+  
+volumes:
+  test:
+  testdata:
\ No newline at end of file