diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 61d011e..5010239 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,8 +1,14 @@
 version: 2
 updates:
-- package-ecosystem: docker
-  directory: "/"
-  schedule:
-    interval: monthly
-    time: '02:00'
-  open-pull-requests-limit: 10
+  - package-ecosystem: docker
+    directory: "/"
+    schedule:
+      interval: monthly
+      time: "02:00"
+    open-pull-requests-limit: 10
+
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: monthly
+      time: "03:00"
diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml
index bede3ed..61b6d67 100644
--- a/.github/workflows/dockerimage.yml
+++ b/.github/workflows/dockerimage.yml
@@ -5,79 +5,220 @@ on:
     # Publish `master` as Docker `latest` image.
     branches:
       - master
-    
+
     # Publish `v1.2.3` tags as releases.
     tags:
       - v*
-  
-  # Run tests for any PRs.
+
+  # Run tests for PRs to `master` branch.
   pull_request:
-  
+    branches:
+      - "master"
+
 jobs:
-  test: 
-    runs-on: ubuntu-18.04
+  test:
+    runs-on: ubuntu-20.04
     steps:
-    - uses: actions/checkout@v2
-    
-    - name: Build squid image
-      run: docker build . --file Dockerfile --tag b4tman/squid
-    
-    - name: Test image
-      run: docker-compose -f docker-compose.test.yml up sut
-    
-    - name: Build 'ssl-bump' image
-      run: docker build ssl-bump --tag b4tman/squid:ssl-bump
-  
+      - uses: actions/checkout@v2
+
+      - name: Set up QEMU
+        uses: docker/setup-qemu-action@v1
+
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v1
+
+      - name: Login to DockerHub
+        if: github.event_name != 'pull_request'
+        uses: docker/login-action@v1
+        with:
+          username: b4tman
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+      - name: Cache Docker layers
+        uses: actions/cache@v2
+        with:
+          path: /tmp/.buildx-cache
+          key: ${{ runner.os }}-buildx-${{ github.sha }}
+          restore-keys: |
+            ${{ runner.os }}-buildx-
+
+      - name: Build squid image
+        uses: docker/build-push-action@v2
+        with:
+          context: .
+          push: false
+          tags: b4tman/squid
+          cache-from: type=local,src=/tmp/.buildx-cache
+          cache-to: type=local,dest=/tmp/.buildx-cache-new
+          outputs: type=image,name=b4tman/squid,push=false
+
+      # Temp fix
+      # https://github.com/docker/build-push-action/issues/252
+      # https://github.com/moby/buildkit/issues/1896
+      - name: Move cache
+        run: |
+          rm -rf /tmp/.buildx-cache
+          mv /tmp/.buildx-cache-new /tmp/.buildx-cache
+
+      - name: Test image
+        run: docker-compose -f docker-compose.test.yml up sut
+
+      - name: Build 'ssl-bump' image
+        uses: docker/build-push-action@v2
+        with:
+          context: ssl-bump
+          push: false
+          file: ssl-bump/Dockerfile
+          tags: b4tman/squid:ssl-bump
+          cache-from: type=local,src=/tmp/.buildx-cache
+          cache-to: type=local,dest=/tmp/.buildx-cache-new
+
+      # Temp fix
+      # https://github.com/docker/build-push-action/issues/252
+      # https://github.com/moby/buildkit/issues/1896
+      - name: Move cache
+        run: |
+          rm -rf /tmp/.buildx-cache
+          mv /tmp/.buildx-cache-new /tmp/.buildx-cache
+
   push:
     needs: test
-    runs-on: ubuntu-18.04
-    if: github.event_name == 'push'
+    runs-on: ubuntu-20.04
+    if: github.event_name != 'pull_request'
     steps:
-    - uses: actions/checkout@v2
-    
-    - name: Build squid image
-      run: docker build . --file Dockerfile --tag b4tman/squid
-    
-    - name: Build 'ssl-bump' image
-      run: docker build ssl-bump --tag b4tman/squid:ssl-bump
-    
-    - name: Log into registry
-      run: echo "${{ secrets.CR_PAT }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
-    
-    - name: Push squid image
-      run: |
-        IMAGE_ID=ghcr.io/${{ github.actor }}/squid
-      
-        # Strip git ref prefix from version
-        VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
-      
-        # Strip "v" prefix from tag name
-        [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
-      
-        # Use Docker `latest` tag convention
-        [ "$VERSION" == "master" ] && VERSION=latest
-      
-        echo IMAGE_ID=$IMAGE_ID
-        echo VERSION=$VERSION
-      
-        docker tag b4tman/squid $IMAGE_ID:$VERSION
-        docker push $IMAGE_ID:$VERSION
-    
-    - name: Push 'ssl-bump' image
-      run: |
-        IMAGE_ID=ghcr.io/${{ github.actor }}/squid-ssl-bump
-      
-        # Strip git ref prefix from version
-        VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
-      
-        # Strip "v" prefix from tag name
-        [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
-      
-        # Use Docker `latest` tag convention
-        [ "$VERSION" == "master" ] && VERSION=latest
-      
-        echo IMAGE_ID=$IMAGE_ID
-        echo VERSION=$VERSION
-      
-        docker tag b4tman/squid:ssl-bump $IMAGE_ID:$VERSION
-        docker push $IMAGE_ID:$VERSION
+      - uses: actions/checkout@v2
+
+      - name: Docker meta
+        id: meta
+        uses: docker/metadata-action@v3
+        with:
+          images: |
+            b4tman/squid
+            ghcr.io/b4tman/squid
+          flavor: |
+            latest=auto
+          tags: |
+            type=ref,event=branch
+            type=semver,pattern={{version}}
+            type=semver,pattern={{major}}.{{minor}}
+
+      - name: Docker meta (ssl-bump)
+        id: meta_ssl_bump
+        uses: docker/metadata-action@v3
+        with:
+          images: |
+            b4tman/squid
+            ghcr.io/b4tman/squid
+          flavor: |
+            latest=auto
+            suffix=ssl-bump
+          tags: |
+            type=ref,event=branch
+            type=semver,pattern={{version}}
+            type=semver,pattern={{major}}.{{minor}}
+
+      - name: Docker meta (ssl-bump ghcr)
+        id: meta_ssl_bump_ghcr
+        uses: docker/metadata-action@v3
+        with:
+          images: |
+            ghcr.io/b4tman/squid-ssl-bump
+          flavor: |
+            latest=auto
+          tags: |
+            type=ref,event=branch
+            type=semver,pattern={{version}}
+            type=semver,pattern={{major}}.{{minor}}
+
+      - name: Set up QEMU
+        uses: docker/setup-qemu-action@v1
+
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v1
+
+      - name: Cache Docker layers
+        uses: actions/cache@v2
+        with:
+          path: /tmp/.buildx-cache
+          key: ${{ runner.os }}-buildx-${{ github.sha }}
+          restore-keys: |
+            ${{ runner.os }}-buildx-
+
+      - name: Login to DockerHub
+        uses: docker/login-action@v1
+        with:
+          username: b4tman
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+      - name: Login to GHCR
+        uses: docker/login-action@v1
+        with:
+          registry: ghcr.io
+          username: ${{ github.repository_owner }}
+          password: ${{ secrets.CR_PAT }}
+
+      - name: Build squid image
+        uses: docker/build-push-action@v2
+        with:
+          context: .
+          push: true
+          platforms: linux/amd64,linux/arm/v7
+          tags: ${{ steps.meta.outputs.tags }}
+          labels: ${{ steps.meta.outputs.labels }}
+          cache-from: type=local,src=/tmp/.buildx-cache
+          cache-to: type=local,dest=/tmp/.buildx-cache-new
+
+      # Temp fix
+      # https://github.com/docker/build-push-action/issues/252
+      # https://github.com/moby/buildkit/issues/1896
+      - name: Move cache
+        run: |
+          rm -rf /tmp/.buildx-cache
+          mv /tmp/.buildx-cache-new /tmp/.buildx-cache
+
+      - name: Build 'ssl-bump' image
+        uses: docker/build-push-action@v2
+        with:
+          context: ssl-bump
+          push: true
+          file: ssl-bump/Dockerfile
+          platforms: linux/amd64,linux/arm/v7
+          tags: ${{ steps.meta_ssl_bump.outputs.tags }}
+          labels: ${{ steps.meta_ssl_bump.outputs.labels }}
+          cache-from: type=local,src=/tmp/.buildx-cache
+          cache-to: type=local,dest=/tmp/.buildx-cache-new
+
+      # Temp fix
+      # https://github.com/docker/build-push-action/issues/252
+      # https://github.com/moby/buildkit/issues/1896
+      - name: Move cache
+        run: |
+          rm -rf /tmp/.buildx-cache
+          mv /tmp/.buildx-cache-new /tmp/.buildx-cache
+
+      - name: Build 'ssl-bump' image for ghcr
+        uses: docker/build-push-action@v2
+        with:
+          context: ssl-bump
+          push: true
+          file: ssl-bump/Dockerfile
+          platforms: linux/amd64,linux/arm/v7
+          tags: ${{ steps.meta_ssl_bump_ghcr.outputs.tags }}
+          labels: ${{ steps.meta_ssl_bump_ghcr.outputs.labels }}
+          cache-from: type=local,src=/tmp/.buildx-cache
+          cache-to: type=local,dest=/tmp/.buildx-cache-new
+
+      # Temp fix
+      # https://github.com/docker/build-push-action/issues/252
+      # https://github.com/moby/buildkit/issues/1896
+      - name: Move cache
+        run: |
+          rm -rf /tmp/.buildx-cache
+          mv /tmp/.buildx-cache-new /tmp/.buildx-cache
+
+      - name: Update repo description
+        uses: peter-evans/dockerhub-description@v2
+        with:
+          username: b4tman
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+          repository: b4tman/app
diff --git a/README.md b/README.md
index d4b37ee..475cf94 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,19 @@
-[![Drone Build Status](https://cloud.drone.io/api/badges/b4tman/docker-squid/status.svg?ref=refs/heads/master)](https://cloud.drone.io/b4tman/docker-squid)
-![Docker Build Status](https://img.shields.io/docker/cloud/build/b4tman/squid)
+[![Drone Build Status](https://cloud.drone.io/api/badges/b4tman/docker-squid/status.svg?ref=refs/heads/master)](https://cloud.drone.io/b4tman/docker-squid)
+![Docker Build Status](https://img.shields.io/docker/cloud/build/b4tman/squid)
 ![Docker Image CI Status](https://github.com/b4tman/docker-squid/workflows/Docker%20Image%20CI/badge.svg)
 
 # docker-squid
 
 Docker Squid container based on Alpine Linux.
 
-Automated builds of the image are available on [Dockerhub](https://hub.docker.com/r/b4tman/squid).
+Automated builds of the image are available on:
+
+- DockerHub:
+  - [b4tman/squid](https://hub.docker.com/r/b4tman/squid)
+- Github:
+  - [ghcr.io/b4tman/squid](https://github.com/users/b4tman/packages/container/package/squid)
+  - [ghcr.io/b4tman/squid-armhf](https://github.com/users/b4tman/packages/container/package/squid-armhf)
+  - [ghcr.io/b4tman/squid-ssl-bump](https://github.com/users/b4tman/packages/container/package/squid-ssl-bump)
 
 # Quick Start
 
@@ -29,7 +36,6 @@ docker-compose up
 
 - **SQUID_CONFIG_FILE**: Specify the configuration file for squid. Defaults to `/etc/squid/squid.conf`.
 
-
 ## Example:
 
 ```bash
@@ -39,4 +45,4 @@ docker run -p 3128:3128 \
 	b4tman/squid
 ```
 
-This will start a squid container with your config file `/srv/docker/squid/squid.conf`. 
+This will start a squid container with your config file `/srv/docker/squid/squid.conf`.