diff --git a/.forgejo/workflows/renovate.yml b/.forgejo/workflows/renovate.yml
index 3008a8bc71..a98718626a 100644
--- a/.forgejo/workflows/renovate.yml
+++ b/.forgejo/workflows/renovate.yml
@@ -22,7 +22,7 @@ jobs:
 
     runs-on: docker
     container:
-      image: ghcr.io/visualon/renovate:38.9.0
+      image: code.forgejo.org/forgejo-contrib/renovate:38.9.0
 
     steps:
       - name: Load renovate repo cache
diff --git a/Makefile b/Makefile
index 7762494f68..888ea85d78 100644
--- a/Makefile
+++ b/Makefile
@@ -39,7 +39,7 @@ GOVULNCHECK_PACKAGE ?= golang.org/x/vuln/cmd/govulncheck@v1 # renovate: datasour
 DEADCODE_PACKAGE ?= golang.org/x/tools/cmd/deadcode@v0.23.0 # renovate: datasource=go
 GOMOCK_PACKAGE ?= go.uber.org/mock/mockgen@v0.4.0 # renovate: datasource=go
 GOPLS_PACKAGE ?= golang.org/x/tools/gopls@v0.16.1 # renovate: datasource=go
-RENOVATE_NPM_PACKAGE ?= renovate@38.9.0 # renovate: datasource=docker packageName=ghcr.io/visualon/renovate
+RENOVATE_NPM_PACKAGE ?= renovate@38.9.0 # renovate: datasource=docker packageName=code.forgejo.org/forgejo-contrib/renovate
 
 DOCKER_IMAGE ?= gitea/gitea
 DOCKER_TAG ?= latest
diff --git a/renovate.json b/renovate.json
index 3256aa0bb6..2fce394a91 100644
--- a/renovate.json
+++ b/renovate.json
@@ -117,6 +117,7 @@
         "docker"
       ],
       "matchPackageNames": [
+        "code.forgejo.org/forgejo-contrib/renovate",
         "ghcr.io/visualon/renovate"
       ],
       "matchUpdateTypes": [
@@ -171,6 +172,7 @@
         "docker"
       ],
       "matchPackageNames": [
+        "code.forgejo.org/forgejo-contrib/renovate",
         "ghcr.io/visualon/renovate"
       ],
       "extends": [