diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..004ce00796875fe4c95e25da97a1e5d892f6f504
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,86 @@
+stages:
+  - Build
+#  - Test
+  - Docker build
+  - Deploy
+
+#services:
+#  - mongo
+
+variables:
+  CONTAINER_IMAGE: 'registry.kszk.bme.hu/bodysch/backend:$CI_COMMIT_REF_NAME'
+#  MONGODB_TEST_URI: 'mongodb://mongo/bodysch-test'
+
+Build:
+  stage: Build
+  tags: [kszk]
+  image: node:14
+  script:
+    - npm install
+  cache:
+    paths:
+      - node_modules/
+  artifacts:
+    expire_in: 1 day
+    paths:
+      - node_modules/
+
+#Test:
+#  stage: Test
+#  tags: [kszk]
+#  image: node:14
+#  script:
+#    - npm test
+#  artifacts:
+#    expire_in: 1 week
+#    paths:
+#      - junit.xml
+#    reports:
+#      junit: junit.xml
+
+Docker build:
+  stage: Docker build
+  tags: [kszk]
+  only:
+    - master
+    - dev
+  image:
+    name: gcr.io/kaniko-project/executor:debug
+    entrypoint: ['']
+  script:
+    - echo "{\"auths\":{\"registry.kszk.bme.hu\":{\"username\":\"$REGISTRY_USER\",\"password\":\"$REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
+    - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CONTAINER_IMAGE
+
+Deploy dev:
+  stage: Deploy
+  tags: [kszk-deploy] # request the custom SSH executor
+  only:
+    - dev
+  script: # your deploy logic
+    - echo "$REGISTRY_PASSWORD" | docker login registry.kszk.bme.hu --username $REGISTRY_USER --password-stdin
+    - cp docker-compose.dev.yml /home/kszk-gitlab-deployer/bodysch-dev/
+    - cd /home/kszk-gitlab-deployer/bodysch-dev/
+    - docker-compose -f docker-compose.dev.yml --no-ansi pull
+    - docker-compose -f docker-compose.dev.yml up -d
+    - docker system prune -f
+  variables:
+    SSH_HOST: donald.sch.bme.hu # required
+    SSH_USER: kszk-gitlab-deployer # default: kszk-gitlab-deployer
+    SSH_PORT: 10122 # default: 22
+
+# Deploy prod:
+#   stage: Deploy
+#   tags: [kszk-deploy] # request the custom SSH executor
+#   only:
+#     - master
+#   script: # your deploy logic
+#     - echo "$REGISTRY_PASSWORD" | docker login registry.kszk.bme.hu --username $REGISTRY_USER --password-stdin
+#     - cp docker-compose.yml /home/kszk-gitlab-deployer/kszkepzes-prod/
+#     - cd /home/kszk-gitlab-deployer/kszkepzes-prod/
+#     - docker-compose --no-ansi pull
+#     - docker-compose up -d
+#     - docker system prune -f
+#   variables:
+#     SSH_HOST: donald.sch.bme.hu # required
+#     SSH_USER: kszk-gitlab-deployer # default: kszk-gitlab-deployer
+#     SSH_PORT: 10122 # default: 22
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..4aca298855fb6289a1e0126b04c90da18f6730b3
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,8 @@
+FROM node:14
+
+WORKDIR /usr/src/app
+
+COPY . .
+
+EXPOSE 3000
+CMD ["npm", "run", "start"]
\ No newline at end of file
diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml
index c711696e309f391c1bb30a39c48e65c3ad3bbeaf..c8acc7cce54ceaad640d31a519b077128f229618 100644
--- a/docker-compose.dev.yml
+++ b/docker-compose.dev.yml
@@ -1,22 +1,21 @@
-version: "3.7"
-
-services:  
-  app:
-    image: node:alpine
-    volumes:
-      - ./:/app
-    working_dir: /app
-    depends_on:
-      - mongo
-    environment:
-      NODE_ENV: development
+version: '3.7'
+services:
+  bodysch-backend-dev:
+    container_name: bodysch-backend-dev
+    image: registry.kszk.bme.hu/bodysch/backend:dev
+    restart: always
     ports:
-      - 8000:8000
-    command: npm run start-dev
-    
-  mongo:
+      - '3030:3000'
+    links:
+      - bodysch-mongo-dev
+    env_file:
+      - .env
+    depends_on:
+      - bodysch-mongo-dev
+  bodysch-mongo-dev:
+    container_name: bodysch-mongo-dev
     image: mongo
-    expose:
-      - 27017
     volumes:
-      - ./data/db:/data/db
\ No newline at end of file
+      - ./data:/data/db
+    expose:
+      - '27017'