diff --git a/.github/workflows/proxy.yml b/.github/workflows/proxy.yml
index 98a69820aeb6e5db20b1d2801fcb0a04735e3771..0f427c8c21bde2bd42157b1d71f58805c612db55 100644
--- a/.github/workflows/proxy.yml
+++ b/.github/workflows/proxy.yml
@@ -1,19 +1,18 @@
 name: proxy
 
-on:    
+on:
+  release:
+    types: [created]
   push:
     # Publish `dev` as Docker `latest` image.
     branches:
       - main
     paths:
       - 'proxy/**'
-    # Publish `v1.2.3` tags as releases.
-    tags:
-      - v*
-
-  # Run tests for any PRs.
-  pull_request:
-
+  
+env:
+  RELEASE_TAG: github.event.release.name
+  
 jobs:
   # Run tests.
   # See also https://docs.docker.com/docker-hub/builds/automated-testing/
@@ -27,6 +26,39 @@ jobs:
         run: echo "To-Do Add Tests"
           
   build:
+    if: github.event_name != 'release'
+    # Ensure test job passes before pushing image.
+    needs: test
+
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        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 Docker Hub
+        uses: docker/login-action@v1
+        with:
+          username: ${{ secrets.DOCKER_HUB_USERNAME }}
+          password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
+          
+      - name: Build and push
+        uses: docker/build-push-action@v2
+        with:
+          context: ./proxy
+          platforms: linux/amd64,linux/arm64
+          push: true
+          tags: reallibrephotos/librephotos-proxy:dev
+          
+  release-job:
+    name: Releasing
+    if: github.event_name == 'release' && github.event.action == 'created'
     # Ensure test job passes before pushing image.
     needs: test