diff --git a/lib/modules/manager/nodenv/extract.spec.ts b/lib/modules/manager/nodenv/extract.spec.ts
index f0b6ded133f7a720ac1e8fb0a18152f91fec80d1..d21928d08b28d1bdad1cc864ac2541ab3e9aaa57 100644
--- a/lib/modules/manager/nodenv/extract.spec.ts
+++ b/lib/modules/manager/nodenv/extract.spec.ts
@@ -7,9 +7,8 @@ describe('modules/manager/nodenv/extract', () => {
       expect(res.deps).toEqual([
         {
           currentValue: '8.4.0',
-          datasource: 'github-tags',
+          datasource: 'node-version',
           depName: 'node',
-          packageName: 'nodejs/node',
         },
       ]);
     });
@@ -19,9 +18,8 @@ describe('modules/manager/nodenv/extract', () => {
       expect(res.deps).toEqual([
         {
           currentValue: '8.4',
-          datasource: 'github-tags',
+          datasource: 'node-version',
           depName: 'node',
-          packageName: 'nodejs/node',
         },
       ]);
     });
@@ -31,9 +29,8 @@ describe('modules/manager/nodenv/extract', () => {
       expect(res.deps).toEqual([
         {
           currentValue: 'latestn',
-          datasource: 'github-tags',
+          datasource: 'node-version',
           depName: 'node',
-          packageName: 'nodejs/node',
         },
       ]);
     });
diff --git a/lib/modules/manager/nodenv/extract.ts b/lib/modules/manager/nodenv/extract.ts
index a5f6a50f9164c8a46080b371c6d3962c6c65e130..dcf6e5127a54d30f8b12bc063586aad7ec30fe92 100644
--- a/lib/modules/manager/nodenv/extract.ts
+++ b/lib/modules/manager/nodenv/extract.ts
@@ -1,12 +1,11 @@
-import { GithubTagsDatasource } from '../../datasource/github-tags';
+import { NodeVersionDatasource } from '../../datasource/node-version';
 import type { PackageDependency, PackageFileContent } from '../types';
 
 export function extractPackageFile(content: string): PackageFileContent {
   const dep: PackageDependency = {
     depName: 'node',
     currentValue: content.trim(),
-    datasource: GithubTagsDatasource.id,
-    packageName: 'nodejs/node',
+    datasource: NodeVersionDatasource.id,
   };
   return { deps: [dep] };
 }
diff --git a/lib/modules/manager/nodenv/index.ts b/lib/modules/manager/nodenv/index.ts
index 7343b6aced2cdbbd233632b06686c71d5db21d3d..82de3127ada5b20f24af84cab29bac6c4c7ed028 100644
--- a/lib/modules/manager/nodenv/index.ts
+++ b/lib/modules/manager/nodenv/index.ts
@@ -1,5 +1,5 @@
 import type { Category } from '../../../constants';
-import { GithubTagsDatasource } from '../../datasource/github-tags';
+import { NodeVersionDatasource } from '../../datasource/node-version';
 import * as nodeVersioning from '../../versioning/node';
 
 export { extractPackageFile } from './extract';
@@ -14,4 +14,4 @@ export const defaultConfig = {
 
 export const categories: Category[] = ['js', 'node'];
 
-export const supportedDatasources = [GithubTagsDatasource.id];
+export const supportedDatasources = [NodeVersionDatasource.id];
diff --git a/lib/modules/manager/npm/extract/__snapshots__/index.spec.ts.snap b/lib/modules/manager/npm/extract/__snapshots__/index.spec.ts.snap
index 863cb69ff262db1811d8870b018486cc702d680f..f8151a8d670d8042d94211cfefd1d19fb1498e70 100644
--- a/lib/modules/manager/npm/extract/__snapshots__/index.spec.ts.snap
+++ b/lib/modules/manager/npm/extract/__snapshots__/index.spec.ts.snap
@@ -82,12 +82,10 @@ exports[`modules/manager/npm/extract/index .extractPackageFile() extracts engine
     {
       "commitMessageTopic": "Node.js",
       "currentValue": ">= 8.9.2",
-      "datasource": "github-tags",
+      "datasource": "node-version",
       "depName": "node",
       "depType": "engines",
-      "packageName": "nodejs/node",
       "prettyDepType": "engine",
-      "versioning": "node",
     },
     {
       "commitMessageTopic": "npm",
@@ -440,22 +438,18 @@ exports[`modules/manager/npm/extract/index .extractPackageFile() extracts volta
     {
       "commitMessageTopic": "Node.js",
       "currentValue": "8.9.2",
-      "datasource": "github-tags",
+      "datasource": "node-version",
       "depName": "node",
       "depType": "engines",
-      "packageName": "nodejs/node",
       "prettyDepType": "engine",
-      "versioning": "node",
     },
     {
       "commitMessageTopic": "Node.js",
       "currentValue": "8.9.2",
-      "datasource": "github-tags",
+      "datasource": "node-version",
       "depName": "node",
       "depType": "volta",
-      "packageName": "nodejs/node",
       "prettyDepType": "volta",
-      "versioning": "node",
     },
     {
       "commitMessageTopic": "Yarn",
@@ -512,22 +506,18 @@ exports[`modules/manager/npm/extract/index .extractPackageFile() extracts volta
     {
       "commitMessageTopic": "Node.js",
       "currentValue": "8.9.2",
-      "datasource": "github-tags",
+      "datasource": "node-version",
       "depName": "node",
       "depType": "engines",
-      "packageName": "nodejs/node",
       "prettyDepType": "engine",
-      "versioning": "node",
     },
     {
       "commitMessageTopic": "Node.js",
       "currentValue": "8.9.2",
-      "datasource": "github-tags",
+      "datasource": "node-version",
       "depName": "node",
       "depType": "volta",
-      "packageName": "nodejs/node",
       "prettyDepType": "volta",
-      "versioning": "node",
     },
     {
       "commitMessageTopic": "Yarn",
diff --git a/lib/modules/manager/npm/extract/common/dependency.ts b/lib/modules/manager/npm/extract/common/dependency.ts
index 1fc13de8407c4365a735ac2ba790e4fcfbdefd21..36caa1efc68d206226a960386222f851d9985847 100644
--- a/lib/modules/manager/npm/extract/common/dependency.ts
+++ b/lib/modules/manager/npm/extract/common/dependency.ts
@@ -3,8 +3,8 @@ import validateNpmPackageName from 'validate-npm-package-name';
 import { logger } from '../../../../../logger';
 import { regEx } from '../../../../../util/regex';
 import { GithubTagsDatasource } from '../../../../datasource/github-tags';
+import { NodeVersionDatasource } from '../../../../datasource/node-version';
 import { NpmDatasource } from '../../../../datasource/npm';
-import * as nodeVersioning from '../../../../versioning/node';
 import { api, isValid, isVersion } from '../../../../versioning/npm';
 import type { PackageDependency } from '../../../types';
 
@@ -38,9 +38,7 @@ export function extractDependency(
   dep.currentValue = input.trim();
   if (depType === 'engines' || depType === 'packageManager') {
     if (depName === 'node') {
-      dep.datasource = GithubTagsDatasource.id;
-      dep.packageName = 'nodejs/node';
-      dep.versioning = nodeVersioning.id;
+      dep.datasource = NodeVersionDatasource.id;
     } else if (depName === 'yarn') {
       dep.datasource = NpmDatasource.id;
       dep.commitMessageTopic = 'Yarn';
@@ -70,9 +68,7 @@ export function extractDependency(
   // support for volta
   if (depType === 'volta') {
     if (depName === 'node') {
-      dep.datasource = GithubTagsDatasource.id;
-      dep.packageName = 'nodejs/node';
-      dep.versioning = nodeVersioning.id;
+      dep.datasource = NodeVersionDatasource.id;
     } else if (depName === 'yarn') {
       dep.datasource = NpmDatasource.id;
       dep.commitMessageTopic = 'Yarn';
diff --git a/lib/modules/manager/npm/extract/index.spec.ts b/lib/modules/manager/npm/extract/index.spec.ts
index fbedd8a31f08514022afda717096cfe6f077250c..428ad3c13e8b7ac265c12cb39dce64898c4213b1 100644
--- a/lib/modules/manager/npm/extract/index.spec.ts
+++ b/lib/modules/manager/npm/extract/index.spec.ts
@@ -366,8 +366,7 @@ describe('modules/manager/npm/extract/index', () => {
           {
             depName: 'node',
             currentValue: '>= 8.9.2',
-            datasource: 'github-tags',
-            versioning: 'node',
+            datasource: 'node-version',
             depType: 'engines',
           },
           {
@@ -462,12 +461,10 @@ describe('modules/manager/npm/extract/index', () => {
           {
             commitMessageTopic: 'Node.js',
             currentValue: '8.9.2',
-            datasource: 'github-tags',
+            datasource: 'node-version',
             depName: 'node',
             depType: 'volta',
-            packageName: 'nodejs/node',
             prettyDepType: 'volta',
-            versioning: 'node',
           },
           {
             commitMessageTopic: 'Yarn',
@@ -506,12 +503,10 @@ describe('modules/manager/npm/extract/index', () => {
           {
             commitMessageTopic: 'Node.js',
             currentValue: '16.0.0',
-            datasource: 'github-tags',
+            datasource: 'node-version',
             depName: 'node',
             depType: 'volta',
-            packageName: 'nodejs/node',
             prettyDepType: 'volta',
-            versioning: 'node',
           },
           {
             commitMessageTopic: 'Yarn',
@@ -683,12 +678,10 @@ describe('modules/manager/npm/extract/index', () => {
           {
             commitMessageTopic: 'Node.js',
             currentValue: '8.9.2',
-            datasource: 'github-tags',
+            datasource: 'node-version',
             depName: 'node',
             depType: 'engines',
-            packageName: 'nodejs/node',
             prettyDepType: 'engine',
-            versioning: 'node',
           },
           {
             commitMessageTopic: 'Yarn',
diff --git a/lib/modules/manager/npm/index.ts b/lib/modules/manager/npm/index.ts
index 26b11772e3dbf396d1092d2238e9c41eef329fe5..96e3741735b5325054a4c6acc227fc4aedb67f49 100644
--- a/lib/modules/manager/npm/index.ts
+++ b/lib/modules/manager/npm/index.ts
@@ -1,5 +1,6 @@
 import type { Category } from '../../../constants';
 import { GithubTagsDatasource } from '../../datasource/github-tags';
+import { NodeVersionDatasource } from '../../datasource/node-version';
 import { NpmDatasource } from '../../datasource/npm';
 import * as npmVersioning from '../../versioning/npm';
 
@@ -31,4 +32,8 @@ export const defaultConfig = {
 
 export const categories: Category[] = ['js'];
 
-export const supportedDatasources = [GithubTagsDatasource.id, NpmDatasource.id];
+export const supportedDatasources = [
+  GithubTagsDatasource.id,
+  NpmDatasource.id,
+  NodeVersionDatasource.id,
+];
diff --git a/lib/modules/manager/nvm/extract.spec.ts b/lib/modules/manager/nvm/extract.spec.ts
index 85b94329c2bd35a5ab63bf285f0fdf5e0f167cbf..6bbe9f4d24388ff2d062948674dc0481b4e1ee4a 100644
--- a/lib/modules/manager/nvm/extract.spec.ts
+++ b/lib/modules/manager/nvm/extract.spec.ts
@@ -7,9 +7,8 @@ describe('modules/manager/nvm/extract', () => {
       expect(res.deps).toEqual([
         {
           currentValue: '8.4.0',
-          datasource: 'github-tags',
+          datasource: 'node-version',
           depName: 'node',
-          packageName: 'nodejs/node',
         },
       ]);
     });
@@ -19,9 +18,8 @@ describe('modules/manager/nvm/extract', () => {
       expect(res.deps).toEqual([
         {
           currentValue: '8.4',
-          datasource: 'github-tags',
+          datasource: 'node-version',
           depName: 'node',
-          packageName: 'nodejs/node',
         },
       ]);
     });
@@ -31,9 +29,8 @@ describe('modules/manager/nvm/extract', () => {
       expect(res.deps).toEqual([
         {
           currentValue: 'latestn',
-          datasource: 'github-tags',
+          datasource: 'node-version',
           depName: 'node',
-          packageName: 'nodejs/node',
         },
       ]);
     });
diff --git a/lib/modules/manager/nvm/extract.ts b/lib/modules/manager/nvm/extract.ts
index a5f6a50f9164c8a46080b371c6d3962c6c65e130..dcf6e5127a54d30f8b12bc063586aad7ec30fe92 100644
--- a/lib/modules/manager/nvm/extract.ts
+++ b/lib/modules/manager/nvm/extract.ts
@@ -1,12 +1,11 @@
-import { GithubTagsDatasource } from '../../datasource/github-tags';
+import { NodeVersionDatasource } from '../../datasource/node-version';
 import type { PackageDependency, PackageFileContent } from '../types';
 
 export function extractPackageFile(content: string): PackageFileContent {
   const dep: PackageDependency = {
     depName: 'node',
     currentValue: content.trim(),
-    datasource: GithubTagsDatasource.id,
-    packageName: 'nodejs/node',
+    datasource: NodeVersionDatasource.id,
   };
   return { deps: [dep] };
 }
diff --git a/lib/modules/manager/nvm/index.ts b/lib/modules/manager/nvm/index.ts
index 0354ac17c1a358dc3210e3a2c7a75230c0cd6cc2..6ac1f0786a6fca1c9a76b115db2354e1e13296a7 100644
--- a/lib/modules/manager/nvm/index.ts
+++ b/lib/modules/manager/nvm/index.ts
@@ -1,5 +1,5 @@
 import type { Category } from '../../../constants';
-import { GithubTagsDatasource } from '../../datasource/github-tags';
+import { NodeVersionDatasource } from '../../datasource/node-version';
 import * as nodeVersioning from '../../versioning/node';
 
 export { extractPackageFile } from './extract';
@@ -15,4 +15,4 @@ export const defaultConfig = {
 
 export const categories: Category[] = ['js', 'node'];
 
-export const supportedDatasources = [GithubTagsDatasource.id];
+export const supportedDatasources = [NodeVersionDatasource.id];
diff --git a/lib/modules/manager/travis/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/travis/__snapshots__/extract.spec.ts.snap
index 772c5e4fb7e86ef652b94d8e9a660b0eb977dbd5..16c0c57dc0b4e83e43206007ac59b7c152a6553e 100644
--- a/lib/modules/manager/travis/__snapshots__/extract.spec.ts.snap
+++ b/lib/modules/manager/travis/__snapshots__/extract.spec.ts.snap
@@ -5,15 +5,13 @@ exports[`modules/manager/travis/extract extractPackageFile() returns results 1`]
   "deps": [
     {
       "currentValue": "6",
-      "datasource": "github-tags",
+      "datasource": "node-version",
       "depName": "node",
-      "packageName": "nodejs/node",
     },
     {
       "currentValue": "8",
-      "datasource": "github-tags",
+      "datasource": "node-version",
       "depName": "node",
-      "packageName": "nodejs/node",
     },
   ],
 }
diff --git a/lib/modules/manager/travis/extract.spec.ts b/lib/modules/manager/travis/extract.spec.ts
index 4445302c5cbcd258c2d976a2a101dc96480d2a64..0871e4c718a842df313afbdb8d19f157e80b0d32 100644
--- a/lib/modules/manager/travis/extract.spec.ts
+++ b/lib/modules/manager/travis/extract.spec.ts
@@ -32,9 +32,8 @@ describe('modules/manager/travis/extract', () => {
         deps: [
           {
             currentValue: '11.10.1',
-            datasource: 'github-tags',
+            datasource: 'node-version',
             depName: 'node',
-            packageName: 'nodejs/node',
           },
         ],
       });
@@ -46,15 +45,13 @@ describe('modules/manager/travis/extract', () => {
         deps: [
           {
             currentValue: '11.10.1',
-            datasource: 'github-tags',
+            datasource: 'node-version',
             depName: 'node',
-            packageName: 'nodejs/node',
           },
           {
             currentValue: '11.10.2',
-            datasource: 'github-tags',
+            datasource: 'node-version',
             depName: 'node',
-            packageName: 'nodejs/node',
           },
         ],
       });
@@ -66,15 +63,13 @@ describe('modules/manager/travis/extract', () => {
         deps: [
           {
             currentValue: '11.10.1',
-            datasource: 'github-tags',
+            datasource: 'node-version',
             depName: 'node',
-            packageName: 'nodejs/node',
           },
           {
             currentValue: '11.10.2',
-            datasource: 'github-tags',
+            datasource: 'node-version',
             depName: 'node',
-            packageName: 'nodejs/node',
           },
         ],
       });
@@ -86,9 +81,8 @@ describe('modules/manager/travis/extract', () => {
         deps: [
           {
             currentValue: '11.10.1',
-            datasource: 'github-tags',
+            datasource: 'node-version',
             depName: 'node',
-            packageName: 'nodejs/node',
           },
         ],
       });
diff --git a/lib/modules/manager/travis/extract.ts b/lib/modules/manager/travis/extract.ts
index 79da049c494d53e7b448bbeb31b37fa231d22fae..4916a823e5ac8a05cd7f4fa6462879e4f9fff749 100644
--- a/lib/modules/manager/travis/extract.ts
+++ b/lib/modules/manager/travis/extract.ts
@@ -1,7 +1,7 @@
 import is from '@sindresorhus/is';
 import { logger } from '../../../logger';
 import { parseSingleYaml } from '../../../util/yaml';
-import { GithubTagsDatasource } from '../../datasource/github-tags';
+import { NodeVersionDatasource } from '../../datasource/node-version';
 import type { PackageDependency, PackageFileContent } from '../types';
 import type { TravisMatrixItem, TravisYaml } from './types';
 
@@ -23,8 +23,7 @@ export function extractPackageFile(
   if (doc && is.array(doc.node_js)) {
     deps = doc.node_js.map((currentValue) => ({
       depName: 'node',
-      datasource: GithubTagsDatasource.id,
-      packageName: 'nodejs/node',
+      datasource: NodeVersionDatasource.id,
       currentValue: currentValue.toString(),
     }));
   }
@@ -47,16 +46,14 @@ export function extractPackageFile(
         item.node_js.forEach((currentValue) => {
           deps.push({
             depName: 'node',
-            datasource: GithubTagsDatasource.id,
-            packageName: 'nodejs/node',
+            datasource: NodeVersionDatasource.id,
             currentValue: currentValue.toString(),
           });
         });
       } else if (is.string(item.node_js)) {
         deps.push({
           depName: 'node',
-          datasource: GithubTagsDatasource.id,
-          packageName: 'nodejs/node',
+          datasource: NodeVersionDatasource.id,
           currentValue: item.node_js.toString(),
         });
       }
diff --git a/lib/modules/manager/travis/index.ts b/lib/modules/manager/travis/index.ts
index 048cc096f236d3ec2d9427c88a3df7a99261e94d..87a16020b741f9cd3b1d542f308b57fed781ecb1 100644
--- a/lib/modules/manager/travis/index.ts
+++ b/lib/modules/manager/travis/index.ts
@@ -1,10 +1,10 @@
 import type { Category } from '../../../constants';
-import { GithubTagsDatasource } from '../../datasource/github-tags';
+import { NodeVersionDatasource } from '../../datasource/node-version';
 import * as nodeVersioning from '../../versioning/node';
 
 export { extractPackageFile } from './extract';
 
-export const supportedDatasources = [GithubTagsDatasource.id];
+export const supportedDatasources = [NodeVersionDatasource.id];
 
 export const defaultConfig = {
   fileMatch: ['^\\.travis\\.ya?ml$'],