diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml
index 56ed6038..87259f27 100644
--- a/.forgejo/workflows/deploy.yml
+++ b/.forgejo/workflows/deploy.yml
@@ -1,15 +1,13 @@
 # yamllint disable rule:line-length rule:truthy
 ---
 name: deploy-rs
-run-name: ${{ github.actor }} - deploy-rs
 on:
-  workflow_dispatch:
   push:
     branches:
       - main
     paths:
       - 'flake.lock'
-
+  workflow_dispatch:
 env:
   SSH_OPTS: "-q -A -o StrictHostKeyChecking=no"
   TS_OPTS: "--login-server=https://headscale.sysctl.io --accept-routes --accept-dns --hostname forgejo-runner"
@@ -60,4 +58,45 @@ jobs:
             Repo:     ${{ github.repository }}
             Status:   ${{ job.status }}
             Commit:   ${{ github.sha }}
-
+  steamdeck:
+    runs-on: forgejo
+    container:
+      image: git.sysctl.io/albert/actions-images/nixos:latest
+      options: --mount type=bind,src=/dev/net/tun,dst=/dev/net/tun --privileged
+    steps:
+      - name: Add Gotify to Hosts
+        run: echo "100.64.0.5 gotify.sysctl.io" >> /etc/hosts
+      - name: Install SSH Keys
+        run: |
+          echo "${{ secrets.SSH_PRIVATE_KEY }}" > /root/.ssh/id_ed25519
+          chmod 700 /root/.ssh
+          chmod 600 /root/.ssh/id_ed25519
+      - name: Start Tailscale Daemon
+        run: |
+          tailscaled --no-logs-no-support --state=mem: &
+      - name: Connect to Headscale Network
+        run: |
+          tailscale up ${{ env.TS_OPTS }} --authkey ${{ secrets.TAILSCALE_KEY }}
+          tailscale status
+      - name: Update Repository
+        run: ssh ${{ env.SSH_OPTS }} albert@steamdeck.albert.hs.net "git -C /etc/nixos/git pull"
+      - name: NixOS Version (Pre)
+        run: ssh ${{ env.SSH_OPTS }} albert@steamdeck.albert.hs.net "nixos-version"
+      - name: Update NixOS
+        run: ssh ${{ env.SSH_OPTS }} albert@steamdeck.albert.hs.net "sudo nixos-rebuild switch --flake /etc/nixos/git"
+      - name: Update Home Manager
+        run: ssh ${{ env.SSH_OPTS }} albert@steamdeck.albert.hs.net "home-manager switch -b backup --flake /etc/nixos/git"
+      - name: NixOS Version (Post)
+        run: ssh ${{ env.SSH_OPTS }} albert@steamdeck.albert.hs.net "nixos-version"
+      - name: Send Notification
+        uses: actions/gotify-action@master
+        if: always()
+        with:
+          gotify_api_base: ${{ secrets.GOTIFY_URL }}
+          gotify_app_token: ${{ secrets.GOTIFY_TOKEN }}
+          notification_title: |
+            ${{ github.workflow }}: ${{ job.status }}
+          notification_message: |
+            Repo:     ${{ github.repository }}
+            Status:   ${{ job.status }}
+            Commit:   ${{ github.sha }}
diff --git a/.forgejo/workflows/update-flake-lock.yml b/.forgejo/workflows/update-flake-lock.yml
index 877167b1..0fb15ac2 100644
--- a/.forgejo/workflows/update-flake-lock.yml
+++ b/.forgejo/workflows/update-flake-lock.yml
@@ -5,7 +5,7 @@ on:
   schedule:
     - cron: '0 0 * * 0'  # runs weekly on Sunday at 00:00
 jobs:
-  update:
+  update-flake-lock:
     runs-on: forgejo
     container:
       image: git.sysctl.io/albert/actions-images/nixos:latest
diff --git a/.forgejo/workflows/update-steamdeck.yml b/.forgejo/workflows/update-steamdeck.yml
index 47f18e34..453c222d 100644
--- a/.forgejo/workflows/update-steamdeck.yml
+++ b/.forgejo/workflows/update-steamdeck.yml
@@ -1,11 +1,15 @@
-
 # yamllint disable rule:line-length rule:truthy
 ---
 name: update-steamdeck
 on:
-  workflow_dispatch:  # allows manual triggering
+  push:
+    branches:
+      - main
+    paths:
+      - 'flake.lock'
   schedule:
     - cron: '0 0 * * 0'  # runs weekly on Sunday at 00:00
+  workflow_dispatch:  # allows manual triggering
 env:
   SSH_HOST: "albert@steamdeck.albert.hs.net"
   SSH_OPTS: "-q -A -o StrictHostKeyChecking=no"