diff --git a/.forgejo/workflows/functions.yml b/.forgejo/workflows/functions.yml
index 1496e54..53e8224 100644
--- a/.forgejo/workflows/functions.yml
+++ b/.forgejo/workflows/functions.yml
@@ -16,30 +16,30 @@ jobs:
       - name: Setup `spin`
         uses: fermyon/actions/spin/setup@v1
 
-      - name: Setup Go 1.23.x
+      - name: Setup Go 1.24.x
         uses: actions/setup-go@v5
         with:
-          go-version: "1.23.x"
+          go-version: "1.24.x"
 
       - name: Setup tinygo
         uses: acifani/setup-tinygo@v2
         with:
-          tinygo-version: "0.35.0"
+          tinygo-version: "0.37.0"
           install-binaryen: "false"
 
       - name: Login to container registry
         uses: docker/login-action@v3
         with:
-          registry: code.icb4dc0.de
-          username: prskr
-          password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }}
+          registry: registry.icb4dc0.de
+          username: ${{ secrets.HARBOR_USER }}
+          password: ${{ secrets.HARBOR_TOKEN }}
 
       - name: Checkout
         uses: actions/checkout@v4
 
       - name: Build
         run: |
-          spin registry push --build code.icb4dc0.de/infrastructure/functions/${{ matrix.function }}:${{ github.sha }}
+          spin registry push --build registry.icb4dc0.de/functions/${{ matrix.function }}:${{ github.sha }}
         working-directory: ${{ matrix.function }}
 
   image_refs:
@@ -59,7 +59,7 @@ jobs:
         run: |
           for func in "comics" "blob-proxy"
           do
-            kustomize edit set image "$func=code.icb4dc0.de/infrastructure/functions/$func:${{ github.sha }}";
+            kustomize edit set image "$func=registry.icb4dc0.de/functions/$func:${{ github.sha }}";
           done
           git add kustomization.yaml
           git commit -m "chore(deploy): update image references"
diff --git a/blob-proxy/go.mod b/blob-proxy/go.mod
index 2d62073..419e7d8 100644
--- a/blob-proxy/go.mod
+++ b/blob-proxy/go.mod
@@ -1,10 +1,9 @@
 module github.com/blob_proxy
 
-go 1.23
+go 1.24
 
-require (
-	github.com/fermyon/spin-go-sdk v0.0.0-20250115171427-1ec2bbb84009
-	github.com/fermyon/spin/sdk/go/v2 v2.2.0
-)
+toolchain go1.24.1
+
+require github.com/fermyon/spin/sdk/go/v2 v2.2.0
 
 require github.com/julienschmidt/httprouter v1.3.0 // indirect
diff --git a/blob-proxy/go.sum b/blob-proxy/go.sum
index 737c5b6..c283acc 100644
--- a/blob-proxy/go.sum
+++ b/blob-proxy/go.sum
@@ -1,5 +1,3 @@
-github.com/fermyon/spin-go-sdk v0.0.0-20250115171427-1ec2bbb84009 h1:dP4VrX/4zdnjQ2dx3HBmPxbkbcnVL0Y/0NWUN7XyCyY=
-github.com/fermyon/spin-go-sdk v0.0.0-20250115171427-1ec2bbb84009/go.mod h1:9GoW1+MR0gN1OEinITtjPOzmu0dur3U6ty3pIH/gN24=
 github.com/fermyon/spin/sdk/go/v2 v2.2.0 h1:zHZdIqjbUwyxiwdygHItnM+vUUNSZ3CX43jbIUemBI4=
 github.com/fermyon/spin/sdk/go/v2 v2.2.0/go.mod h1:kfJ+gdf/xIaKrsC6JHCUDYMv2Bzib1ohFIYUzvP+SCw=
 github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=
diff --git a/blob-proxy/main.go b/blob-proxy/main.go
index 9e9a067..f06f279 100644
--- a/blob-proxy/main.go
+++ b/blob-proxy/main.go
@@ -8,8 +8,8 @@ import (
 	"os"
 	"path"
 
-	"github.com/fermyon/spin-go-sdk/variables"
 	spinhttp "github.com/fermyon/spin/sdk/go/v2/http"
+	"github.com/fermyon/spin/sdk/go/v2/variables"
 )
 
 var logLevel slog.LevelVar
diff --git a/comics/go.mod b/comics/go.mod
index f43c766..87b16c6 100644
--- a/comics/go.mod
+++ b/comics/go.mod
@@ -1,12 +1,16 @@
 module github.com/monkeyuser
 
-go 1.23
+go 1.24
 
-require github.com/fermyon/spin/sdk/go/v2 v2.2.0
+toolchain go1.24.1
 
 require (
-	github.com/PuerkitoBio/goquery v1.10.1 // indirect
-	github.com/andybalholm/cascadia v1.3.3 // indirect
-	github.com/julienschmidt/httprouter v1.3.0 // indirect
-	golang.org/x/net v0.33.0 // indirect
+	github.com/PuerkitoBio/goquery v1.10.2
+	github.com/fermyon/spin/sdk/go/v2 v2.2.0
+	github.com/julienschmidt/httprouter v1.3.0
+)
+
+require (
+	github.com/andybalholm/cascadia v1.3.3 // indirect
+	golang.org/x/net v0.37.0 // indirect
 )
diff --git a/comics/go.sum b/comics/go.sum
index 4410efb..c547aef 100644
--- a/comics/go.sum
+++ b/comics/go.sum
@@ -1,5 +1,5 @@
-github.com/PuerkitoBio/goquery v1.10.1 h1:Y8JGYUkXWTGRB6Ars3+j3kN0xg1YqqlwvdTV8WTFQcU=
-github.com/PuerkitoBio/goquery v1.10.1/go.mod h1:IYiHrOMps66ag56LEH7QYDDupKXyo5A8qrjIx3ZtujY=
+github.com/PuerkitoBio/goquery v1.10.2 h1:7fh2BdHcG6VFZsK7toXBT/Bh1z5Wmy8Q9MV9HqT2AM8=
+github.com/PuerkitoBio/goquery v1.10.2/go.mod h1:0guWGjcLu9AYC7C1GHnpysHy056u9aEkUHwhdnePMCU=
 github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM=
 github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=
 github.com/fermyon/spin/sdk/go/v2 v2.2.0 h1:zHZdIqjbUwyxiwdygHItnM+vUUNSZ3CX43jbIUemBI4=
@@ -27,8 +27,9 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
 golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
 golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
 golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
-golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
 golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
+golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c=
+golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
diff --git a/deploy/apps/blob-proxy.yaml b/deploy/apps/blob-proxy.yaml
index 89a2dd9..9f649f1 100644
--- a/deploy/apps/blob-proxy.yaml
+++ b/deploy/apps/blob-proxy.yaml
@@ -6,6 +6,8 @@ spec:
   image: blob-proxy
   executor: containerd-shim-spin
   replicas: 2
+  imagePullSecrets:
+    - name: harbor-registry-credentials
   variables:
     - name: domain_mapping
       value: '{"www.icb4dc0.de":"1661580-blog.fsn1.your-objectstorage.com","docs.supabase-operator.icb4dc0.de":"1661580-supabase-operator-docs.hel1.your-objectstorage.com"}'
diff --git a/deploy/apps/comics.yaml b/deploy/apps/comics.yaml
index 7ad7196..4a98d04 100644
--- a/deploy/apps/comics.yaml
+++ b/deploy/apps/comics.yaml
@@ -6,3 +6,5 @@ spec:
   image: "comics"
   executor: containerd-shim-spin
   replicas: 2
+  imagePullSecrets:
+    - name: harbor-registry-credentials