diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5bc751ee82e26b08e12968fb27301ea30d692418..feb42d1f7c68ca0a58c7e6d3504c9d3970a1b03c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -85,8 +85,8 @@ test:
     - export SALT=$TEST_SALT
     - export ELASTICSEARCH_NODE=http://elasticsearch:9200
   script:
-    - npm i
-    - npm run test:cov
+    - pnpm i
+    - pnpm run test:cov
   coverage: /All files[^|]*\|[^|]*\s+([\d\.]+)/
   artifacts:
     when: always
diff --git a/Dockerfile b/Dockerfile
index c0e141b2fda034b28ad66b3e0785c785aa687d72..9ad57e36d048359486be7f33d1d76dfdd3e8ba66 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -9,7 +9,7 @@ COPY package*.json ./
 
 RUN chgrp -R 0 /app && chmod -R g+rwX /app
 
-RUN npm install --silent
+RUN pnpm install --silent
 
 # Bundle app source
 COPY tsconfig.build.json .
@@ -17,8 +17,8 @@ COPY tsconfig.json .
 COPY src src
 COPY scripts scripts
 
-RUN npm run build
+RUN pnpm run build
 
-CMD npm run start:prod
+CMD pnpm run start:prod
 
 EXPOSE 3000
diff --git a/scripts/mongodb-copy-prod.sh b/scripts/mongodb-copy-prod.sh
index 2dd804a0d91b9e8891f4bdc9fa52b0d1bdbc9926..3b4953090275b25216e14afadec48dc9ad2a6c2d 100755
--- a/scripts/mongodb-copy-prod.sh
+++ b/scripts/mongodb-copy-prod.sh
@@ -65,7 +65,7 @@ rm mongo_clean_users.js
 cd $CWD
 if [ "$DB_NAME" = "ram" ]; then 
   cp $DUMP_DIR/.migrate .migrate
-  if [ "$TARGET_CONTAINER_NAME" = "resin-db" ]; then npm run migrate:up; fi
+  if [ "$TARGET_CONTAINER_NAME" = "resin-db" ]; then pnpm run migrate:up; fi
 fi
 docker exec $TARGET_CONTAINER_NAME rm -rf /dump/temp/