diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml
new file mode 100644
index 0000000000000000000000000000000000000000..facbe7422c519960ba9209cb903e54b095770d6e
--- /dev/null
+++ b/.github/workflows/dockerimage.yml
@@ -0,0 +1,41 @@
+name: Build multi-arch Docker Images via buildx
+
+on:
+  pull_request:
+    branches:
+      - master
+  push:
+    branches:
+      - master
+
+jobs:
+  docker-buildx:
+    runs-on: ubuntu-latest
+    env:
+      DOCKER_IMAGE_NAME: vx3r/wg-gen-web
+    steps:
+      -
+        name: Checkout
+        uses: actions/checkout@v1
+      -
+        name: Build Docker Images Only
+        if: github.event_name == 'pull_request'
+        uses: ilteoood/docker_buildx@master
+        with:
+          publish: false
+          tag: dev
+          dockerFile: ./Dockerfile
+          platform: linux/amd64,linux/arm64,linux/arm/v7
+          imageName: ${{ env.DOCKER_IMAGE_NAME }}
+      -
+        name: Build and Publish Docker Images
+        if: github.event_name == 'push' && github.ref == 'refs/heads/master'
+        uses: ilteoood/docker_buildx@master
+        with:
+          publish: true
+          tag: latest
+          dockerFile: ./Dockerfile
+          platform: linux/amd64,linux/arm64,linux/arm/v7
+          imageName: ${{ env.DOCKER_IMAGE_NAME }}
+          dockerHubUser: ${{ secrets.DOCKER_LOGIN_USERNAME }}
+          dockerHubPassword: ${{ secrets.DOCKER_LOGIN_PASSWORD }}
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3559382c53ca7c944e67482684ba958fe57dd6ce..a17c0c5e0a6123282a8a10f62965947362518036 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -7,7 +7,7 @@ build:
   image: docker:latest
   script:
     - docker info
-    - docker build --network br_docker --tag ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA} --tag ${CI_REGISTRY_IMAGE}:latest .
+    - docker build --network br_docker --tag ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA} .
 
 push:
   stage: push docker hub
@@ -17,4 +17,3 @@ push:
   script:
     - echo ${REGISTRY_PASSWORD} | docker login -u ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY}
     - docker push ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA}
-    - docker push ${CI_REGISTRY_IMAGE}:latest
diff --git a/Dockerfile b/Dockerfile
index 2a9cc34ab3f603a9cced1f1b0a926b897a45b226..f25fe04a4aa2333270d17ff3f423f00ec9f40c65 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -8,7 +8,6 @@ WORKDIR /app
 COPY ui/package*.json ./
 RUN npm install
 COPY ui/ ./
-RUN ls -l
 RUN npm run build
 
 FROM alpine
diff --git a/README.md b/README.md
index f1bc5572fc4bec71937a685c1bc39bdc03dc244d..af50f9ccfea5149bc814b31cf81513cec4da552b 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,7 @@ Simple Web based configuration generator for [WireGuard](https://wireguard.com).
 [![Go Report Card](https://goreportcard.com/badge/github.com/vx3r/wg-gen-web)](https://goreportcard.com/report/github.com/vx3r/wg-gen-web)
 ![Gitlab pipeline status (self-hosted)](https://img.shields.io/gitlab/pipeline/vx3r/wg-gen-web?gitlab_url=https%3A%2F%2Fgitlab.127-0-0-1.fr%2F)
 [![License: WTFPL](https://img.shields.io/badge/License-WTFPL-brightgreen.svg)](http://www.wtfpl.net/about/)
+![Build multi-arch Docker Images via buildx](https://github.com/vx3r/wg-gen-web/workflows/Build%20multi-arch%20Docker%20Images%20via%20buildx/badge.svg)
 ![GitHub last commit](https://img.shields.io/github/last-commit/vx3r/wg-gen-web)
 ![Docker Pulls](https://img.shields.io/docker/pulls/vx3r/wg-gen-web)
 ![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/vx3r/wg-gen-web)