diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 54ae01c6253..0a5e3af8c61 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,5 @@ # Dockerfile for DevContainer -FROM node:24.22.1-bookworm-slim +FROM node:26.12.1-bookworm-slim # Install essential packages RUN apt-get update && apt-get install -y \ diff --git a/.github/workflows/dokploy.yml b/.github/workflows/dokploy.yml index 2aaea6bc4fa..b1599e8f5e2 100644 --- a/.github/workflows/dokploy.yml +++ b/.github/workflows/dokploy.yml @@ -207,7 +207,7 @@ jobs: - uses: actions/setup-node@v7 with: - node-version: 24.22.1 + node-version: 26.12.1 cache: pnpm - name: Generate OpenAPI specification diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 5bb2ed0bb15..d7b2aaeb4df 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -32,7 +32,7 @@ jobs: - uses: actions/setup-node@v7 if: ${{ !cancelled() }} with: - node-version: 24.22.1 + node-version: 26.12.1 - run: bun install --frozen-lockfile if: ${{ !cancelled() }} - run: bun run server:build @@ -56,7 +56,7 @@ jobs: bun-version: 1.4.4 - uses: actions/setup-node@v7 with: - node-version: 24.22.1 + node-version: 26.12.1 - name: Install Nixpacks if: matrix.job == 'test' && runner.environment == 'github-hosted' diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml index 357e94ea037..66deae2065e 100644 --- a/.github/workflows/sync-openapi-docs.yml +++ b/.github/workflows/sync-openapi-docs.yml @@ -29,7 +29,7 @@ jobs: bun-version: 1.4.4 - uses: actions/setup-node@v7 with: - node-version: 24.22.1 + node-version: 26.12.1 - name: Install dependencies run: bun install --frozen-lockfile diff --git a/.nvmrc b/.nvmrc index aec62a6cc64..52e831a74f6 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -24.22.1 \ No newline at end of file +26.12.1 \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 34e51b385f9..88b354aca02 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,7 +53,7 @@ feat: add new feature Before you start, please make the clone based on the `canary` branch, since the `main` branch is the source of truth and should always reflect the latest stable release, also the PRs will be merged to the `canary` branch. -We use Node v24.22.1 and recommend this specific version. If you have nvm installed, you can run `nvm install 24.22.1 && nvm use` in the root directory. +We use Node v26.12.1 and recommend this specific version. If you have nvm installed, you can run `nvm install 26.12.1 && nvm use` in the root directory. We use Bun v1.4.2 as the package manager and recommend this specific version. The lockfile requires Bun >=1.4.2. ```bash diff --git a/Dockerfile b/Dockerfile index 0194a5daf65..1ca88dde2f7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM node:24.22.1-bookworm-slim AS base +FROM node:26.12.1-bookworm-slim AS base ENV BUN_INSTALL="/root/.bun" ENV PATH="$BUN_INSTALL/bin:$PATH" RUN apt-get update \ diff --git a/Dockerfile.cloud b/Dockerfile.cloud index b035bb76789..9fbb8453844 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM node:24.22.1-bookworm-slim AS base +FROM node:26.12.1-bookworm-slim AS base ENV BUN_INSTALL="/root/.bun" ENV PATH="$BUN_INSTALL/bin:$PATH" RUN apt-get update \ diff --git a/Dockerfile.schedule b/Dockerfile.schedule index 58be94c0f0e..da0679ede6a 100644 --- a/Dockerfile.schedule +++ b/Dockerfile.schedule @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM node:24.22.1-bookworm-slim AS base +FROM node:26.12.1-bookworm-slim AS base ENV BUN_INSTALL="/root/.bun" ENV PATH="$BUN_INSTALL/bin:$PATH" RUN apt-get update \ diff --git a/Dockerfile.server b/Dockerfile.server index 925155c4103..c32e6fbc3a2 100644 --- a/Dockerfile.server +++ b/Dockerfile.server @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM node:24.22.1-bookworm-slim AS base +FROM node:26.12.1-bookworm-slim AS base ENV BUN_INSTALL="/root/.bun" ENV PATH="$BUN_INSTALL/bin:$PATH" RUN apt-get update \ diff --git a/apps/api/package.json b/apps/api/package.json index 77b920ab55a..55853a6f00a 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -23,7 +23,7 @@ "zod": "^4.6.7" }, "devDependencies": { - "@types/node": "^24.19.2", + "@types/node": "^26.6.5", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "rimraf": "6.1.3", @@ -32,7 +32,7 @@ }, "packageManager": "bun@1.4.4", "engines": { - "node": "^24.22.1", + "node": "^26.12.1", "bun": ">=1.4.2" } } diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json index dcc78d328ad..38b87a3b6fd 100644 --- a/apps/dokploy/package.json +++ b/apps/dokploy/package.json @@ -164,7 +164,7 @@ "@types/js-cookie": "^3.0.6", "@types/lodash": "4.17.27", "@types/micromatch": "4.0.10", - "@types/node": "^24.19.2", + "@types/node": "^26.6.5", "@types/node-schedule": "2.1.8", "@types/qrcode": "^1.5.6", "@types/react": "^19.3.0", @@ -190,7 +190,7 @@ }, "packageManager": "bun@1.4.4", "engines": { - "node": "^24.22.1", + "node": "^26.12.1", "bun": ">=1.4.2" }, "lint-staged": { diff --git a/apps/schedules/package.json b/apps/schedules/package.json index 43bd14701fc..c6b9ea68cfa 100644 --- a/apps/schedules/package.json +++ b/apps/schedules/package.json @@ -24,7 +24,7 @@ }, "devDependencies": { "rimraf": "6.1.3", - "@types/node": "^24.19.2", + "@types/node": "^26.6.5", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "tsx": "^4.23.15", @@ -32,7 +32,7 @@ }, "packageManager": "bun@1.4.4", "engines": { - "node": "^24.22.1", + "node": "^26.12.1", "bun": ">=1.4.2" } } diff --git a/bun.lock b/bun.lock index 24756f6e0f5..e96e9043ae8 100644 --- a/bun.lock +++ b/bun.lock @@ -6,7 +6,7 @@ "name": "dokploy", "devDependencies": { "@biomejs/biome": "2.6.2", - "@types/node": "^24.19.2", + "@types/node": "^26.6.5", "dotenv": "18.0.9", "esbuild": "0.28.2", "lint-staged": "^17.6.0", @@ -31,7 +31,7 @@ "zod": "^4.6.7", }, "devDependencies": { - "@types/node": "^24.19.2", + "@types/node": "^26.6.5", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "rimraf": "6.1.3", @@ -164,7 +164,7 @@ "@types/js-cookie": "^3.0.6", "@types/lodash": "4.17.27", "@types/micromatch": "4.0.10", - "@types/node": "^24.19.2", + "@types/node": "^26.6.5", "@types/node-schedule": "2.1.8", "@types/qrcode": "^1.5.6", "@types/react": "^19.3.0", @@ -204,7 +204,7 @@ "zod": "^4.6.7", }, "devDependencies": { - "@types/node": "^24.19.2", + "@types/node": "^26.6.5", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "rimraf": "6.1.3", @@ -283,7 +283,7 @@ "@types/dockerode": "4.0.2", "@types/lodash": "4.17.27", "@types/micromatch": "4.0.10", - "@types/node": "^24.19.2", + "@types/node": "^26.6.5", "@types/node-schedule": "2.1.8", "@types/qrcode": "^1.5.6", "@types/react": "^19.3.0", @@ -1569,7 +1569,7 @@ "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], - "@types/node": ["@types/node@24.19.2", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-93d49wCWJkCyN87MxLpNN6KXPCwFw7bVUg79mGUV1OS40JGWwVCr8n61DXCSqz7CV6/VfPkb7xec7uP2M+QHWQ=="], + "@types/node": ["@types/node@26.6.5", "", { "dependencies": { "undici-types": "~8.9.0" } }, "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg=="], "@types/node-schedule": ["@types/node-schedule@2.1.8", "", { "dependencies": { "@types/node": "*" } }, "sha512-k00g6Yj/oUg/CDC+MeLHUzu0+OFxWbIqrFfDiLi6OPKxTujvpv29mHGM8GtKr7B+9Vv92FcK/8mRqi1DK5f3hA=="], @@ -3121,7 +3121,7 @@ "undici": ["undici@8.12.3", "", {}, "sha512-+fdndUTwBP86cVjihTp21hZHo7d6oj1c/47XPA3lL8mM0XHs+C4EkcjmgRsFnFk2f/UONGDy9ItBItmXsLOQHw=="], - "undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], + "undici-types": ["undici-types@8.9.0", "", {}, "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg=="], "unicorn-magic": ["unicorn-magic@0.3.0", "", {}, "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA=="], diff --git a/docs/server-components-update.md b/docs/server-components-update.md index 04f9ec6b746..3765c658dd3 100644 --- a/docs/server-components-update.md +++ b/docs/server-components-update.md @@ -14,7 +14,7 @@ | Компонент | Версия | Где проверено наличие | |---|---|---| -| Node.js (базовый образ панели и CI) | 24.22.1 | `node:24.22.1-bookworm-slim`, версия 24.x актуальна | +| Node.js (базовый образ панели и CI) | 26.12.1 | `node:26.12.1-bookworm-slim`, последний релиз; ветка 26 — LTS с 2026-10-28 | | Docker Engine | 29.8.2 | docker-ce для noble и resolute, amd64 и arm64 | | Traefik | 3.7.14 | последний стабильный релиз (GitHub), образ `traefik:v3.7.14` | | Postgres (база панели) | 18.6 | `postgres:18.6`, более новых тегов 18.x нет | diff --git a/package.json b/package.json index d526ac0e671..dff485ae01e 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ }, "devDependencies": { "@biomejs/biome": "2.6.2", - "@types/node": "^24.19.2", + "@types/node": "^26.6.5", "dotenv": "18.0.9", "esbuild": "0.28.2", "lint-staged": "^17.6.0", @@ -35,7 +35,7 @@ }, "packageManager": "bun@1.4.4", "engines": { - "node": "^24.22.1", + "node": "^26.12.1", "bun": ">=1.4.2" }, "lint-staged": { diff --git a/packages/server/package.json b/packages/server/package.json index 4672d248447..149b4288efa 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -105,7 +105,7 @@ "@types/dockerode": "4.0.2", "@types/lodash": "4.17.27", "@types/micromatch": "4.0.10", - "@types/node": "^24.19.2", + "@types/node": "^26.6.5", "@types/node-schedule": "2.1.8", "@types/qrcode": "^1.5.6", "@types/react": "^19.3.0", @@ -125,7 +125,7 @@ }, "packageManager": "bun@1.4.4", "engines": { - "node": "^24.22.1", + "node": "^26.12.1", "bun": ">=1.4.2" } } diff --git a/packages/server/src/setup/component-versions.ts b/packages/server/src/setup/component-versions.ts index fc384a2ef00..1f278f17d8b 100644 --- a/packages/server/src/setup/component-versions.ts +++ b/packages/server/src/setup/component-versions.ts @@ -3,7 +3,7 @@ // values; apps/dokploy/__test__/server/component-versions-sync.test.ts fails // when they drift from this object. export const PINNED_VERSIONS = { - node: "24.22.1", + node: "26.12.1", docker: "29.8.2", traefik: "3.7.14", postgres: "18.6", diff --git a/packages/server/src/utils/process/execAsync.ts b/packages/server/src/utils/process/execAsync.ts index e78998202cc..7fb7d3e7f35 100644 --- a/packages/server/src/utils/process/execAsync.ts +++ b/packages/server/src/utils/process/execAsync.ts @@ -193,7 +193,7 @@ export const execAsyncStream = ( command, stdout: stdoutComplete, stderr: stderrComplete, - exitCode: error.code, + exitCode: typeof error.code === "number" ? error.code : undefined, originalError: error, }, ),