From d799b460bd7b0a1095fbc8e607c8a4953fcb0b37 Mon Sep 17 00:00:00 2001 From: Khiet Tam Nguyen Date: Tue, 8 Jul 2025 20:08:26 +1000 Subject: [PATCH 01/41] fix(ui): adjust tablist item width for compose services --- .../project/[projectId]/services/compose/[composeId].tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx index 0870df097..957051429 100644 --- a/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx +++ b/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx @@ -214,12 +214,12 @@ const Service = (
General From 226a287ce7bea5f275eaf9358f163f46178ee00d Mon Sep 17 00:00:00 2001 From: Marukome0743 Date: Wed, 9 Jul 2025 15:33:35 +0900 Subject: [PATCH 02/41] chore: update package.json --- apps/api/package.json | 14 +- apps/dokploy/package.json | 148 ++++++++++---------- apps/schedules/package.json | 20 +-- package.json | 8 +- packages/server/package.json | 52 +++---- pnpm-lock.yaml | 254 +++++++++++++++++------------------ 6 files changed, 248 insertions(+), 248 deletions(-) diff --git a/apps/api/package.json b/apps/api/package.json index 65f9d4ad9..98fcea0d3 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -10,24 +10,24 @@ }, "dependencies": { "@dokploy/server": "workspace:*", - "@hono/node-server": "^1.12.1", + "@hono/node-server": "^1.14.3", "@hono/zod-validator": "0.3.0", "@nerimity/mimiqueue": "1.2.3", - "dotenv": "^16.3.1", - "hono": "^4.5.8", + "dotenv": "^16.4.5", + "hono": "^4.7.10", "pino": "9.4.0", "pino-pretty": "11.2.2", "react": "18.2.0", "react-dom": "18.2.0", "redis": "4.7.0", - "zod": "^3.23.4" + "zod": "^3.25.32" }, "devDependencies": { - "@types/node": "^20.11.17", + "@types/node": "^20.17.51", "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", - "tsx": "^4.7.1", - "typescript": "^5.4.2" + "tsx": "^4.16.2", + "typescript": "^5.8.3" }, "packageManager": "pnpm@9.5.0" } diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json index 054e74f35..636ad8b35 100644 --- a/apps/dokploy/package.json +++ b/apps/dokploy/package.json @@ -37,152 +37,152 @@ "test": "vitest --config __test__/vitest.config.ts" }, "dependencies": { - "@ai-sdk/anthropic": "^1.0.6", - "@ai-sdk/azure": "^1.0.15", - "@ai-sdk/cohere": "^1.0.6", + "@ai-sdk/anthropic": "^1.2.12", + "@ai-sdk/azure": "^1.3.23", + "@ai-sdk/cohere": "^1.2.10", "@ai-sdk/deepinfra": "^0.0.4", - "@ai-sdk/mistral": "^1.0.6", - "@ai-sdk/openai": "^1.0.12", + "@ai-sdk/mistral": "^1.2.8", + "@ai-sdk/openai": "^1.3.22", "@ai-sdk/openai-compatible": "^0.0.13", "@codemirror/autocomplete": "^6.18.6", "@codemirror/lang-json": "^6.0.1", - "@codemirror/lang-yaml": "^6.1.1", - "@codemirror/language": "^6.10.1", + "@codemirror/lang-yaml": "^6.1.2", + "@codemirror/language": "^6.11.0", "@codemirror/legacy-modes": "6.4.0", "@codemirror/view": "6.29.0", "@dokploy/server": "workspace:*", "@dokploy/trpc-openapi": "0.0.4", "@faker-js/faker": "^8.4.1", - "@hookform/resolvers": "^3.9.0", - "@octokit/auth-app": "^6.0.4", - "@octokit/webhooks": "^13.2.7", + "@hookform/resolvers": "^3.10.0", + "@octokit/auth-app": "^6.1.3", + "@octokit/webhooks": "^13.9.0", "@radix-ui/react-accordion": "1.1.2", - "@radix-ui/react-alert-dialog": "^1.0.5", - "@radix-ui/react-avatar": "^1.0.4", - "@radix-ui/react-checkbox": "^1.0.4", - "@radix-ui/react-collapsible": "^1.1.1", - "@radix-ui/react-dialog": "^1.1.1", - "@radix-ui/react-dropdown-menu": "^2.0.6", - "@radix-ui/react-label": "^2.1.0", - "@radix-ui/react-popover": "^1.0.7", - "@radix-ui/react-progress": "^1.0.3", - "@radix-ui/react-radio-group": "^1.2.0", - "@radix-ui/react-scroll-area": "^1.1.0", - "@radix-ui/react-select": "^2.1.1", - "@radix-ui/react-separator": "^1.1.0", - "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-switch": "^1.0.3", - "@radix-ui/react-tabs": "^1.0.4", - "@radix-ui/react-toggle": "^1.0.3", - "@radix-ui/react-tooltip": "^1.0.7", + "@radix-ui/react-alert-dialog": "^1.1.14", + "@radix-ui/react-avatar": "^1.1.10", + "@radix-ui/react-checkbox": "^1.3.2", + "@radix-ui/react-collapsible": "^1.1.11", + "@radix-ui/react-dialog": "^1.1.14", + "@radix-ui/react-dropdown-menu": "^2.1.15", + "@radix-ui/react-label": "^2.1.7", + "@radix-ui/react-popover": "^1.1.14", + "@radix-ui/react-progress": "^1.1.7", + "@radix-ui/react-radio-group": "^1.3.7", + "@radix-ui/react-scroll-area": "^1.2.9", + "@radix-ui/react-select": "^2.2.5", + "@radix-ui/react-separator": "^1.1.7", + "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-switch": "^1.2.5", + "@radix-ui/react-tabs": "^1.1.12", + "@radix-ui/react-toggle": "^1.1.9", + "@radix-ui/react-tooltip": "^1.2.7", "@react-email/components": "^0.0.21", "@stepperize/react": "4.0.1", "@stripe/stripe-js": "4.8.0", "@tailwindcss/typography": "0.5.16", "@tanstack/react-query": "^4.36.1", - "@tanstack/react-table": "^8.16.0", - "@trpc/client": "^10.43.6", - "@trpc/next": "^10.43.6", - "@trpc/react-query": "^10.43.6", - "@trpc/server": "^10.43.6", - "@uiw/codemirror-theme-github": "^4.22.1", - "@uiw/react-codemirror": "^4.22.1", + "@tanstack/react-table": "^8.21.3", + "@trpc/client": "^10.45.2", + "@trpc/next": "^10.45.2", + "@trpc/react-query": "^10.45.2", + "@trpc/server": "^10.45.2", + "@uiw/codemirror-theme-github": "^4.23.12", + "@uiw/react-codemirror": "^4.23.12", "@xterm/addon-attach": "0.10.0", "@xterm/addon-clipboard": "0.1.0", - "@xterm/xterm": "^5.4.0", - "adm-zip": "^0.5.14", - "ai": "^4.0.23", + "@xterm/xterm": "^5.5.0", + "adm-zip": "^0.5.16", + "ai": "^4.3.16", "bcrypt": "5.1.1", "better-auth": "v1.2.8-beta.7", "bl": "6.0.11", "boxen": "^7.1.1", "bullmq": "5.4.2", - "class-variance-authority": "^0.7.0", - "clsx": "^2.1.0", - "cmdk": "^0.2.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^0.2.1", "copy-to-clipboard": "^3.3.3", "date-fns": "3.6.0", "dockerode": "4.0.2", "dotenv": "16.4.5", - "drizzle-orm": "^0.39.1", + "drizzle-orm": "^0.39.3", "drizzle-zod": "0.5.1", "fancy-ansi": "^0.1.3", "hi-base32": "^0.5.1", - "i18next": "^23.16.4", - "input-otp": "^1.2.4", + "i18next": "^23.16.8", + "input-otp": "^1.4.2", "js-cookie": "^3.0.5", "js-yaml": "4.1.0", "lodash": "4.17.21", "lucide-react": "^0.469.0", "micromatch": "4.0.8", - "nanoid": "3", - "next": "^15.2.4", - "next-i18next": "^15.3.1", + "nanoid": "3.3.11", + "next": "^15.3.2", + "next-i18next": "^15.4.2", "next-themes": "^0.2.1", "node-os-utils": "1.3.7", "node-pty": "1.0.0", "node-schedule": "2.1.1", "nodemailer": "6.9.14", "octokit": "3.1.2", - "ollama-ai-provider": "^1.1.0", - "otpauth": "^9.2.3", + "ollama-ai-provider": "^1.2.0", + "otpauth": "^9.4.0", "pino": "9.4.0", "pino-pretty": "11.2.2", "postgres": "3.4.4", "public-ip": "6.0.2", - "qrcode": "^1.5.3", + "qrcode": "^1.5.4", "react": "18.2.0", "react-confetti-explosion": "2.1.2", "react-day-picker": "8.10.1", "react-dom": "18.2.0", - "react-hook-form": "^7.52.1", - "react-i18next": "^15.1.0", - "react-markdown": "^9.0.1", - "recharts": "^2.12.7", + "react-hook-form": "^7.56.4", + "react-i18next": "^15.5.2", + "react-markdown": "^9.1.0", + "recharts": "^2.15.3", "rotating-file-stream": "3.2.3", "slugify": "^1.6.6", - "sonner": "^1.5.0", + "sonner": "^1.7.4", "ssh2": "1.15.0", "stripe": "17.2.0", - "superjson": "^2.2.1", - "swagger-ui-react": "^5.17.14", - "tailwind-merge": "^2.2.0", + "superjson": "^2.2.2", + "swagger-ui-react": "^5.22.0", + "tailwind-merge": "^2.6.0", "tailwindcss-animate": "^1.0.7", "toml": "3.0.0", - "undici": "^6.19.2", + "undici": "^6.21.3", "use-resize-observer": "9.1.0", "ws": "8.16.0", "xterm-addon-fit": "^0.8.0", - "zod": "^3.23.4", - "zod-form-data": "^2.0.2" + "zod": "^3.25.32", + "zod-form-data": "^2.0.7" }, "devDependencies": { - "@types/adm-zip": "^0.5.5", + "@types/adm-zip": "^0.5.7", "@types/bcrypt": "5.0.2", "@types/js-cookie": "^3.0.6", "@types/js-yaml": "4.0.9", "@types/lodash": "4.17.4", "@types/micromatch": "4.0.9", - "@types/node": "^18.17.0", + "@types/node": "^18.19.104", "@types/node-os-utils": "1.3.4", "@types/node-schedule": "2.1.6", - "@types/nodemailer": "^6.4.15", + "@types/nodemailer": "^6.4.17", "@types/qrcode": "^1.5.5", - "@types/react": "^18.2.37", - "@types/react-dom": "^18.2.15", + "@types/react": "^18.3.5", + "@types/react-dom": "^18.3.0", "@types/ssh2": "1.15.1", - "@types/swagger-ui-react": "^4.18.3", + "@types/swagger-ui-react": "^4.19.0", "@types/ws": "8.5.10", "autoprefixer": "10.4.12", - "drizzle-kit": "^0.30.4", + "drizzle-kit": "^0.30.6", "esbuild": "0.20.2", - "lint-staged": "^15.2.7", - "memfs": "^4.11.0", - "tailwindcss": "^3.4.1", - "tsx": "^4.7.0", - "typescript": "^5.4.2", + "lint-staged": "^15.5.2", + "memfs": "^4.17.2", + "tailwindcss": "^3.4.17", + "tsx": "^4.16.2", + "typescript": "^5.8.3", "vite-tsconfig-paths": "4.3.2", - "vitest": "^1.6.0" + "vitest": "^1.6.1" }, "ct3aMetadata": { "initVersion": "7.25.2" diff --git a/apps/schedules/package.json b/apps/schedules/package.json index c7f458d20..c7823f112 100644 --- a/apps/schedules/package.json +++ b/apps/schedules/package.json @@ -9,25 +9,25 @@ }, "dependencies": { "@dokploy/server": "workspace:*", - "@hono/node-server": "^1.12.1", + "@hono/node-server": "^1.14.3", "@hono/zod-validator": "0.3.0", "bullmq": "5.4.2", - "dotenv": "^16.3.1", - "drizzle-orm": "^0.39.1", - "hono": "^4.5.8", + "dotenv": "^16.4.5", + "drizzle-orm": "^0.39.3", + "hono": "^4.7.10", "ioredis": "5.4.1", "pino": "9.4.0", "pino-pretty": "11.2.2", "react": "18.2.0", "react-dom": "18.2.0", - "zod": "^3.23.4" + "zod": "^3.25.32" }, "devDependencies": { - "@types/node": "^20.11.17", - "@types/react": "^18.2.37", - "@types/react-dom": "^18.2.15", - "tsx": "^4.7.1", - "typescript": "^5.4.2" + "@types/node": "^20.17.51", + "@types/react": "^18.3.5", + "@types/react-dom": "^18.3.0", + "tsx": "^4.16.2", + "typescript": "^5.8.3" }, "packageManager": "pnpm@9.5.0" } diff --git a/package.json b/package.json index 53ff00643..f628e09fd 100644 --- a/package.json +++ b/package.json @@ -21,13 +21,13 @@ }, "devDependencies": { "@biomejs/biome": "1.9.4", - "@commitlint/cli": "^19.3.0", - "@commitlint/config-conventional": "^19.2.2", - "@types/node": "^18.17.0", + "@commitlint/cli": "^19.8.1", + "@commitlint/config-conventional": "^19.8.1", + "@types/node": "^18.19.104", "dotenv": "16.4.5", "esbuild": "0.20.2", "lefthook": "1.8.4", - "lint-staged": "^15.2.7", + "lint-staged": "^15.5.2", "tsx": "4.16.2" }, "packageManager": "pnpm@9.5.0", diff --git a/packages/server/package.json b/packages/server/package.json index 782d67a00..fcc4622d0 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -28,23 +28,23 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@ai-sdk/anthropic": "^1.0.6", - "@ai-sdk/azure": "^1.0.15", - "@ai-sdk/cohere": "^1.0.6", + "@ai-sdk/anthropic": "^1.2.12", + "@ai-sdk/azure": "^1.3.23", + "@ai-sdk/cohere": "^1.2.10", "@ai-sdk/deepinfra": "^0.0.4", - "@ai-sdk/mistral": "^1.0.6", - "@ai-sdk/openai": "^1.0.12", + "@ai-sdk/mistral": "^1.2.8", + "@ai-sdk/openai": "^1.3.22", "@ai-sdk/openai-compatible": "^0.0.13", "@better-auth/utils": "0.2.4", "@faker-js/faker": "^8.4.1", - "@octokit/auth-app": "^6.0.4", - "@octokit/rest": "^20.0.2", + "@octokit/auth-app": "^6.1.3", + "@octokit/rest": "^20.1.2", "@oslojs/crypto": "1.0.1", "@oslojs/encoding": "1.1.0", "@react-email/components": "^0.0.21", - "@trpc/server": "^10.43.6", - "adm-zip": "^0.5.14", - "ai": "^4.0.23", + "@trpc/server": "^10.45.2", + "adm-zip": "^0.5.16", + "ai": "^4.3.16", "bcrypt": "5.1.1", "better-auth": "v1.2.8-beta.7", "bl": "6.0.11", @@ -53,25 +53,25 @@ "dockerode": "4.0.2", "dotenv": "16.4.5", "drizzle-dbml-generator": "0.10.0", - "drizzle-orm": "^0.39.1", + "drizzle-orm": "^0.39.3", "drizzle-zod": "0.5.1", "hi-base32": "^0.5.1", "js-yaml": "4.1.0", "lodash": "4.17.21", "micromatch": "4.0.8", - "nanoid": "3", + "nanoid": "3.3.11", "node-os-utils": "1.3.7", "node-pty": "1.0.0", "node-schedule": "2.1.1", "nodemailer": "6.9.14", "octokit": "3.1.2", - "ollama-ai-provider": "^1.1.0", - "otpauth": "^9.2.3", + "ollama-ai-provider": "^1.2.0", + "otpauth": "^9.4.0", "pino": "9.4.0", "pino-pretty": "11.2.2", "postgres": "3.4.4", "public-ip": "6.0.2", - "qrcode": "^1.5.3", + "qrcode": "^1.5.4", "react": "18.2.0", "react-dom": "18.2.0", "rotating-file-stream": "3.2.3", @@ -79,31 +79,31 @@ "ssh2": "1.15.0", "toml": "3.0.0", "ws": "8.16.0", - "zod": "^3.23.4" + "zod": "^3.25.32" }, "devDependencies": { - "@types/adm-zip": "^0.5.5", + "@types/adm-zip": "^0.5.7", "@types/bcrypt": "5.0.2", "@types/dockerode": "3.3.23", "@types/js-yaml": "4.0.9", "@types/lodash": "4.17.4", "@types/micromatch": "4.0.9", - "@types/node": "^18.17.0", + "@types/node": "^18.19.104", "@types/node-os-utils": "1.3.4", "@types/node-schedule": "2.1.6", - "@types/nodemailer": "^6.4.15", + "@types/nodemailer": "^6.4.17", "@types/qrcode": "^1.5.5", - "@types/react": "^18.2.37", - "@types/react-dom": "^18.2.15", + "@types/react": "^18.3.5", + "@types/react-dom": "^18.3.0", "@types/ssh2": "1.15.1", "@types/ws": "8.5.10", - "drizzle-kit": "^0.30.4", + "drizzle-kit": "^0.30.6", "esbuild": "0.20.2", "esbuild-plugin-alias": "0.2.1", - "postcss": "^8.4.31", - "tailwindcss": "^3.4.1", + "postcss": "^8.5.3", + "tailwindcss": "^3.4.17", "tsc-alias": "1.8.10", - "tsx": "^4.7.1", - "typescript": "^5.4.2" + "tsx": "^4.16.2", + "typescript": "^5.8.3" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2236ef5ad..46ef96acc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,13 +16,13 @@ importers: specifier: 1.9.4 version: 1.9.4 '@commitlint/cli': - specifier: ^19.3.0 + specifier: ^19.8.1 version: 19.8.1(@types/node@18.19.104)(typescript@5.8.3) '@commitlint/config-conventional': - specifier: ^19.2.2 + specifier: ^19.8.1 version: 19.8.1 '@types/node': - specifier: ^18.17.0 + specifier: ^18.19.104 version: 18.19.104 dotenv: specifier: 16.4.5 @@ -34,7 +34,7 @@ importers: specifier: 1.8.4 version: 1.8.4 lint-staged: - specifier: ^15.2.7 + specifier: ^15.5.2 version: 15.5.2 tsx: specifier: 4.16.2 @@ -46,7 +46,7 @@ importers: specifier: workspace:* version: link:../../packages/server '@hono/node-server': - specifier: ^1.12.1 + specifier: ^1.14.3 version: 1.14.3(hono@4.7.10) '@hono/zod-validator': specifier: 0.3.0 @@ -55,10 +55,10 @@ importers: specifier: 1.2.3 version: 1.2.3(redis@4.7.0) dotenv: - specifier: ^16.3.1 + specifier: ^16.4.5 version: 16.4.5 hono: - specifier: ^4.5.8 + specifier: ^4.7.10 version: 4.7.10 pino: specifier: 9.4.0 @@ -76,11 +76,11 @@ importers: specifier: 4.7.0 version: 4.7.0 zod: - specifier: ^3.23.4 + specifier: ^3.25.32 version: 3.25.32 devDependencies: '@types/node': - specifier: ^20.11.17 + specifier: ^20.17.51 version: 20.17.51 '@types/react': specifier: 18.3.5 @@ -89,31 +89,31 @@ importers: specifier: 18.3.0 version: 18.3.0 tsx: - specifier: ^4.7.1 + specifier: ^4.16.2 version: 4.16.2 typescript: - specifier: ^5.4.2 + specifier: ^5.8.3 version: 5.8.3 apps/dokploy: dependencies: '@ai-sdk/anthropic': - specifier: ^1.0.6 + specifier: ^1.2.12 version: 1.2.12(zod@3.25.32) '@ai-sdk/azure': - specifier: ^1.0.15 + specifier: ^1.3.23 version: 1.3.23(zod@3.25.32) '@ai-sdk/cohere': - specifier: ^1.0.6 + specifier: ^1.2.10 version: 1.2.10(zod@3.25.32) '@ai-sdk/deepinfra': specifier: ^0.0.4 version: 0.0.4(zod@3.25.32) '@ai-sdk/mistral': - specifier: ^1.0.6 + specifier: ^1.2.8 version: 1.2.8(zod@3.25.32) '@ai-sdk/openai': - specifier: ^1.0.12 + specifier: ^1.3.22 version: 1.3.22(zod@3.25.32) '@ai-sdk/openai-compatible': specifier: ^0.0.13 @@ -125,10 +125,10 @@ importers: specifier: ^6.0.1 version: 6.0.1 '@codemirror/lang-yaml': - specifier: ^6.1.1 + specifier: ^6.1.2 version: 6.1.2 '@codemirror/language': - specifier: ^6.10.1 + specifier: ^6.11.0 version: 6.11.0 '@codemirror/legacy-modes': specifier: 6.4.0 @@ -146,70 +146,70 @@ importers: specifier: ^8.4.1 version: 8.4.1 '@hookform/resolvers': - specifier: ^3.9.0 + specifier: ^3.10.0 version: 3.10.0(react-hook-form@7.56.4(react@18.2.0)) '@octokit/auth-app': - specifier: ^6.0.4 + specifier: ^6.1.3 version: 6.1.3 '@octokit/webhooks': - specifier: ^13.2.7 + specifier: ^13.9.0 version: 13.9.0 '@radix-ui/react-accordion': specifier: 1.1.2 version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-alert-dialog': - specifier: ^1.0.5 + specifier: ^1.1.14 version: 1.1.14(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-avatar': - specifier: ^1.0.4 + specifier: ^1.1.10 version: 1.1.10(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-checkbox': - specifier: ^1.0.4 + specifier: ^1.3.2 version: 1.3.2(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-collapsible': - specifier: ^1.1.1 + specifier: ^1.1.11 version: 1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-dialog': - specifier: ^1.1.1 + specifier: ^1.1.14 version: 1.1.14(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-dropdown-menu': - specifier: ^2.0.6 + specifier: ^2.1.15 version: 2.1.15(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-label': - specifier: ^2.1.0 + specifier: ^2.1.7 version: 2.1.7(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-popover': - specifier: ^1.0.7 + specifier: ^1.1.14 version: 1.1.14(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-progress': - specifier: ^1.0.3 + specifier: ^1.1.7 version: 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-radio-group': - specifier: ^1.2.0 + specifier: ^1.3.7 version: 1.3.7(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-scroll-area': - specifier: ^1.1.0 + specifier: ^1.2.9 version: 1.2.9(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-select': - specifier: ^2.1.1 + specifier: ^2.2.5 version: 2.2.5(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-separator': - specifier: ^1.1.0 + specifier: ^1.1.7 version: 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-slot': - specifier: ^1.1.0 + specifier: ^1.2.3 version: 1.2.3(@types/react@18.3.5)(react@18.2.0) '@radix-ui/react-switch': - specifier: ^1.0.3 + specifier: ^1.2.5 version: 1.2.5(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-tabs': - specifier: ^1.0.4 + specifier: ^1.1.12 version: 1.1.12(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-toggle': - specifier: ^1.0.3 + specifier: ^1.1.9 version: 1.1.9(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-tooltip': - specifier: ^1.0.7 + specifier: ^1.2.7 version: 1.2.7(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-email/components': specifier: ^0.0.21 @@ -227,25 +227,25 @@ importers: specifier: ^4.36.1 version: 4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@tanstack/react-table': - specifier: ^8.16.0 + specifier: ^8.21.3 version: 8.21.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@trpc/client': - specifier: ^10.43.6 + specifier: ^10.45.2 version: 10.45.2(@trpc/server@10.45.2) '@trpc/next': - specifier: ^10.43.6 + specifier: ^10.45.2 version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.2)(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@trpc/react-query': - specifier: ^10.43.6 + specifier: ^10.45.2 version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@trpc/server': - specifier: ^10.43.6 + specifier: ^10.45.2 version: 10.45.2 '@uiw/codemirror-theme-github': - specifier: ^4.22.1 + specifier: ^4.23.12 version: 4.23.12(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.29.0) '@uiw/react-codemirror': - specifier: ^4.22.1 + specifier: ^4.23.12 version: 4.23.12(@babel/runtime@7.27.3)(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.0)(@codemirror/lint@6.8.5)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.29.0)(codemirror@6.0.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@xterm/addon-attach': specifier: 0.10.0 @@ -254,13 +254,13 @@ importers: specifier: 0.1.0 version: 0.1.0(@xterm/xterm@5.5.0) '@xterm/xterm': - specifier: ^5.4.0 + specifier: ^5.5.0 version: 5.5.0 adm-zip: - specifier: ^0.5.14 + specifier: ^0.5.16 version: 0.5.16 ai: - specifier: ^4.0.23 + specifier: ^4.3.16 version: 4.3.16(react@18.2.0)(zod@3.25.32) bcrypt: specifier: 5.1.1 @@ -278,13 +278,13 @@ importers: specifier: 5.4.2 version: 5.4.2 class-variance-authority: - specifier: ^0.7.0 + specifier: ^0.7.1 version: 0.7.1 clsx: - specifier: ^2.1.0 + specifier: ^2.1.1 version: 2.1.1 cmdk: - specifier: ^0.2.0 + specifier: ^0.2.1 version: 0.2.1(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) copy-to-clipboard: specifier: ^3.3.3 @@ -299,7 +299,7 @@ importers: specifier: 16.4.5 version: 16.4.5 drizzle-orm: - specifier: ^0.39.1 + specifier: ^0.39.3 version: 0.39.3(@opentelemetry/api@1.9.0)(kysely@0.28.2)(postgres@3.4.4) drizzle-zod: specifier: 0.5.1 @@ -311,10 +311,10 @@ importers: specifier: ^0.5.1 version: 0.5.1 i18next: - specifier: ^23.16.4 + specifier: ^23.16.8 version: 23.16.8 input-otp: - specifier: ^1.2.4 + specifier: ^1.4.2 version: 1.4.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) js-cookie: specifier: ^3.0.5 @@ -332,13 +332,13 @@ importers: specifier: 4.0.8 version: 4.0.8 nanoid: - specifier: '3' + specifier: 3.3.11 version: 3.3.11 next: - specifier: ^15.2.4 + specifier: ^15.3.2 version: 15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-i18next: - specifier: ^15.3.1 + specifier: ^15.4.2 version: 15.4.2(i18next@23.16.8)(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-i18next@15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3))(react@18.2.0) next-themes: specifier: ^0.2.1 @@ -359,10 +359,10 @@ importers: specifier: 3.1.2 version: 3.1.2 ollama-ai-provider: - specifier: ^1.1.0 + specifier: ^1.2.0 version: 1.2.0(zod@3.25.32) otpauth: - specifier: ^9.2.3 + specifier: ^9.4.0 version: 9.4.0 pino: specifier: 9.4.0 @@ -377,7 +377,7 @@ importers: specifier: 6.0.2 version: 6.0.2 qrcode: - specifier: ^1.5.3 + specifier: ^1.5.4 version: 1.5.4 react: specifier: 18.2.0 @@ -392,16 +392,16 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) react-hook-form: - specifier: ^7.52.1 + specifier: ^7.56.4 version: 7.56.4(react@18.2.0) react-i18next: - specifier: ^15.1.0 + specifier: ^15.5.2 version: 15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) react-markdown: - specifier: ^9.0.1 + specifier: ^9.1.0 version: 9.1.0(@types/react@18.3.5)(react@18.2.0) recharts: - specifier: ^2.12.7 + specifier: ^2.15.3 version: 2.15.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) rotating-file-stream: specifier: 3.2.3 @@ -410,7 +410,7 @@ importers: specifier: ^1.6.6 version: 1.6.6 sonner: - specifier: ^1.5.0 + specifier: ^1.7.4 version: 1.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) ssh2: specifier: 1.15.0 @@ -419,13 +419,13 @@ importers: specifier: 17.2.0 version: 17.2.0 superjson: - specifier: ^2.2.1 + specifier: ^2.2.2 version: 2.2.2 swagger-ui-react: - specifier: ^5.17.14 + specifier: ^5.22.0 version: 5.22.0(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) tailwind-merge: - specifier: ^2.2.0 + specifier: ^2.6.0 version: 2.6.0 tailwindcss-animate: specifier: ^1.0.7 @@ -434,7 +434,7 @@ importers: specifier: 3.0.0 version: 3.0.0 undici: - specifier: ^6.19.2 + specifier: ^6.21.3 version: 6.21.3 use-resize-observer: specifier: 9.1.0 @@ -446,14 +446,14 @@ importers: specifier: ^0.8.0 version: 0.8.0(xterm@5.3.0) zod: - specifier: ^3.23.4 + specifier: ^3.25.32 version: 3.25.32 zod-form-data: - specifier: ^2.0.2 + specifier: ^2.0.7 version: 2.0.7(zod@3.25.32) devDependencies: '@types/adm-zip': - specifier: ^0.5.5 + specifier: ^0.5.7 version: 0.5.7 '@types/bcrypt': specifier: 5.0.2 @@ -471,7 +471,7 @@ importers: specifier: 4.0.9 version: 4.0.9 '@types/node': - specifier: ^18.17.0 + specifier: ^18.19.104 version: 18.19.104 '@types/node-os-utils': specifier: 1.3.4 @@ -480,7 +480,7 @@ importers: specifier: 2.1.6 version: 2.1.6 '@types/nodemailer': - specifier: ^6.4.15 + specifier: ^6.4.17 version: 6.4.17 '@types/qrcode': specifier: ^1.5.5 @@ -495,7 +495,7 @@ importers: specifier: 1.15.1 version: 1.15.1 '@types/swagger-ui-react': - specifier: ^4.18.3 + specifier: ^4.19.0 version: 4.19.0 '@types/ws': specifier: 8.5.10 @@ -504,31 +504,31 @@ importers: specifier: 10.4.12 version: 10.4.12(postcss@8.5.3) drizzle-kit: - specifier: ^0.30.4 + specifier: ^0.30.6 version: 0.30.6 esbuild: specifier: 0.20.2 version: 0.20.2 lint-staged: - specifier: ^15.2.7 + specifier: ^15.5.2 version: 15.5.2 memfs: - specifier: ^4.11.0 + specifier: ^4.17.2 version: 4.17.2 tailwindcss: - specifier: ^3.4.1 + specifier: ^3.4.17 version: 3.4.17 tsx: - specifier: ^4.7.0 + specifier: ^4.16.2 version: 4.16.2 typescript: - specifier: ^5.4.2 + specifier: ^5.8.3 version: 5.8.3 vite-tsconfig-paths: specifier: 4.3.2 version: 4.3.2(typescript@5.8.3)(vite@5.4.19(@types/node@18.19.104)) vitest: - specifier: ^1.6.0 + specifier: ^1.6.1 version: 1.6.1(@types/node@18.19.104) apps/schedules: @@ -537,7 +537,7 @@ importers: specifier: workspace:* version: link:../../packages/server '@hono/node-server': - specifier: ^1.12.1 + specifier: ^1.14.3 version: 1.14.3(hono@4.7.10) '@hono/zod-validator': specifier: 0.3.0 @@ -546,13 +546,13 @@ importers: specifier: 5.4.2 version: 5.4.2 dotenv: - specifier: ^16.3.1 + specifier: ^16.4.5 version: 16.4.5 drizzle-orm: - specifier: ^0.39.1 + specifier: ^0.39.3 version: 0.39.3(@opentelemetry/api@1.9.0)(kysely@0.28.2)(postgres@3.4.4) hono: - specifier: ^4.5.8 + specifier: ^4.7.10 version: 4.7.10 ioredis: specifier: 5.4.1 @@ -570,11 +570,11 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) zod: - specifier: ^3.23.4 + specifier: ^3.25.32 version: 3.25.32 devDependencies: '@types/node': - specifier: ^20.11.17 + specifier: ^20.17.51 version: 20.17.51 '@types/react': specifier: 18.3.5 @@ -583,31 +583,31 @@ importers: specifier: 18.3.0 version: 18.3.0 tsx: - specifier: ^4.7.1 + specifier: ^4.16.2 version: 4.16.2 typescript: - specifier: ^5.4.2 + specifier: ^5.8.3 version: 5.8.3 packages/server: dependencies: '@ai-sdk/anthropic': - specifier: ^1.0.6 + specifier: ^1.2.12 version: 1.2.12(zod@3.25.32) '@ai-sdk/azure': - specifier: ^1.0.15 + specifier: ^1.3.23 version: 1.3.23(zod@3.25.32) '@ai-sdk/cohere': - specifier: ^1.0.6 + specifier: ^1.2.10 version: 1.2.10(zod@3.25.32) '@ai-sdk/deepinfra': specifier: ^0.0.4 version: 0.0.4(zod@3.25.32) '@ai-sdk/mistral': - specifier: ^1.0.6 + specifier: ^1.2.8 version: 1.2.8(zod@3.25.32) '@ai-sdk/openai': - specifier: ^1.0.12 + specifier: ^1.3.22 version: 1.3.22(zod@3.25.32) '@ai-sdk/openai-compatible': specifier: ^0.0.13 @@ -619,10 +619,10 @@ importers: specifier: ^8.4.1 version: 8.4.1 '@octokit/auth-app': - specifier: ^6.0.4 + specifier: ^6.1.3 version: 6.1.3 '@octokit/rest': - specifier: ^20.0.2 + specifier: ^20.1.2 version: 20.1.2 '@oslojs/crypto': specifier: 1.0.1 @@ -634,13 +634,13 @@ importers: specifier: ^0.0.21 version: 0.0.21(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@trpc/server': - specifier: ^10.43.6 + specifier: ^10.45.2 version: 10.45.2 adm-zip: - specifier: ^0.5.14 + specifier: ^0.5.16 version: 0.5.16 ai: - specifier: ^4.0.23 + specifier: ^4.3.16 version: 4.3.16(react@18.2.0)(zod@3.25.32) bcrypt: specifier: 5.1.1 @@ -667,7 +667,7 @@ importers: specifier: 0.10.0 version: 0.10.0(drizzle-orm@0.39.3(@opentelemetry/api@1.9.0)(kysely@0.28.2)(postgres@3.4.4)) drizzle-orm: - specifier: ^0.39.1 + specifier: ^0.39.3 version: 0.39.3(@opentelemetry/api@1.9.0)(kysely@0.28.2)(postgres@3.4.4) drizzle-zod: specifier: 0.5.1 @@ -685,7 +685,7 @@ importers: specifier: 4.0.8 version: 4.0.8 nanoid: - specifier: '3' + specifier: 3.3.11 version: 3.3.11 node-os-utils: specifier: 1.3.7 @@ -703,10 +703,10 @@ importers: specifier: 3.1.2 version: 3.1.2 ollama-ai-provider: - specifier: ^1.1.0 + specifier: ^1.2.0 version: 1.2.0(zod@3.25.32) otpauth: - specifier: ^9.2.3 + specifier: ^9.4.0 version: 9.4.0 pino: specifier: 9.4.0 @@ -721,7 +721,7 @@ importers: specifier: 6.0.2 version: 6.0.2 qrcode: - specifier: ^1.5.3 + specifier: ^1.5.4 version: 1.5.4 react: specifier: 18.2.0 @@ -745,11 +745,11 @@ importers: specifier: 8.16.0 version: 8.16.0 zod: - specifier: ^3.23.4 + specifier: ^3.25.32 version: 3.25.32 devDependencies: '@types/adm-zip': - specifier: ^0.5.5 + specifier: ^0.5.7 version: 0.5.7 '@types/bcrypt': specifier: 5.0.2 @@ -767,7 +767,7 @@ importers: specifier: 4.0.9 version: 4.0.9 '@types/node': - specifier: ^18.17.0 + specifier: ^18.19.104 version: 18.19.104 '@types/node-os-utils': specifier: 1.3.4 @@ -776,7 +776,7 @@ importers: specifier: 2.1.6 version: 2.1.6 '@types/nodemailer': - specifier: ^6.4.15 + specifier: ^6.4.17 version: 6.4.17 '@types/qrcode': specifier: ^1.5.5 @@ -794,7 +794,7 @@ importers: specifier: 8.5.10 version: 8.5.10 drizzle-kit: - specifier: ^0.30.4 + specifier: ^0.30.6 version: 0.30.6 esbuild: specifier: 0.20.2 @@ -803,19 +803,19 @@ importers: specifier: 0.2.1 version: 0.2.1 postcss: - specifier: ^8.4.31 + specifier: ^8.5.3 version: 8.5.3 tailwindcss: - specifier: ^3.4.1 + specifier: ^3.4.17 version: 3.4.17 tsc-alias: specifier: 1.8.10 version: 1.8.10 tsx: - specifier: ^4.7.1 + specifier: ^4.16.2 version: 4.16.2 typescript: - specifier: ^5.4.2 + specifier: ^5.8.3 version: 5.8.3 packages: @@ -9780,13 +9780,13 @@ snapshots: '@types/adm-zip@0.5.7': dependencies: - '@types/node': 18.19.104 + '@types/node': 20.17.51 '@types/aws-lambda@8.10.149': {} '@types/bcrypt@5.0.2': dependencies: - '@types/node': 18.19.104 + '@types/node': 20.17.51 '@types/braces@3.0.5': {} @@ -9794,7 +9794,7 @@ snapshots: '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 18.19.104 + '@types/node': 20.17.51 '@types/d3-array@3.2.1': {} @@ -9828,13 +9828,13 @@ snapshots: '@types/docker-modem@3.0.6': dependencies: - '@types/node': 18.19.104 + '@types/node': 20.17.51 '@types/ssh2': 1.15.1 '@types/dockerode@3.3.23': dependencies: '@types/docker-modem': 3.0.6 - '@types/node': 18.19.104 + '@types/node': 20.17.51 '@types/estree-jsx@1.0.5': dependencies: @@ -9864,7 +9864,7 @@ snapshots: '@types/jsonwebtoken@9.0.9': dependencies: '@types/ms': 2.1.0 - '@types/node': 18.19.104 + '@types/node': 20.17.51 '@types/lodash@4.17.4': {} @@ -9882,7 +9882,7 @@ snapshots: '@types/node-schedule@2.1.6': dependencies: - '@types/node': 18.19.104 + '@types/node': 20.17.51 '@types/node@18.19.104': dependencies: @@ -9894,13 +9894,13 @@ snapshots: '@types/nodemailer@6.4.17': dependencies: - '@types/node': 18.19.104 + '@types/node': 20.17.51 '@types/prop-types@15.7.14': {} '@types/qrcode@1.5.5': dependencies: - '@types/node': 18.19.104 + '@types/node': 20.17.51 '@types/ramda@0.30.2': dependencies: @@ -9917,7 +9917,7 @@ snapshots: '@types/readable-stream@4.0.20': dependencies: - '@types/node': 18.19.104 + '@types/node': 20.17.51 '@types/ssh2@1.15.1': dependencies: @@ -9938,7 +9938,7 @@ snapshots: '@types/ws@8.5.10': dependencies: - '@types/node': 18.19.104 + '@types/node': 20.17.51 '@uiw/codemirror-extensions-basic-setup@4.23.12(@codemirror/autocomplete@6.18.6)(@codemirror/commands@6.8.1)(@codemirror/language@6.11.0)(@codemirror/lint@6.8.5)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.29.0)': dependencies: @@ -13223,7 +13223,7 @@ snapshots: stripe@17.2.0: dependencies: - '@types/node': 18.19.104 + '@types/node': 20.17.51 qs: 6.14.0 style-mod@4.1.2: {} From 22a26e9873376a68bb43047dfbf411e3bfd17bfa Mon Sep 17 00:00:00 2001 From: Vyacheslav Scherbinin Date: Wed, 9 Jul 2025 13:53:05 +0700 Subject: [PATCH 03/41] fix(ui): application tabs overflow --- .../services/application/[applicationId].tsx | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx index a1c80d7dd..e1f87b652 100644 --- a/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx +++ b/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx @@ -218,17 +218,9 @@ const Service = ( router.push(newPath); }} > -
+
+ className="flex gap-8 justify-start"> General Environment Domains From 3a82c4b27bf41659cbbef545a0737390fb4c35cd Mon Sep 17 00:00:00 2001 From: Vyacheslav Scherbinin Date: Wed, 9 Jul 2025 13:53:14 +0700 Subject: [PATCH 04/41] fix(ui): compose tabs overflow --- .../[projectId]/services/compose/[composeId].tsx | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx index 957051429..067b0d441 100644 --- a/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx +++ b/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx @@ -211,17 +211,8 @@ const Service = ( router.push(newPath); }} > -
- +
+ General Environment Domains From 9b2ea1cade145d39da1823d79ab2f5a6aa7e1a51 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Wed, 9 Jul 2025 07:07:04 +0000 Subject: [PATCH 05/41] [autofix.ci] apply automated fixes --- .../[projectId]/services/application/[applicationId].tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx index e1f87b652..5fd1b0b80 100644 --- a/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx +++ b/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx @@ -219,8 +219,7 @@ const Service = ( }} >
- + General Environment Domains From caea934f885a8be09d18c2480fa74d75ca727a7e Mon Sep 17 00:00:00 2001 From: Vyacheslav Scherbinin Date: Wed, 9 Jul 2025 14:16:02 +0700 Subject: [PATCH 06/41] fix(typo): double space --- .../services/application/[applicationId].tsx | 12 ++++++------ .../[projectId]/services/compose/[composeId].tsx | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx index 5fd1b0b80..5a56e5eb5 100644 --- a/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx +++ b/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx @@ -111,13 +111,13 @@ const Service = (
- +
-
+
@@ -299,7 +299,7 @@ const Service = ( -
+
-
+
-
+
-
+
- +
-
+
@@ -331,7 +331,7 @@ const Service = ( -
+
Date: Wed, 9 Jul 2025 14:20:07 +0700 Subject: [PATCH 07/41] fix(ui): application provider tabs layout --- .../components/dashboard/application/general/generic/show.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/general/generic/show.tsx b/apps/dokploy/components/dashboard/application/general/generic/show.tsx index 13d3a6d8f..786c79e5c 100644 --- a/apps/dokploy/components/dashboard/application/general/generic/show.tsx +++ b/apps/dokploy/components/dashboard/application/general/generic/show.tsx @@ -153,8 +153,8 @@ export const ShowProviderForm = ({ applicationId }: Props) => { setSab(e as TabState); }} > -
- +
+ Date: Wed, 9 Jul 2025 14:20:17 +0700 Subject: [PATCH 08/41] fix(ui): compose provider tabs layout --- .../components/dashboard/compose/general/generic/show.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/dokploy/components/dashboard/compose/general/generic/show.tsx b/apps/dokploy/components/dashboard/compose/general/generic/show.tsx index cd510ad69..4ea1104bb 100644 --- a/apps/dokploy/components/dashboard/compose/general/generic/show.tsx +++ b/apps/dokploy/components/dashboard/compose/general/generic/show.tsx @@ -142,8 +142,8 @@ export const ShowProviderFormCompose = ({ composeId }: Props) => { setSab(e as TabState); }} > -
- +
+ Date: Wed, 9 Jul 2025 18:17:32 +0700 Subject: [PATCH 09/41] fix(config): the min- and max- variants are not supported with a screens configuration containing mixed units --- apps/dokploy/tailwind.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/tailwind.config.ts b/apps/dokploy/tailwind.config.ts index 4a7ec8ac0..15ea693d3 100644 --- a/apps/dokploy/tailwind.config.ts +++ b/apps/dokploy/tailwind.config.ts @@ -23,7 +23,7 @@ const config = { sans: ["var(--font-inter)", ...defaultTheme.fontFamily.sans], }, screens: { - "3xl": "120rem", + "3xl": "1920px", }, maxWidth: { "2xl": "40rem", From 027853a3616c6347eb1c7ceb9005c75e9970c8b0 Mon Sep 17 00:00:00 2001 From: Vyacheslav Scherbinin Date: Wed, 9 Jul 2025 18:20:07 +0700 Subject: [PATCH 10/41] fix(ui): change gap --- .../[projectId]/services/application/[applicationId].tsx | 2 +- .../project/[projectId]/services/compose/[composeId].tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx index 5a56e5eb5..2eb31b445 100644 --- a/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx +++ b/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx @@ -219,7 +219,7 @@ const Service = ( }} >
- + General Environment Domains diff --git a/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx index ce1638599..f7e793a64 100644 --- a/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx +++ b/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx @@ -212,7 +212,7 @@ const Service = ( }} >
- + General Environment Domains From 70e08c96eb16a449da4de1cf75c2636510cd1a21 Mon Sep 17 00:00:00 2001 From: croatialu Date: Fri, 11 Jul 2025 11:55:16 +0800 Subject: [PATCH 11/41] fix: Add gitlabUrl calculation logic and update link references - Use the useMemo hook to calculate gitlabUrl in the SaveGitlabProvider component. - Update link references to use the dynamically generated gitlabUrl, ensuring links correctly point to the corresponding GitLab repositories. --- .../general/generic/save-gitlab-provider.tsx | 14 ++++++++++++-- apps/dokploy/server/api/routers/gitlab.ts | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/general/generic/save-gitlab-provider.tsx b/apps/dokploy/components/dashboard/application/general/generic/save-gitlab-provider.tsx index 3b054fc99..2995e45f3 100644 --- a/apps/dokploy/components/dashboard/application/general/generic/save-gitlab-provider.tsx +++ b/apps/dokploy/components/dashboard/application/general/generic/save-gitlab-provider.tsx @@ -43,7 +43,7 @@ import { api } from "@/utils/api"; import { zodResolver } from "@hookform/resolvers/zod"; import { CheckIcon, ChevronsUpDown, HelpCircle, Plus, X } from "lucide-react"; import Link from "next/link"; -import { useEffect } from "react"; +import { useEffect, useMemo } from "react"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import { z } from "zod"; @@ -96,6 +96,16 @@ export const SaveGitlabProvider = ({ applicationId }: Props) => { const repository = form.watch("repository"); const gitlabId = form.watch("gitlabId"); + const gitlabUrl = useMemo(() => { + const url = gitlabProviders?.find( + (provider) => provider.gitlabId === gitlabId, + )?.gitlabUrl; + + const gitlabUrl = url?.replace(/\/$/, ""); + + return gitlabUrl || "https://gitlab.com"; + }, [gitlabId, gitlabProviders]); + const { data: repositories, isLoading: isLoadingRepositories, @@ -224,7 +234,7 @@ export const SaveGitlabProvider = ({ applicationId }: Props) => { Repository {field.value.owner && field.value.repo && ( Date: Fri, 11 Jul 2025 12:39:14 +0800 Subject: [PATCH 12/41] fix(gitlab): Support dynamically generating clone URLs based on protocols --- packages/server/src/utils/providers/gitlab.ts | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/packages/server/src/utils/providers/gitlab.ts b/packages/server/src/utils/providers/gitlab.ts index 7f14e008a..8fa480ba9 100644 --- a/packages/server/src/utils/providers/gitlab.ts +++ b/packages/server/src/utils/providers/gitlab.ts @@ -84,6 +84,20 @@ export type ApplicationWithGitlab = InferResultType< export type ComposeWithGitlab = InferResultType<"compose", { gitlab: true }>; +export type GitlabInfo = ApplicationWithGitlab['gitlab'] | ComposeWithGitlab['gitlab']; + +const getGitlabRepoClone = (gitlab: GitlabInfo, gitlabPathNamespace: string | null) => { + const repoClone = `${gitlab?.gitlabUrl.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; + return repoClone; +}; + +const getGitlabCloneUrl = (gitlab: GitlabInfo, repoClone: string) => { + const isSecure = gitlab?.gitlabUrl.startsWith("https://"); + const cloneUrl = `http${isSecure ? "s" : ""}://oauth2:${gitlab?.accessToken}@${repoClone}`; + return cloneUrl; +}; + + export const cloneGitlabRepository = async ( entity: ApplicationWithGitlab | ComposeWithGitlab, logPath: string, @@ -128,11 +142,10 @@ export const cloneGitlabRepository = async ( const basePath = isCompose ? COMPOSE_PATH : APPLICATIONS_PATH; const outputPath = join(basePath, appName, "code"); await recreateDirectory(outputPath); - const repoclone = `${gitlab?.gitlabUrl.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; - const cloneUrl = `https://oauth2:${gitlab?.accessToken}@${repoclone}`; - + const repoClone = getGitlabRepoClone(gitlab, gitlabPathNamespace); + const cloneUrl = getGitlabCloneUrl(gitlab, repoClone); try { - writeStream.write(`\nCloning Repo ${repoclone} to ${outputPath}: ✅\n`); + writeStream.write(`\nCloning Repo ${repoClone} to ${outputPath}: ✅\n`); const cloneArgs = [ "clone", "--branch", @@ -150,7 +163,7 @@ export const cloneGitlabRepository = async ( writeStream.write(data); } }); - writeStream.write(`\nCloned ${repoclone}: ✅\n`); + writeStream.write(`\nCloned ${repoClone}: ✅\n`); } catch (error) { writeStream.write(`ERROR Cloning: ${error}: ❌`); throw error; @@ -221,17 +234,16 @@ export const getGitlabCloneCommand = async ( const basePath = isCompose ? COMPOSE_PATH : APPLICATIONS_PATH; const outputPath = join(basePath, appName, "code"); await recreateDirectory(outputPath); - const repoclone = `${gitlab?.gitlabUrl.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; - const cloneUrl = `https://oauth2:${gitlab?.accessToken}@${repoclone}`; - + const repoClone = getGitlabRepoClone(gitlab, gitlabPathNamespace); + const cloneUrl = getGitlabCloneUrl(gitlab, repoClone); const cloneCommand = ` rm -rf ${outputPath}; mkdir -p ${outputPath}; if ! git clone --branch ${gitlabBranch} --depth 1 ${enableSubmodules ? "--recurse-submodules" : ""} --progress ${cloneUrl} ${outputPath} >> ${logPath} 2>&1; then - echo "❌ [ERROR] Fail to clone the repository ${repoclone}" >> ${logPath}; + echo "❌ [ERROR] Fail to clone the repository ${repoClone}" >> ${logPath}; exit 1; fi -echo "Cloned ${repoclone} to ${outputPath}: ✅" >> ${logPath}; +echo "Cloned ${repoClone} to ${outputPath}: ✅" >> ${logPath}; `; return cloneCommand; @@ -340,11 +352,8 @@ export const cloneRawGitlabRepository = async (entity: Compose) => { const basePath = COMPOSE_PATH; const outputPath = join(basePath, appName, "code"); await recreateDirectory(outputPath); - const gitlabUrl = gitlabProvider.gitlabUrl; - // What happen with oauth in self hosted instances? - const repoclone = `${gitlabUrl.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; - const cloneUrl = `https://oauth2:${gitlabProvider?.accessToken}@${repoclone}`; - + const repoClone = getGitlabRepoClone(gitlabProvider, gitlabPathNamespace); + const cloneUrl = getGitlabCloneUrl(gitlabProvider, repoClone); try { const cloneArgs = [ "clone", @@ -390,8 +399,8 @@ export const cloneRawGitlabRepositoryRemote = async (compose: Compose) => { await refreshGitlabToken(gitlabId); const basePath = COMPOSE_PATH; const outputPath = join(basePath, appName, "code"); - const repoclone = `${gitlabProvider.gitlabUrl.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; - const cloneUrl = `https://oauth2:${gitlabProvider?.accessToken}@${repoclone}`; + const repoClone = getGitlabRepoClone(gitlabProvider, gitlabPathNamespace); + const cloneUrl = getGitlabCloneUrl(gitlabProvider, repoClone); try { const command = ` rm -rf ${outputPath}; From 0aac6da554b5be398a43f0419ade47c25883ee14 Mon Sep 17 00:00:00 2001 From: croatialu Date: Fri, 11 Jul 2025 14:19:58 +0800 Subject: [PATCH 13/41] fix: Optimize the code editor component, adjust the style and structure to ensure the overlay is correctly rendered in the disabled state. --- apps/dokploy/components/shared/code-editor.tsx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/apps/dokploy/components/shared/code-editor.tsx b/apps/dokploy/components/shared/code-editor.tsx index 23e26e887..19ee80114 100644 --- a/apps/dokploy/components/shared/code-editor.tsx +++ b/apps/dokploy/components/shared/code-editor.tsx @@ -147,7 +147,7 @@ export const CodeEditor = ({ }: Props) => { const { resolvedTheme } = useTheme(); return ( -
+
- {props.disabled && ( -
- )} + > + {props.disabled && ( +
+ )} +
); }; From 58e6a14cd6133d1ce79838f2c46ab4926ccbb03d Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sat, 12 Jul 2025 04:28:55 +0000 Subject: [PATCH 14/41] [autofix.ci] apply automated fixes --- apps/dokploy/components/shared/code-editor.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/dokploy/components/shared/code-editor.tsx b/apps/dokploy/components/shared/code-editor.tsx index 19ee80114..fe50e8b4a 100644 --- a/apps/dokploy/components/shared/code-editor.tsx +++ b/apps/dokploy/components/shared/code-editor.tsx @@ -168,8 +168,8 @@ export const CodeEditor = ({ props.lineWrapping ? EditorView.lineWrapping : [], language === "yaml" ? autocompletion({ - override: [dockerComposeComplete], - }) + override: [dockerComposeComplete], + }) : [], ]} {...props} From a5b95d8cf3e41b6ccbe13daec66fc551e55cab5b Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Fri, 11 Jul 2025 22:52:47 -0600 Subject: [PATCH 15/41] feat(project): update application name handling during duplication - Extracted and modified the application name by removing the suffix after the last hyphen when duplicating various application types (Postgres, MariaDB, Mongo, MySQL, Redis, Compose). - Ensured consistent naming for duplicated applications across different database types. --- apps/dokploy/server/api/routers/project.ts | 60 +++++++++++++++++++--- 1 file changed, 54 insertions(+), 6 deletions(-) diff --git a/apps/dokploy/server/api/routers/project.ts b/apps/dokploy/server/api/routers/project.ts index 66e0928f5..5744a103e 100644 --- a/apps/dokploy/server/api/routers/project.ts +++ b/apps/dokploy/server/api/routers/project.ts @@ -360,11 +360,17 @@ export const projectRouter = createTRPCRouter({ redirects, previewDeployments, mounts, + appName, ...application } = await findApplicationById(id); + const newAppName = appName.substring( + 0, + appName.lastIndexOf("-"), + ); const newApplication = await createApplication({ ...application, + appName: newAppName, name: input.duplicateInSameProject ? `${application.name} (copy)` : application.name, @@ -424,11 +430,17 @@ export const projectRouter = createTRPCRouter({ break; } case "postgres": { - const { postgresId, mounts, backups, ...postgres } = + const { postgresId, mounts, backups, appName, ...postgres } = await findPostgresById(id); + const newAppName = appName.substring( + 0, + appName.lastIndexOf("-"), + ); + const newPostgres = await createPostgres({ ...postgres, + appName: newAppName, name: input.duplicateInSameProject ? `${postgres.name} (copy)` : postgres.name, @@ -454,10 +466,17 @@ export const projectRouter = createTRPCRouter({ break; } case "mariadb": { - const { mariadbId, mounts, backups, ...mariadb } = + const { mariadbId, mounts, backups, appName, ...mariadb } = await findMariadbById(id); + + const newAppName = appName.substring( + 0, + appName.lastIndexOf("-"), + ); + const newMariadb = await createMariadb({ ...mariadb, + appName: newAppName, name: input.duplicateInSameProject ? `${mariadb.name} (copy)` : mariadb.name, @@ -483,10 +502,17 @@ export const projectRouter = createTRPCRouter({ break; } case "mongo": { - const { mongoId, mounts, backups, ...mongo } = + const { mongoId, mounts, backups, appName, ...mongo } = await findMongoById(id); + + const newAppName = appName.substring( + 0, + appName.lastIndexOf("-"), + ); + const newMongo = await createMongo({ ...mongo, + appName: newAppName, name: input.duplicateInSameProject ? `${mongo.name} (copy)` : mongo.name, @@ -512,10 +538,17 @@ export const projectRouter = createTRPCRouter({ break; } case "mysql": { - const { mysqlId, mounts, backups, ...mysql } = + const { mysqlId, mounts, backups, appName, ...mysql } = await findMySqlById(id); + + const newAppName = appName.substring( + 0, + appName.lastIndexOf("-"), + ); + const newMysql = await createMysql({ ...mysql, + appName: newAppName, name: input.duplicateInSameProject ? `${mysql.name} (copy)` : mysql.name, @@ -541,9 +574,17 @@ export const projectRouter = createTRPCRouter({ break; } case "redis": { - const { redisId, mounts, ...redis } = await findRedisById(id); + const { redisId, mounts, appName, ...redis } = + await findRedisById(id); + + const newAppName = appName.substring( + 0, + appName.lastIndexOf("-"), + ); + const newRedis = await createRedis({ ...redis, + appName: newAppName, name: input.duplicateInSameProject ? `${redis.name} (copy)` : redis.name, @@ -562,10 +603,17 @@ export const projectRouter = createTRPCRouter({ break; } case "compose": { - const { composeId, mounts, domains, ...compose } = + const { composeId, mounts, domains, appName, ...compose } = await findComposeById(id); + + const newAppName = appName.substring( + 0, + appName.lastIndexOf("-"), + ); + const newCompose = await createCompose({ ...compose, + appName: newAppName, name: input.duplicateInSameProject ? `${compose.name} (copy)` : compose.name, From d959f59c2dfee835cf3de370644cb9336f073c01 Mon Sep 17 00:00:00 2001 From: Vyacheslav Scherbinin Date: Sat, 12 Jul 2025 13:36:28 +0700 Subject: [PATCH 16/41] fix(typo): double space --- .../settings/git/show-git-providers.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx b/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx index 35d9ef0d7..bd7e5443e 100644 --- a/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx +++ b/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx @@ -53,7 +53,7 @@ export const ShowGitProviders = () => { return (
- +
@@ -73,14 +73,14 @@ export const ShowGitProviders = () => { ) : ( <> {data?.length === 0 ? ( -
+
Create your first Git Provider
-
+
@@ -90,13 +90,13 @@ export const ShowGitProviders = () => {
) : ( -
+
Available Providers
-
+
@@ -158,7 +158,7 @@ export const ShowGitProviders = () => {
{!haveGithubRequirements && isGithub && ( -
+
{
)} {haveGithubRequirements && isGithub && ( -
+
{
)} {!haveGitlabRequirements && isGitlab && ( -
+
Date: Sat, 12 Jul 2025 13:50:43 +0700 Subject: [PATCH 17/41] fix(ui): buttons wrap --- .../components/dashboard/settings/git/show-git-providers.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx b/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx index bd7e5443e..f7c2abc26 100644 --- a/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx +++ b/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx @@ -80,7 +80,7 @@ export const ShowGitProviders = () => {
-
+
From 5aae36996e1e8eae5ebc90b1d35df0c733a74397 Mon Sep 17 00:00:00 2001 From: Vyacheslav Scherbinin Date: Sat, 12 Jul 2025 13:52:53 +0700 Subject: [PATCH 18/41] fix(ui): buttons grow --- .../components/dashboard/settings/git/show-git-providers.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx b/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx index f7c2abc26..ff0334140 100644 --- a/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx +++ b/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx @@ -80,7 +80,7 @@ export const ShowGitProviders = () => {
-
+
From baa5cd5c58e1679ea76db504416a94b28f8d2182 Mon Sep 17 00:00:00 2001 From: Vyacheslav Scherbinin Date: Sat, 12 Jul 2025 14:05:44 +0700 Subject: [PATCH 19/41] fix(ui): available git providers layout --- .../components/dashboard/settings/git/show-git-providers.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx b/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx index ff0334140..05273ca2a 100644 --- a/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx +++ b/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx @@ -96,7 +96,7 @@ export const ShowGitProviders = () => { Available Providers
-
+
From d87205c4dc15c8f1f4a36d459c0f93c0ca918d18 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 13 Jul 2025 01:56:17 -0600 Subject: [PATCH 20/41] chore: update README.md by removing outdated sponsor links and adjusting community backers section --- README.md | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 8c4c7c6e9..bd27474e0 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,6 @@ For detailed documentation, visit [docs.dokploy.com](https://docs.dokploy.com).
Hostinger LX Aer - Mandarin - Lightnode
@@ -89,25 +87,18 @@ For detailed documentation, visit [docs.dokploy.com](https://docs.dokploy.com). ### Supporting Members 🥉
- Lightspeed.run + Cloudblast.io - Startupfame - Itsdb-center - Openalternative + Synexa
### Community Backers 🤝 -
- Steamsets.com - Rivo.gg - Rivo.gg -
#### Organizations: -[![Sponsors on Open Collective](https://opencollective.com/dokploy/organizations.svg?width=890)](https://opencollective.com/dokploy) +[Sponsors on Open Collective](https://opencollective.com/dokploy) #### Individuals: From c03b9509c83e437b72cfd747c73e186253fa0946 Mon Sep 17 00:00:00 2001 From: Jhon Date: Sun, 13 Jul 2025 11:36:10 -0300 Subject: [PATCH 21/41] fix(ui): resolve dialog infinite render loops with tall content - Force modal=false on all dialogs to prevent Radix UI render loops - Add React context to share dialog state between components - Implement custom overlay with proper click-to-close behavior - Add body scroll lock tied to dialog open state (prevents stuck scroll) - Create scrollable content wrapper with overscroll-contain - Remove complex wheel event handlers that caused tab hangs - Simplify dialog architecture for better maintainability --- apps/dokploy/components/ui/dialog.tsx | 105 ++++++++++++++++++++------ 1 file changed, 83 insertions(+), 22 deletions(-) diff --git a/apps/dokploy/components/ui/dialog.tsx b/apps/dokploy/components/ui/dialog.tsx index 37e8f685f..8ed1520ed 100644 --- a/apps/dokploy/components/ui/dialog.tsx +++ b/apps/dokploy/components/ui/dialog.tsx @@ -1,10 +1,19 @@ import * as DialogPrimitive from "@radix-ui/react-dialog"; import { X } from "lucide-react"; import * as React from "react"; - import { cn } from "@/lib/utils"; -const Dialog = DialogPrimitive.Root; +const DialogContext = React.createContext<{ + onOpenChange?: (open: boolean) => void; + open?: boolean; +}>({}); + +const Dialog = ({ onOpenChange, open, ...props }: React.ComponentPropsWithoutRef) => ( + + + +); +Dialog.displayName = DialogPrimitive.Root.displayName; const DialogTrigger = DialogPrimitive.Trigger; @@ -30,25 +39,77 @@ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName; const DialogContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - - - -
{children}
- - - Close - -
-
-)); +>(({ className, children, ...props }, ref) => { + const contentRef = React.useRef(null); + const { onOpenChange, open } = React.useContext(DialogContext); + + React.useEffect(() => { + if (!open) return; + + const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; + const body = document.body; + const originalPaddingRight = body.style.paddingRight; + const originalOverflow = body.style.overflow; + + body.style.overflow = 'hidden'; + if (scrollbarWidth > 0) { + body.style.paddingRight = `${scrollbarWidth}px`; + } + + return () => { + body.style.overflow = originalOverflow; + body.style.paddingRight = originalPaddingRight; + }; + }, [open]); + + const handleOverlayClick = React.useCallback((e: React.MouseEvent) => { + if (e.target === e.currentTarget && onOpenChange) { + onOpenChange(false); + } + }, [onOpenChange]); + + const hasPaddingOverride = className?.includes("p-0"); + + return ( + +
+ { + const originalEvent = e.detail.originalEvent; + const target = originalEvent.target as HTMLElement; + if (target.closest('[data-radix-popper-content-wrapper]')) { + e.preventDefault(); + } + }} + {...props} + > +
+ {children} +
+ + + + Close + +
+ + ); +}); DialogContent.displayName = DialogPrimitive.Content.displayName; const DialogHeader = ({ @@ -117,4 +178,4 @@ export { DialogFooter, DialogTitle, DialogDescription, -}; +}; \ No newline at end of file From 257c0eb1068c2c3d7ba5042ee0d65e5fd6da3737 Mon Sep 17 00:00:00 2001 From: Jhon Date: Sun, 13 Jul 2025 12:14:36 -0300 Subject: [PATCH 22/41] fix(ui): remove max-h-screen and overflow-y-auto from service update dialogs Remove problematic CSS classes that cause infinite render loops in: - Application update dialog - Database update dialogs (Redis, MariaDB, MongoDB, PostgreSQL, MySQL) - Compose update dialog These classes are now handled internally by the DialogContent component. --- .../components/dashboard/application/update-application.tsx | 2 +- apps/dokploy/components/dashboard/compose/update-compose.tsx | 2 +- apps/dokploy/components/dashboard/mariadb/update-mariadb.tsx | 2 +- apps/dokploy/components/dashboard/mongo/update-mongo.tsx | 2 +- apps/dokploy/components/dashboard/mysql/update-mysql.tsx | 2 +- apps/dokploy/components/dashboard/postgres/update-postgres.tsx | 2 +- apps/dokploy/components/dashboard/redis/update-redis.tsx | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/update-application.tsx b/apps/dokploy/components/dashboard/application/update-application.tsx index 934a596df..4d4190fa2 100644 --- a/apps/dokploy/components/dashboard/application/update-application.tsx +++ b/apps/dokploy/components/dashboard/application/update-application.tsx @@ -99,7 +99,7 @@ export const UpdateApplication = ({ applicationId }: Props) => { - + Modify Application Update the application data diff --git a/apps/dokploy/components/dashboard/compose/update-compose.tsx b/apps/dokploy/components/dashboard/compose/update-compose.tsx index c89618601..f9c38a6bc 100644 --- a/apps/dokploy/components/dashboard/compose/update-compose.tsx +++ b/apps/dokploy/components/dashboard/compose/update-compose.tsx @@ -99,7 +99,7 @@ export const UpdateCompose = ({ composeId }: Props) => { - + Modify Compose Update the compose data diff --git a/apps/dokploy/components/dashboard/mariadb/update-mariadb.tsx b/apps/dokploy/components/dashboard/mariadb/update-mariadb.tsx index 64705b693..9d29d1ac4 100644 --- a/apps/dokploy/components/dashboard/mariadb/update-mariadb.tsx +++ b/apps/dokploy/components/dashboard/mariadb/update-mariadb.tsx @@ -97,7 +97,7 @@ export const UpdateMariadb = ({ mariadbId }: Props) => { - + Modify MariaDB Update the MariaDB data diff --git a/apps/dokploy/components/dashboard/mongo/update-mongo.tsx b/apps/dokploy/components/dashboard/mongo/update-mongo.tsx index d42f406f0..48dbcf4d7 100644 --- a/apps/dokploy/components/dashboard/mongo/update-mongo.tsx +++ b/apps/dokploy/components/dashboard/mongo/update-mongo.tsx @@ -99,7 +99,7 @@ export const UpdateMongo = ({ mongoId }: Props) => { - + Modify MongoDB Update the MongoDB data diff --git a/apps/dokploy/components/dashboard/mysql/update-mysql.tsx b/apps/dokploy/components/dashboard/mysql/update-mysql.tsx index ec3c1b454..9b1296478 100644 --- a/apps/dokploy/components/dashboard/mysql/update-mysql.tsx +++ b/apps/dokploy/components/dashboard/mysql/update-mysql.tsx @@ -97,7 +97,7 @@ export const UpdateMysql = ({ mysqlId }: Props) => { - + Modify MySQL Update the MySQL data diff --git a/apps/dokploy/components/dashboard/postgres/update-postgres.tsx b/apps/dokploy/components/dashboard/postgres/update-postgres.tsx index f70cd8c90..2695953cd 100644 --- a/apps/dokploy/components/dashboard/postgres/update-postgres.tsx +++ b/apps/dokploy/components/dashboard/postgres/update-postgres.tsx @@ -99,7 +99,7 @@ export const UpdatePostgres = ({ postgresId }: Props) => { - + Modify Postgres Update the Postgres data diff --git a/apps/dokploy/components/dashboard/redis/update-redis.tsx b/apps/dokploy/components/dashboard/redis/update-redis.tsx index 8d720703e..b04e1ff45 100644 --- a/apps/dokploy/components/dashboard/redis/update-redis.tsx +++ b/apps/dokploy/components/dashboard/redis/update-redis.tsx @@ -97,7 +97,7 @@ export const UpdateRedis = ({ redisId }: Props) => { - + Modify Redis Update the redis data From c7344190b4939c0f19f6de575bbcbb078264f29c Mon Sep 17 00:00:00 2001 From: Jhon Date: Sun, 13 Jul 2025 12:14:49 -0300 Subject: [PATCH 23/41] fix(ui): remove max-h-screen and overflow-y-auto from deployment dialogs Remove problematic CSS classes from: - Application deployment modals - Docker logs modals - Swarm application dialogs Fixes infinite render loops with tall content. --- .../dashboard/application/deployments/show-deployment.tsx | 4 ++-- .../application/deployments/show-deployments-modal.tsx | 2 +- .../components/dashboard/docker/logs/docker-logs-id.tsx | 2 +- .../components/dashboard/docker/logs/line-count-filter.tsx | 2 +- .../dashboard/docker/logs/show-docker-modal-logs.tsx | 2 +- .../dashboard/docker/logs/show-docker-modal-stack-logs.tsx | 2 +- .../dashboard/swarm/applications/show-applications.tsx | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/deployments/show-deployment.tsx b/apps/dokploy/components/dashboard/application/deployments/show-deployment.tsx index e6fdb38be..83a4b46f4 100644 --- a/apps/dokploy/components/dashboard/application/deployments/show-deployment.tsx +++ b/apps/dokploy/components/dashboard/application/deployments/show-deployment.tsx @@ -124,7 +124,7 @@ export const ShowDeployment = ({ } }} > - + Deployment @@ -158,7 +158,7 @@ export const ShowDeployment = ({
{" "} {filteredLogs.length > 0 ? ( diff --git a/apps/dokploy/components/dashboard/application/deployments/show-deployments-modal.tsx b/apps/dokploy/components/dashboard/application/deployments/show-deployments-modal.tsx index 24446902d..4631a066e 100644 --- a/apps/dokploy/components/dashboard/application/deployments/show-deployments-modal.tsx +++ b/apps/dokploy/components/dashboard/application/deployments/show-deployments-modal.tsx @@ -50,7 +50,7 @@ export const ShowDeploymentsModal = ({ )} - + = ({
{filteredLogs.length > 0 ? ( filteredLogs.map((filteredLog: LogLine, index: number) => ( diff --git a/apps/dokploy/components/dashboard/docker/logs/line-count-filter.tsx b/apps/dokploy/components/dashboard/docker/logs/line-count-filter.tsx index dd7b63af5..23b273c86 100644 --- a/apps/dokploy/components/dashboard/docker/logs/line-count-filter.tsx +++ b/apps/dokploy/components/dashboard/docker/logs/line-count-filter.tsx @@ -138,7 +138,7 @@ export function LineCountFilter({ }} />
- + {lineCountOptions.map((option) => { const isSelected = value === option.value; diff --git a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx index 619b25d0c..265005615 100644 --- a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx +++ b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx @@ -40,7 +40,7 @@ export const ShowDockerModalLogs = ({ {children} - + View Logs View the logs for {containerId} diff --git a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx index 36719bb07..803ea9840 100644 --- a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx +++ b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx @@ -40,7 +40,7 @@ export const ShowDockerModalStackLogs = ({ {children} - + View Logs View the logs for {containerId} diff --git a/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx b/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx index 7e0f25fed..626e2a282 100644 --- a/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx +++ b/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx @@ -87,7 +87,7 @@ export const ShowNodeApplications = ({ serverId }: Props) => { Services - + Node Applications From 81040c899f730e9e927623b58bf98b78b66fab14 Mon Sep 17 00:00:00 2001 From: Jhon Date: Sun, 13 Jul 2025 12:15:09 -0300 Subject: [PATCH 24/41] fix(ui): remove max-h-screen and overflow-y-auto from application feature dialogs Remove problematic CSS classes from: - Domain management dialogs - Preview deployment dialogs - Schedule configuration dialogs - Volume backup dialogs Ensures proper scrolling without render loops. --- .../dashboard/application/domains/dns-helper-modal.tsx | 2 +- .../components/dashboard/application/domains/handle-domain.tsx | 2 +- .../application/preview-deployments/add-preview-domain.tsx | 2 +- .../application/preview-deployments/show-preview-settings.tsx | 2 +- .../dashboard/application/schedules/handle-schedules.tsx | 2 +- .../application/volume-backups/handle-volume-backups.tsx | 2 +- .../application/volume-backups/restore-volume-backups.tsx | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/domains/dns-helper-modal.tsx b/apps/dokploy/components/dashboard/application/domains/dns-helper-modal.tsx index e7b2f1877..c67c2fbfc 100644 --- a/apps/dokploy/components/dashboard/application/domains/dns-helper-modal.tsx +++ b/apps/dokploy/components/dashboard/application/domains/dns-helper-modal.tsx @@ -33,7 +33,7 @@ export const DnsHelperModal = ({ domain, serverIp }: Props) => { - + diff --git a/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx b/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx index c8522f5f5..9069542d9 100644 --- a/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx +++ b/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx @@ -292,7 +292,7 @@ export const AddDomain = ({ id, type, domainId = "", children }: Props) => { {children} - + Domain {dictionary.dialogDescription} diff --git a/apps/dokploy/components/dashboard/application/preview-deployments/add-preview-domain.tsx b/apps/dokploy/components/dashboard/application/preview-deployments/add-preview-domain.tsx index 78cd55d7a..bb6f0e0a7 100644 --- a/apps/dokploy/components/dashboard/application/preview-deployments/add-preview-domain.tsx +++ b/apps/dokploy/components/dashboard/application/preview-deployments/add-preview-domain.tsx @@ -138,7 +138,7 @@ export const AddPreviewDomain = ({ {children} - + Domain {dictionary.dialogDescription} diff --git a/apps/dokploy/components/dashboard/application/preview-deployments/show-preview-settings.tsx b/apps/dokploy/components/dashboard/application/preview-deployments/show-preview-settings.tsx index 4c5068eee..ae93ebcc4 100644 --- a/apps/dokploy/components/dashboard/application/preview-deployments/show-preview-settings.tsx +++ b/apps/dokploy/components/dashboard/application/preview-deployments/show-preview-settings.tsx @@ -138,7 +138,7 @@ export const ShowPreviewSettings = ({ applicationId }: Props) => { Configure - + Preview Deployment Settings diff --git a/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx b/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx index 2d26d7a94..24e71bc70 100644 --- a/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx +++ b/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx @@ -232,7 +232,7 @@ export const HandleSchedules = ({ id, scheduleId, scheduleType }: Props) => { { Restore Volume Backup - + From d78974efc041cc38c35ed95253e67153ca7a6f1f Mon Sep 17 00:00:00 2001 From: Jhon Date: Sun, 13 Jul 2025 12:15:36 -0300 Subject: [PATCH 25/41] fix(ui): remove max-h-screen and overflow-y-auto from advanced settings dialogs Remove problematic CSS classes from advanced application dialogs: - Cluster and swarm settings - Port configuration - Security settings - Traefik configuration - Volume management - Redirect configuration Prevents tab hangs with overflow content. --- .../application/advanced/cluster/modify-swarm-settings.tsx | 2 +- .../dashboard/application/advanced/import/show-import.tsx | 2 +- .../dashboard/application/advanced/ports/handle-ports.tsx | 2 +- .../application/advanced/redirects/handle-redirect.tsx | 2 +- .../dashboard/application/advanced/security/handle-security.tsx | 2 +- .../application/advanced/traefik/show-traefik-config.tsx | 2 +- .../application/advanced/traefik/update-traefik-config.tsx | 2 +- .../dashboard/application/advanced/volumes/add-volumes.tsx | 2 +- .../dashboard/application/advanced/volumes/update-volume.tsx | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx b/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx index ae30a799d..65b436edb 100644 --- a/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx @@ -270,7 +270,7 @@ export const AddSwarmSettings = ({ applicationId }: Props) => { Swarm Settings - + Swarm Settings diff --git a/apps/dokploy/components/dashboard/application/advanced/import/show-import.tsx b/apps/dokploy/components/dashboard/application/advanced/import/show-import.tsx index d44455b27..ecd0b4fe9 100644 --- a/apps/dokploy/components/dashboard/application/advanced/import/show-import.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/import/show-import.tsx @@ -185,7 +185,7 @@ export const ShowImport = ({ composeId }: Props) => {
- + Template Information diff --git a/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx b/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx index ad0c0ac3c..eded628c9 100644 --- a/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx @@ -124,7 +124,7 @@ export const HandlePorts = ({ )} - + Ports diff --git a/apps/dokploy/components/dashboard/application/advanced/redirects/handle-redirect.tsx b/apps/dokploy/components/dashboard/application/advanced/redirects/handle-redirect.tsx index 5d91d580d..253a8c24d 100644 --- a/apps/dokploy/components/dashboard/application/advanced/redirects/handle-redirect.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/redirects/handle-redirect.tsx @@ -179,7 +179,7 @@ export const HandleRedirect = ({ )} - + Redirects diff --git a/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx b/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx index e7bc0cd1f..e1cf20b78 100644 --- a/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx @@ -114,7 +114,7 @@ export const HandleSecurity = ({ )} - + Security diff --git a/apps/dokploy/components/dashboard/application/advanced/traefik/show-traefik-config.tsx b/apps/dokploy/components/dashboard/application/advanced/traefik/show-traefik-config.tsx index 58601fb49..9653721a2 100644 --- a/apps/dokploy/components/dashboard/application/advanced/traefik/show-traefik-config.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/traefik/show-traefik-config.tsx @@ -48,7 +48,7 @@ export const ShowTraefikConfig = ({ applicationId }: Props) => {
) : (
-
+
{ - + Update traefik config Update the traefik config diff --git a/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx b/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx index 639410bb4..8a5e1fec4 100644 --- a/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx @@ -151,7 +151,7 @@ export const AddVolumes = ({ - + Volumes / Mounts diff --git a/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx b/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx index d185b2160..1a9b63cad 100644 --- a/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx @@ -186,7 +186,7 @@ export const UpdateVolume = ({ - + Update Update the mount From 2d382ea1be32f8747443b7c75c3ee10b37c9f710 Mon Sep 17 00:00:00 2001 From: Jhon Date: Sun, 13 Jul 2025 12:16:35 -0300 Subject: [PATCH 26/41] fix(ui): remove max-h-screen and overflow-y-auto from settings dialogs Remove problematic CSS classes from system settings: - Git provider configurations - User management dialogs - API key management - Certificate management - Notification settings - Server management dialogs - Profile and 2FA settings Fixes render loops in admin panels. --- .../dokploy/components/dashboard/settings/api/add-api-key.tsx | 2 +- .../dashboard/settings/billing/show-welcome-dokploy.tsx | 2 +- .../dashboard/settings/certificates/add-certificate.tsx | 2 +- .../components/dashboard/settings/cluster/nodes/add-node.tsx | 2 +- .../dashboard/settings/cluster/nodes/show-node-data.tsx | 2 +- .../dashboard/settings/cluster/nodes/show-nodes-modal.tsx | 2 +- .../dashboard/settings/cluster/registry/handle-registry.tsx | 2 +- .../dashboard/settings/destination/handle-destinations.tsx | 2 +- .../settings/git/bitbucket/add-bitbucket-provider.tsx | 2 +- .../settings/git/bitbucket/edit-bitbucket-provider.tsx | 2 +- .../dashboard/settings/git/gitea/add-gitea-provider.tsx | 2 +- .../dashboard/settings/git/github/edit-github-provider.tsx | 2 +- .../dashboard/settings/git/gitlab/add-gitlab-provider.tsx | 2 +- .../dashboard/settings/git/gitlab/edit-gitlab-provider.tsx | 2 +- .../dashboard/settings/notifications/handle-notifications.tsx | 2 +- .../components/dashboard/settings/profile/enable-2fa.tsx | 2 +- .../settings/servers/actions/show-server-actions.tsx | 2 +- .../components/dashboard/settings/servers/edit-script.tsx | 2 +- .../dashboard/settings/servers/gpu-support-modal.tsx | 2 +- .../components/dashboard/settings/servers/setup-server.tsx | 4 ++-- .../settings/servers/show-docker-containers-modal.tsx | 2 +- .../dashboard/settings/servers/show-monitoring-modal.tsx | 2 +- .../dashboard/settings/servers/show-schedules-modal.tsx | 2 +- .../dashboard/settings/servers/show-swarm-overview-modal.tsx | 2 +- .../settings/servers/show-traefik-file-system-modal.tsx | 2 +- .../settings/servers/welcome-stripe/create-ssh-key.tsx | 2 +- .../settings/servers/welcome-stripe/welcome-suscription.tsx | 2 +- .../dashboard/settings/ssh-keys/handle-ssh-keys.tsx | 2 +- .../components/dashboard/settings/users/add-invitation.tsx | 2 +- .../components/dashboard/settings/users/add-permissions.tsx | 2 +- .../dashboard/settings/web-server/docker-terminal-modal.tsx | 2 +- .../dashboard/settings/web-server/edit-traefik-env.tsx | 2 +- .../dashboard/settings/web-server/show-modal-logs.tsx | 2 +- .../dashboard/settings/web-server/terminal-modal.tsx | 2 +- 34 files changed, 35 insertions(+), 35 deletions(-) diff --git a/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx b/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx index 568b86e94..2baa0ff6b 100644 --- a/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx +++ b/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx @@ -142,7 +142,7 @@ export const AddApiKey = () => { - + Generate API Key diff --git a/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx b/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx index 64362b25c..845cbe49d 100644 --- a/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx +++ b/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx @@ -41,7 +41,7 @@ export const ShowWelcomeDokploy = () => { return ( <> - + Welcome to Dokploy Cloud 🎉 diff --git a/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx b/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx index 58cad7910..2e0b29da8 100644 --- a/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx +++ b/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx @@ -106,7 +106,7 @@ export const AddCertificate = () => { Add Certificate - + Add New Certificate diff --git a/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx index 63fb17dda..07389e0cc 100644 --- a/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx +++ b/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx @@ -27,7 +27,7 @@ export const AddNode = ({ serverId }: Props) => { Add Node - + Add Node diff --git a/apps/dokploy/components/dashboard/settings/cluster/nodes/show-node-data.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/show-node-data.tsx index e2adbed76..86635810c 100644 --- a/apps/dokploy/components/dashboard/settings/cluster/nodes/show-node-data.tsx +++ b/apps/dokploy/components/dashboard/settings/cluster/nodes/show-node-data.tsx @@ -24,7 +24,7 @@ export const ShowNodeData = ({ data }: Props) => { View Config - + Node Config diff --git a/apps/dokploy/components/dashboard/settings/cluster/nodes/show-nodes-modal.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/show-nodes-modal.tsx index 5f0b32fc3..3ba0a8567 100644 --- a/apps/dokploy/components/dashboard/settings/cluster/nodes/show-nodes-modal.tsx +++ b/apps/dokploy/components/dashboard/settings/cluster/nodes/show-nodes-modal.tsx @@ -20,7 +20,7 @@ export const ShowNodesModal = ({ serverId }: Props) => { Show Swarm Nodes - +
diff --git a/apps/dokploy/components/dashboard/settings/cluster/registry/handle-registry.tsx b/apps/dokploy/components/dashboard/settings/cluster/registry/handle-registry.tsx index d30ad6dda..f27902c34 100644 --- a/apps/dokploy/components/dashboard/settings/cluster/registry/handle-registry.tsx +++ b/apps/dokploy/components/dashboard/settings/cluster/registry/handle-registry.tsx @@ -161,7 +161,7 @@ export const HandleRegistry = ({ registryId }: Props) => { )} - + Add a external registry diff --git a/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx b/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx index aedf87445..8c5ce20ea 100644 --- a/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx +++ b/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx @@ -204,7 +204,7 @@ export const HandleDestinations = ({ destinationId }: Props) => { )} - + {destinationId ? "Update" : "Add"} Destination diff --git a/apps/dokploy/components/dashboard/settings/git/bitbucket/add-bitbucket-provider.tsx b/apps/dokploy/components/dashboard/settings/git/bitbucket/add-bitbucket-provider.tsx index 0df2d0610..bd4179009 100644 --- a/apps/dokploy/components/dashboard/settings/git/bitbucket/add-bitbucket-provider.tsx +++ b/apps/dokploy/components/dashboard/settings/git/bitbucket/add-bitbucket-provider.tsx @@ -97,7 +97,7 @@ export const AddBitbucketProvider = () => { Bitbucket - + Bitbucket Provider diff --git a/apps/dokploy/components/dashboard/settings/git/bitbucket/edit-bitbucket-provider.tsx b/apps/dokploy/components/dashboard/settings/git/bitbucket/edit-bitbucket-provider.tsx index e5a7f7529..12744b7cb 100644 --- a/apps/dokploy/components/dashboard/settings/git/bitbucket/edit-bitbucket-provider.tsx +++ b/apps/dokploy/components/dashboard/settings/git/bitbucket/edit-bitbucket-provider.tsx @@ -105,7 +105,7 @@ export const EditBitbucketProvider = ({ bitbucketId }: Props) => { - + Update Bitbucket diff --git a/apps/dokploy/components/dashboard/settings/git/gitea/add-gitea-provider.tsx b/apps/dokploy/components/dashboard/settings/git/gitea/add-gitea-provider.tsx index 13c65bdf3..81530549c 100644 --- a/apps/dokploy/components/dashboard/settings/git/gitea/add-gitea-provider.tsx +++ b/apps/dokploy/components/dashboard/settings/git/gitea/add-gitea-provider.tsx @@ -143,7 +143,7 @@ export const AddGiteaProvider = () => { Gitea - + Gitea Provider diff --git a/apps/dokploy/components/dashboard/settings/git/github/edit-github-provider.tsx b/apps/dokploy/components/dashboard/settings/git/github/edit-github-provider.tsx index 28c6e1233..e04d3e718 100644 --- a/apps/dokploy/components/dashboard/settings/git/github/edit-github-provider.tsx +++ b/apps/dokploy/components/dashboard/settings/git/github/edit-github-provider.tsx @@ -92,7 +92,7 @@ export const EditGithubProvider = ({ githubId }: Props) => { - + Update Github diff --git a/apps/dokploy/components/dashboard/settings/git/gitlab/add-gitlab-provider.tsx b/apps/dokploy/components/dashboard/settings/git/gitlab/add-gitlab-provider.tsx index 023e46ed2..3b4fc60f6 100644 --- a/apps/dokploy/components/dashboard/settings/git/gitlab/add-gitlab-provider.tsx +++ b/apps/dokploy/components/dashboard/settings/git/gitlab/add-gitlab-provider.tsx @@ -115,7 +115,7 @@ export const AddGitlabProvider = () => { GitLab - + GitLab Provider diff --git a/apps/dokploy/components/dashboard/settings/git/gitlab/edit-gitlab-provider.tsx b/apps/dokploy/components/dashboard/settings/git/gitlab/edit-gitlab-provider.tsx index 5142a3fe4..a2e33cdfb 100644 --- a/apps/dokploy/components/dashboard/settings/git/gitlab/edit-gitlab-provider.tsx +++ b/apps/dokploy/components/dashboard/settings/git/gitlab/edit-gitlab-provider.tsx @@ -105,7 +105,7 @@ export const EditGitlabProvider = ({ gitlabId }: Props) => { - + Update GitLab diff --git a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx index cfa0ca83c..f7c798335 100644 --- a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx +++ b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx @@ -408,7 +408,7 @@ export const HandleNotifications = ({ notificationId }: Props) => { )} - + {notificationId ? "Update" : "Add"} Notification diff --git a/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx b/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx index afc859f41..5fd8ffc9c 100644 --- a/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx +++ b/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx @@ -186,7 +186,7 @@ export const Enable2FA = () => { Enable 2FA - + 2FA Setup diff --git a/apps/dokploy/components/dashboard/settings/servers/actions/show-server-actions.tsx b/apps/dokploy/components/dashboard/settings/servers/actions/show-server-actions.tsx index fcc0e315f..054ef66b2 100644 --- a/apps/dokploy/components/dashboard/settings/servers/actions/show-server-actions.tsx +++ b/apps/dokploy/components/dashboard/settings/servers/actions/show-server-actions.tsx @@ -26,7 +26,7 @@ export const ShowServerActions = ({ serverId }: Props) => { View Actions - +
Web server settings Reload or clean the web server. diff --git a/apps/dokploy/components/dashboard/settings/servers/edit-script.tsx b/apps/dokploy/components/dashboard/settings/servers/edit-script.tsx index 6225ee771..02ea9b7d1 100644 --- a/apps/dokploy/components/dashboard/settings/servers/edit-script.tsx +++ b/apps/dokploy/components/dashboard/settings/servers/edit-script.tsx @@ -99,7 +99,7 @@ export const EditScript = ({ serverId }: Props) => { - + Modify Script diff --git a/apps/dokploy/components/dashboard/settings/servers/gpu-support-modal.tsx b/apps/dokploy/components/dashboard/settings/servers/gpu-support-modal.tsx index 9cf858cd3..9196869d5 100644 --- a/apps/dokploy/components/dashboard/settings/servers/gpu-support-modal.tsx +++ b/apps/dokploy/components/dashboard/settings/servers/gpu-support-modal.tsx @@ -22,7 +22,7 @@ export const GPUSupportModal = () => { GPU Setup - + Dokploy Server GPU Setup diff --git a/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx b/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx index 751167a42..b2c87c39f 100644 --- a/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx +++ b/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx @@ -88,7 +88,7 @@ export const SetupServer = ({ serverId }: Props) => { Setup Server - +
@@ -147,7 +147,7 @@ export const SetupServer = ({ serverId }: Props) => {
  • 2. Add The SSH Key to Server Manually
  • -
    +
    Copy Public Key ({server?.sshKey?.name})
    diff --git a/apps/dokploy/components/dashboard/settings/servers/show-swarm-overview-modal.tsx b/apps/dokploy/components/dashboard/settings/servers/show-swarm-overview-modal.tsx index b86311840..c0047a9ea 100644 --- a/apps/dokploy/components/dashboard/settings/servers/show-swarm-overview-modal.tsx +++ b/apps/dokploy/components/dashboard/settings/servers/show-swarm-overview-modal.tsx @@ -20,7 +20,7 @@ export const ShowSwarmOverviewModal = ({ serverId }: Props) => { Show Swarm Overview - +
    diff --git a/apps/dokploy/components/dashboard/settings/servers/show-traefik-file-system-modal.tsx b/apps/dokploy/components/dashboard/settings/servers/show-traefik-file-system-modal.tsx index 0c5763605..74b700b6e 100644 --- a/apps/dokploy/components/dashboard/settings/servers/show-traefik-file-system-modal.tsx +++ b/apps/dokploy/components/dashboard/settings/servers/show-traefik-file-system-modal.tsx @@ -20,7 +20,7 @@ export const ShowTraefikFileSystemModal = ({ serverId }: Props) => { Show Traefik File System - + diff --git a/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-ssh-key.tsx b/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-ssh-key.tsx index b1a3f2d03..22c9f4ebf 100644 --- a/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-ssh-key.tsx +++ b/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-ssh-key.tsx @@ -117,7 +117,7 @@ export const CreateSSHKey = () => { Option 2
    -
    +
    Copy Public Key )} - + SSH Key diff --git a/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx b/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx index 24e8f34e6..1542a778f 100644 --- a/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx +++ b/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx @@ -108,7 +108,7 @@ export const AddInvitation = () => { Add Invitation - + Add Invitation Invite a new user diff --git a/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx b/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx index 51d73b1f9..8f527ec0b 100644 --- a/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx +++ b/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx @@ -123,7 +123,7 @@ export const AddUserPermissions = ({ userId }: Props) => { Add Permissions - + Permissions Add or remove permissions diff --git a/apps/dokploy/components/dashboard/settings/web-server/docker-terminal-modal.tsx b/apps/dokploy/components/dashboard/settings/web-server/docker-terminal-modal.tsx index 44dda0d36..e4ee83753 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/docker-terminal-modal.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/docker-terminal-modal.tsx @@ -83,7 +83,7 @@ export const DockerTerminalModal = ({ children, appName, serverId }: Props) => { {children} event.preventDefault()} > diff --git a/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx b/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx index 07dc24078..8262b9cbc 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx @@ -78,7 +78,7 @@ export const EditTraefikEnv = ({ children, serverId }: Props) => { return ( {children} - + Update Traefik Environment diff --git a/apps/dokploy/components/dashboard/settings/web-server/show-modal-logs.tsx b/apps/dokploy/components/dashboard/settings/web-server/show-modal-logs.tsx index aa7a33979..524b29616 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/show-modal-logs.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/show-modal-logs.tsx @@ -67,7 +67,7 @@ export const ShowModalLogs = ({ return ( {children} - + View Logs View the logs for {appName} diff --git a/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx b/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx index 7c64ebc09..2de0074c1 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx @@ -53,7 +53,7 @@ export const TerminalModal = ({ children, serverId }: Props) => { event.preventDefault()} > From 96d08106075f8e8bb6c4b000e7da0e89d812ea0b Mon Sep 17 00:00:00 2001 From: Jhon Date: Sun, 13 Jul 2025 12:16:51 -0300 Subject: [PATCH 27/41] fix(ui): remove max-h-screen and overflow-y-auto from project and database dialogs Remove problematic CSS classes from: - Project creation and management dialogs - Database backup and restore dialogs - Compose service management dialogs - Template and AI generator dialogs Ensures stable dialog behavior. --- apps/dokploy/components/dashboard/compose/delete-service.tsx | 2 +- .../dashboard/compose/general/show-converted-compose.tsx | 2 +- .../components/dashboard/compose/general/show-utilities.tsx | 2 +- .../components/dashboard/database/backups/handle-backup.tsx | 2 +- .../components/dashboard/database/backups/restore-backup.tsx | 2 +- apps/dokploy/components/dashboard/project/add-application.tsx | 2 +- apps/dokploy/components/dashboard/project/add-compose.tsx | 2 +- apps/dokploy/components/dashboard/project/add-database.tsx | 2 +- apps/dokploy/components/dashboard/project/add-template.tsx | 2 +- .../components/dashboard/project/ai/template-generator.tsx | 2 +- .../components/dashboard/project/duplicate-project.tsx | 2 +- .../components/dashboard/projects/project-environment.tsx | 2 +- apps/dokploy/components/dashboard/projects/show.tsx | 4 ++-- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/apps/dokploy/components/dashboard/compose/delete-service.tsx b/apps/dokploy/components/dashboard/compose/delete-service.tsx index 212b5ac73..65689afd1 100644 --- a/apps/dokploy/components/dashboard/compose/delete-service.tsx +++ b/apps/dokploy/components/dashboard/compose/delete-service.tsx @@ -126,7 +126,7 @@ export const DeleteService = ({ id, type }: Props) => { - + Are you absolutely sure? diff --git a/apps/dokploy/components/dashboard/compose/general/show-converted-compose.tsx b/apps/dokploy/components/dashboard/compose/general/show-converted-compose.tsx index 4370dcf87..677762b00 100644 --- a/apps/dokploy/components/dashboard/compose/general/show-converted-compose.tsx +++ b/apps/dokploy/components/dashboard/compose/general/show-converted-compose.tsx @@ -52,7 +52,7 @@ export const ShowConvertedCompose = ({ composeId }: Props) => { Preview Compose - + Converted Compose diff --git a/apps/dokploy/components/dashboard/compose/general/show-utilities.tsx b/apps/dokploy/components/dashboard/compose/general/show-utilities.tsx index 214102ce9..6df800494 100644 --- a/apps/dokploy/components/dashboard/compose/general/show-utilities.tsx +++ b/apps/dokploy/components/dashboard/compose/general/show-utilities.tsx @@ -23,7 +23,7 @@ export const ShowUtilities = ({ composeId }: Props) => { - + Utilities Modify the application data diff --git a/apps/dokploy/components/dashboard/database/backups/handle-backup.tsx b/apps/dokploy/components/dashboard/database/backups/handle-backup.tsx index ca2cd27fb..4c5bbe628 100644 --- a/apps/dokploy/components/dashboard/database/backups/handle-backup.tsx +++ b/apps/dokploy/components/dashboard/database/backups/handle-backup.tsx @@ -329,7 +329,7 @@ export const HandleBackup = ({ )} - + {backupId ? "Update Backup" : "Create Backup"} diff --git a/apps/dokploy/components/dashboard/database/backups/restore-backup.tsx b/apps/dokploy/components/dashboard/database/backups/restore-backup.tsx index 76ab7b6cf..a173f85ad 100644 --- a/apps/dokploy/components/dashboard/database/backups/restore-backup.tsx +++ b/apps/dokploy/components/dashboard/database/backups/restore-backup.tsx @@ -324,7 +324,7 @@ export const RestoreBackup = ({ Restore Backup - + diff --git a/apps/dokploy/components/dashboard/project/add-application.tsx b/apps/dokploy/components/dashboard/project/add-application.tsx index 6b0a690db..3150d8046 100644 --- a/apps/dokploy/components/dashboard/project/add-application.tsx +++ b/apps/dokploy/components/dashboard/project/add-application.tsx @@ -119,7 +119,7 @@ export const AddApplication = ({ projectId, projectName }: Props) => { Application - + Create diff --git a/apps/dokploy/components/dashboard/project/add-compose.tsx b/apps/dokploy/components/dashboard/project/add-compose.tsx index 5f2bb137f..1db73a80b 100644 --- a/apps/dokploy/components/dashboard/project/add-compose.tsx +++ b/apps/dokploy/components/dashboard/project/add-compose.tsx @@ -124,7 +124,7 @@ export const AddCompose = ({ projectId, projectName }: Props) => { Compose - + Create Compose diff --git a/apps/dokploy/components/dashboard/project/add-database.tsx b/apps/dokploy/components/dashboard/project/add-database.tsx index 2420e603f..b4ac685dc 100644 --- a/apps/dokploy/components/dashboard/project/add-database.tsx +++ b/apps/dokploy/components/dashboard/project/add-database.tsx @@ -283,7 +283,7 @@ export const AddDatabase = ({ projectId, projectName }: Props) => { Database - + Databases diff --git a/apps/dokploy/components/dashboard/project/add-template.tsx b/apps/dokploy/components/dashboard/project/add-template.tsx index 8e9de54d9..53ae30141 100644 --- a/apps/dokploy/components/dashboard/project/add-template.tsx +++ b/apps/dokploy/components/dashboard/project/add-template.tsx @@ -148,7 +148,7 @@ export const AddTemplate = ({ projectId, baseUrl }: Props) => { Template - +
    diff --git a/apps/dokploy/components/dashboard/project/ai/template-generator.tsx b/apps/dokploy/components/dashboard/project/ai/template-generator.tsx index 7fad2e35d..714840c5a 100644 --- a/apps/dokploy/components/dashboard/project/ai/template-generator.tsx +++ b/apps/dokploy/components/dashboard/project/ai/template-generator.tsx @@ -158,7 +158,7 @@ export const TemplateGenerator = ({ projectId }: Props) => { AI Assistant - + AI Assistant diff --git a/apps/dokploy/components/dashboard/project/duplicate-project.tsx b/apps/dokploy/components/dashboard/project/duplicate-project.tsx index ffcfeba87..74001bd41 100644 --- a/apps/dokploy/components/dashboard/project/duplicate-project.tsx +++ b/apps/dokploy/components/dashboard/project/duplicate-project.tsx @@ -167,7 +167,7 @@ export const DuplicateProject = ({
    -
    +
    {selectedServices.map((service) => (
    diff --git a/apps/dokploy/components/dashboard/projects/project-environment.tsx b/apps/dokploy/components/dashboard/projects/project-environment.tsx index e43d1af87..21c2c9b58 100644 --- a/apps/dokploy/components/dashboard/projects/project-environment.tsx +++ b/apps/dokploy/components/dashboard/projects/project-environment.tsx @@ -94,7 +94,7 @@ export const ProjectEnvironment = ({ projectId, children }: Props) => { )} - + Project Environment diff --git a/apps/dokploy/components/dashboard/projects/show.tsx b/apps/dokploy/components/dashboard/projects/show.tsx index 03ebe7a85..2de242e63 100644 --- a/apps/dokploy/components/dashboard/projects/show.tsx +++ b/apps/dokploy/components/dashboard/projects/show.tsx @@ -157,7 +157,7 @@ export const ShowProjects = () => { e.stopPropagation()} > {project.applications.length > 0 && ( @@ -265,7 +265,7 @@ export const ShowProjects = () => { e.stopPropagation()} > From fa5994bd47f915b812afabaac0fddfaff676e505 Mon Sep 17 00:00:00 2001 From: Jhon Date: Sun, 13 Jul 2025 12:17:05 -0300 Subject: [PATCH 28/41] fix(ui): remove max-h-screen and overflow-y-auto from remaining dialogs Clean up any remaining dialog components with problematic CSS classes. Complete removal of classes that interfere with new scroll handling system. --- .../dashboard/docker/config/show-container-config.tsx | 2 +- .../dashboard/docker/terminal/docker-terminal-modal.tsx | 2 +- .../components/dashboard/swarm/details/show-node-config.tsx | 2 +- apps/dokploy/components/dashboard/swarm/monitoring-card.tsx | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/dokploy/components/dashboard/docker/config/show-container-config.tsx b/apps/dokploy/components/dashboard/docker/config/show-container-config.tsx index 1f1591c9d..07c9556f7 100644 --- a/apps/dokploy/components/dashboard/docker/config/show-container-config.tsx +++ b/apps/dokploy/components/dashboard/docker/config/show-container-config.tsx @@ -42,7 +42,7 @@ export const ShowContainerConfig = ({ containerId, serverId }: Props) => { See in detail the config of this container -
    +
     							
     			
     			 event.preventDefault()}
     			>
     				
    diff --git a/apps/dokploy/components/dashboard/swarm/details/show-node-config.tsx b/apps/dokploy/components/dashboard/swarm/details/show-node-config.tsx
    index 7f27fe3bf..6f92a2aa7 100644
    --- a/apps/dokploy/components/dashboard/swarm/details/show-node-config.tsx
    +++ b/apps/dokploy/components/dashboard/swarm/details/show-node-config.tsx
    @@ -29,7 +29,7 @@ export const ShowNodeConfig = ({ nodeId, serverId }: Props) => {
     					Config
     				
     			
    -			
    +			
     				
     					Node Config
     					
    diff --git a/apps/dokploy/components/dashboard/swarm/monitoring-card.tsx b/apps/dokploy/components/dashboard/swarm/monitoring-card.tsx
    index 5ab936102..8e1618bea 100644
    --- a/apps/dokploy/components/dashboard/swarm/monitoring-card.tsx
    +++ b/apps/dokploy/components/dashboard/swarm/monitoring-card.tsx
    @@ -128,7 +128,7 @@ export default function SwarmMonitorCard({ serverId }: Props) {
     										
    -
    +
    {activeNodes.map((node) => (
    {node.Hostname} @@ -162,7 +162,7 @@ export default function SwarmMonitorCard({ serverId }: Props) {
    -
    +
    {managerNodes.map((node) => (
    {node.Hostname} From a8fc052cbfe25a5a0d279ccbdf383fd24c493d5f Mon Sep 17 00:00:00 2001 From: Jhon Date: Sun, 13 Jul 2025 13:00:21 -0300 Subject: [PATCH 29/41] fix(ui): resolve dialog closing issues with Command components - Replace custom overlay click handler with proper onInteractOutside - Add detection for Command components to prevent unwanted closures - Restore overlay visibility without click handler conflicts - Separate DialogFooter from scrollable content for proper spacing - Add border and padding to DialogFooter container for visual separation Fixes dialogs closing unexpectedly when used inside Command menus. --- apps/dokploy/components/ui/dialog.tsx | 44 +++++++++++++++++++-------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/apps/dokploy/components/ui/dialog.tsx b/apps/dokploy/components/ui/dialog.tsx index 8ed1520ed..52bbe9790 100644 --- a/apps/dokploy/components/ui/dialog.tsx +++ b/apps/dokploy/components/ui/dialog.tsx @@ -62,20 +62,28 @@ const DialogContent = React.forwardRef< }; }, [open]); - const handleOverlayClick = React.useCallback((e: React.MouseEvent) => { - if (e.target === e.currentTarget && onOpenChange) { + // Handle outside interactions properly with Command components + const handleInteractOutside = React.useCallback((e: Event) => { + if (onOpenChange) { onOpenChange(false); } }, [onOpenChange]); const hasPaddingOverride = className?.includes("p-0"); + // Separate DialogFooter from other children for proper layout + const childrenArray = React.Children.toArray(children); + const dialogFooter = childrenArray.find((child) => + React.isValidElement(child) && child.type === DialogFooter + ); + const otherChildren = childrenArray.filter((child) => + !(React.isValidElement(child) && child.type === DialogFooter) + ); + return ( -
    + {/* Custom overlay for modal=false - no click handler to avoid Command conflicts */} +
    { - const originalEvent = e.detail.originalEvent; - const target = originalEvent.target as HTMLElement; - if (target.closest('[data-radix-popper-content-wrapper]')) { + onInteractOutside={(e) => { + const target = e.target as HTMLElement; + // Don't close when clicking inside popovers, dropdowns, or command components + if (target.closest('[data-radix-popper-content-wrapper]') || + target.closest('[cmdk-root]') || + target.closest('[data-radix-command-root]')) { e.preventDefault(); + return; } + // Use our custom handler for modal=false behavior + handleInteractOutside(e); }} {...props} > @@ -99,9 +112,16 @@ const DialogContent = React.forwardRef< !hasPaddingOverride && "p-6" )} > - {children} + {otherChildren}
    + {/* DialogFooter outside scrollable area with proper spacing */} + {dialogFooter && ( +
    + {dialogFooter} +
    + )} + Close @@ -132,7 +152,7 @@ const DialogFooter = ({ }: React.HTMLAttributes) => (
    Date: Sun, 13 Jul 2025 13:01:36 -0300 Subject: [PATCH 30/41] fix(ui): update DialogFooter styling in cluster management dialogs - Add responsive layout and proper spacing to swarm settings footer - Update registry dialog footer with improved flex layout - Ensure proper button alignment on mobile and desktop - Add sticky positioning for better UX in long forms --- .../application/advanced/cluster/modify-swarm-settings.tsx | 4 ++-- .../dashboard/settings/cluster/registry/handle-registry.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx b/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx index 65b436edb..1e120322d 100644 --- a/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx @@ -270,7 +270,7 @@ export const AddSwarmSettings = ({ applicationId }: Props) => { Swarm Settings - + Swarm Settings @@ -753,7 +753,7 @@ export const AddSwarmSettings = ({ applicationId }: Props) => { )} /> - +
    - +
    )} - + {notificationId ? "Update" : "Add"} Notification diff --git a/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-server.tsx b/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-server.tsx index 24d01553b..3a112af20 100644 --- a/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-server.tsx +++ b/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-server.tsx @@ -265,7 +265,7 @@ export const CreateServer = ({ stepper }: Props) => { /> - +
    - + Template Information diff --git a/apps/dokploy/components/dashboard/organization/handle-organization.tsx b/apps/dokploy/components/dashboard/organization/handle-organization.tsx index 014c37df1..45dd0e9c7 100644 --- a/apps/dokploy/components/dashboard/organization/handle-organization.tsx +++ b/apps/dokploy/components/dashboard/organization/handle-organization.tsx @@ -169,7 +169,7 @@ export function AddOrganization({ organizationId }: Props) { )} /> - + From 94829daf1579202797fd1088d74f97b81bf82339 Mon Sep 17 00:00:00 2001 From: Jhon Date: Sun, 13 Jul 2025 13:35:26 -0300 Subject: [PATCH 33/41] fix(ui): code formatting and DialogHeader improvements - Apply consistent code formatting across dialog components - Add bottom padding to DialogHeader for better visual separation - Clean up DialogHeader usage in swarm settings (remove duplicate padding) - Improve schedule dialog layout and add proper description - Fix indentation and formatting inconsistencies Final cleanup of dialog component formatting and spacing. --- .../cluster/modify-swarm-settings.tsx | 2 +- .../schedules/handle-schedules.tsx | 144 +++++++++--------- apps/dokploy/components/ui/dialog.tsx | 73 +++++---- 3 files changed, 119 insertions(+), 100 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx b/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx index 1e120322d..b8a272e15 100644 --- a/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx @@ -271,7 +271,7 @@ export const AddSwarmSettings = ({ applicationId }: Props) => { - + Swarm Settings Update certain settings using a json object. diff --git a/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx b/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx index 24e71bc70..2d3e9f931 100644 --- a/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx +++ b/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx @@ -4,6 +4,7 @@ import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, + DialogDescription, DialogHeader, DialogTitle, DialogTrigger, @@ -232,14 +233,17 @@ export const HandleSchedules = ({ id, scheduleId, scheduleType }: Props) => { {scheduleId ? "Edit" : "Create"} Schedule + + {scheduleId ? "Manage" : "Create"} a schedule to run a task at a + specific time or interval. +
    @@ -434,82 +438,82 @@ export const HandleSchedules = ({ id, scheduleId, scheduleType }: Props) => { {(scheduleTypeForm === "application" || scheduleTypeForm === "compose") && ( - <> - ( - - - Shell Type - - + + + + + + + Bash + Sh + + + + Choose the shell to execute your command + + + + )} + /> + ( + + + Command + - - - + - - Bash - Sh - - - - Choose the shell to execute your command - - - - )} - /> - ( - - - Command - - - - - - The command to execute in your container - - - - )} - /> - - )} + + The command to execute in your container + + + + )} + /> + + )} {(scheduleTypeForm === "dokploy-server" || scheduleTypeForm === "server") && ( - ( - - Script - + ( + + Script - + + className="h-96 font-mono" + {...field} + /> + - - - - )} - /> - )} + + + )} + /> + )} void; open?: boolean; }>({}); -const Dialog = ({ onOpenChange, open, ...props }: React.ComponentPropsWithoutRef) => ( +const Dialog = ({ + onOpenChange, + open, + ...props +}: React.ComponentPropsWithoutRef) => ( - + ); Dialog.displayName = DialogPrimitive.Root.displayName; @@ -44,18 +53,19 @@ const DialogContent = React.forwardRef< const { onOpenChange, open } = React.useContext(DialogContext); React.useEffect(() => { - if (!open) return; - - const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; + if (!open) return; + + const scrollbarWidth = + window.innerWidth - document.documentElement.clientWidth; const body = document.body; const originalPaddingRight = body.style.paddingRight; const originalOverflow = body.style.overflow; - - body.style.overflow = 'hidden'; + + body.style.overflow = "hidden"; if (scrollbarWidth > 0) { body.style.paddingRight = `${scrollbarWidth}px`; } - + return () => { body.style.overflow = originalOverflow; body.style.paddingRight = originalPaddingRight; @@ -63,23 +73,26 @@ const DialogContent = React.forwardRef< }, [open]); // Handle outside interactions properly with Command components - const handleInteractOutside = React.useCallback((e: Event) => { - if (onOpenChange) { - onOpenChange(false); - } - }, [onOpenChange]); + const handleInteractOutside = React.useCallback( + (_e: Event) => { + if (onOpenChange) { + onOpenChange(false); + } + }, + [onOpenChange], + ); const hasPaddingOverride = className?.includes("p-0"); - + // Separate DialogFooter from other children for proper layout const childrenArray = React.Children.toArray(children); - const dialogFooter = childrenArray.find((child) => - React.isValidElement(child) && child.type === DialogFooter + const dialogFooter = childrenArray.find( + (child) => React.isValidElement(child) && child.type === DialogFooter, ); - const otherChildren = childrenArray.filter((child) => - !(React.isValidElement(child) && child.type === DialogFooter) + const otherChildren = childrenArray.filter( + (child) => !(React.isValidElement(child) && child.type === DialogFooter), ); - + return ( {/* Custom overlay for modal=false - no click handler to avoid Command conflicts */} @@ -94,9 +107,11 @@ const DialogContent = React.forwardRef< onInteractOutside={(e) => { const target = e.target as HTMLElement; // Don't close when clicking inside popovers, dropdowns, or command components - if (target.closest('[data-radix-popper-content-wrapper]') || - target.closest('[cmdk-root]') || - target.closest('[data-radix-command-root]')) { + if ( + target.closest("[data-radix-popper-content-wrapper]") || + target.closest("[cmdk-root]") || + target.closest("[data-radix-command-root]") + ) { e.preventDefault(); return; } @@ -105,23 +120,23 @@ const DialogContent = React.forwardRef< }} {...props} > -
    {otherChildren}
    - + {/* DialogFooter outside scrollable area with proper spacing */} {dialogFooter && (
    {dialogFooter}
    )} - + Close @@ -138,7 +153,7 @@ const DialogHeader = ({ }: React.HTMLAttributes) => (
    Date: Sun, 13 Jul 2025 13:47:27 -0300 Subject: [PATCH 34/41] fix(classname): removes leading blank space on classnames --- .../application/advanced/ports/handle-ports.tsx | 2 +- .../application/advanced/security/handle-security.tsx | 2 +- .../advanced/traefik/update-traefik-config.tsx | 2 +- .../application/advanced/volumes/add-volumes.tsx | 2 +- .../application/advanced/volumes/update-volume.tsx | 2 +- .../dashboard/application/schedules/show-schedules.tsx | 2 +- .../application/volume-backups/show-volume-backups.tsx | 2 +- .../dashboard/docker/logs/show-docker-modal-logs.tsx | 2 +- .../docker/logs/show-docker-modal-stack-logs.tsx | 2 +- .../docker/terminal/docker-terminal-modal.tsx | 2 +- .../paid/container/show-paid-container-monitoring.tsx | 2 +- .../monitoring/paid/servers/show-paid-monitoring.tsx | 2 +- .../dashboard/organization/handle-organization.tsx | 2 +- .../components/dashboard/project/add-application.tsx | 2 +- .../components/dashboard/project/add-compose.tsx | 2 +- .../components/dashboard/project/ai/step-two.tsx | 6 +++--- apps/dokploy/components/dashboard/requests/columns.tsx | 4 ++-- .../dashboard/settings/billing/show-billing.tsx | 6 +++--- .../settings/certificates/add-certificate.tsx | 2 +- .../dashboard/settings/cluster/nodes/add-node.tsx | 2 +- .../settings/destination/handle-destinations.tsx | 2 +- .../settings/notifications/handle-notifications.tsx | 10 +++++----- .../dashboard/settings/servers/setup-server.tsx | 2 +- .../settings/servers/welcome-stripe/create-ssh-key.tsx | 2 +- .../servers/welcome-stripe/welcome-suscription.tsx | 2 +- .../dashboard/settings/ssh-keys/handle-ssh-keys.tsx | 2 +- .../dashboard/settings/users/add-invitation.tsx | 2 +- .../dashboard/settings/users/add-permissions.tsx | 2 +- .../dashboard/settings/web-server/edit-traefik-env.tsx | 2 +- .../settings/web-server/local-server-config.tsx | 2 +- .../dashboard/settings/web-server/terminal-modal.tsx | 2 +- apps/dokploy/components/ui/file-tree.tsx | 2 +- apps/dokploy/pages/dashboard/project/[projectId].tsx | 2 +- apps/dokploy/pages/register.tsx | 2 +- 34 files changed, 43 insertions(+), 43 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx b/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx index eded628c9..beeed15dd 100644 --- a/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx @@ -124,7 +124,7 @@ export const HandlePorts = ({ )} - + Ports diff --git a/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx b/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx index e1cf20b78..d56545bb0 100644 --- a/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx @@ -114,7 +114,7 @@ export const HandleSecurity = ({ )} - + Security diff --git a/apps/dokploy/components/dashboard/application/advanced/traefik/update-traefik-config.tsx b/apps/dokploy/components/dashboard/application/advanced/traefik/update-traefik-config.tsx index 0dd0406b2..134ae67a6 100644 --- a/apps/dokploy/components/dashboard/application/advanced/traefik/update-traefik-config.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/traefik/update-traefik-config.tsx @@ -122,7 +122,7 @@ export const UpdateTraefikConfig = ({ applicationId }: Props) => { - + Update traefik config Update the traefik config diff --git a/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx b/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx index 8a5e1fec4..4f89db922 100644 --- a/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx @@ -151,7 +151,7 @@ export const AddVolumes = ({ - + Volumes / Mounts diff --git a/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx b/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx index 1a9b63cad..e9b2ae36b 100644 --- a/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx @@ -186,7 +186,7 @@ export const UpdateVolume = ({ - + Update Update the mount diff --git a/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx b/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx index ecef0deeb..aad1c53af 100644 --- a/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx +++ b/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx @@ -91,7 +91,7 @@ export const ShowSchedules = ({ id, scheduleType = "application" }: Props) => { return (
    diff --git a/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx b/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx index bb071947e..2b0417d71 100644 --- a/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx +++ b/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx @@ -113,7 +113,7 @@ export const ShowVolumeBackups = ({ return (
    diff --git a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx index 265005615..577804d5c 100644 --- a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx +++ b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx @@ -40,7 +40,7 @@ export const ShowDockerModalLogs = ({ {children} - + View Logs View the logs for {containerId} diff --git a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx index 803ea9840..3edc1ca86 100644 --- a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx +++ b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx @@ -40,7 +40,7 @@ export const ShowDockerModalStackLogs = ({ {children} - + View Logs View the logs for {containerId} diff --git a/apps/dokploy/components/dashboard/docker/terminal/docker-terminal-modal.tsx b/apps/dokploy/components/dashboard/docker/terminal/docker-terminal-modal.tsx index ac93b84f1..a2b6331cf 100644 --- a/apps/dokploy/components/dashboard/docker/terminal/docker-terminal-modal.tsx +++ b/apps/dokploy/components/dashboard/docker/terminal/docker-terminal-modal.tsx @@ -60,7 +60,7 @@ export const DockerTerminalModal = ({ event.preventDefault()} > diff --git a/apps/dokploy/components/dashboard/monitoring/paid/container/show-paid-container-monitoring.tsx b/apps/dokploy/components/dashboard/monitoring/paid/container/show-paid-container-monitoring.tsx index 3b189c2ac..bb5834d2b 100644 --- a/apps/dokploy/components/dashboard/monitoring/paid/container/show-paid-container-monitoring.tsx +++ b/apps/dokploy/components/dashboard/monitoring/paid/container/show-paid-container-monitoring.tsx @@ -123,7 +123,7 @@ export const ContainerPaidMonitoring = ({ appName, baseUrl, token }: Props) => { ? queryError.message : "Failed to fetch metrics, Please check your monitoring Instance is Configured correctly."}

    -

    URL: {baseUrl}

    +

    URL: {baseUrl}

    ); diff --git a/apps/dokploy/components/dashboard/monitoring/paid/servers/show-paid-monitoring.tsx b/apps/dokploy/components/dashboard/monitoring/paid/servers/show-paid-monitoring.tsx index e92ce03fc..c6332e55b 100644 --- a/apps/dokploy/components/dashboard/monitoring/paid/servers/show-paid-monitoring.tsx +++ b/apps/dokploy/components/dashboard/monitoring/paid/servers/show-paid-monitoring.tsx @@ -143,7 +143,7 @@ export const ShowPaidMonitoring = ({ ? queryError.message : "Failed to fetch metrics, Please check your monitoring Instance is Configured correctly."}

    -

    URL: {BASE_URL}

    +

    URL: {BASE_URL}

    ); diff --git a/apps/dokploy/components/dashboard/organization/handle-organization.tsx b/apps/dokploy/components/dashboard/organization/handle-organization.tsx index 45dd0e9c7..5e63f6c0d 100644 --- a/apps/dokploy/components/dashboard/organization/handle-organization.tsx +++ b/apps/dokploy/components/dashboard/organization/handle-organization.tsx @@ -155,7 +155,7 @@ export function AddOrganization({ organizationId }: Props) { control={form.control} name="logo" render={({ field }) => ( - + Logo URL { Application - + Create diff --git a/apps/dokploy/components/dashboard/project/add-compose.tsx b/apps/dokploy/components/dashboard/project/add-compose.tsx index 1db73a80b..da0a7e80b 100644 --- a/apps/dokploy/components/dashboard/project/add-compose.tsx +++ b/apps/dokploy/components/dashboard/project/add-compose.tsx @@ -124,7 +124,7 @@ export const AddCompose = ({ projectId, projectName }: Props) => { Compose - + Create Compose diff --git a/apps/dokploy/components/dashboard/project/ai/step-two.tsx b/apps/dokploy/components/dashboard/project/ai/step-two.tsx index 14a929fce..fc918afc7 100644 --- a/apps/dokploy/components/dashboard/project/ai/step-two.tsx +++ b/apps/dokploy/components/dashboard/project/ai/step-two.tsx @@ -259,7 +259,7 @@ export const StepTwo = ({ templateInfo, setTemplateInfo }: StepProps) => { Description - + {selectedVariant?.description} @@ -289,7 +289,7 @@ export const StepTwo = ({ templateInfo, setTemplateInfo }: StepProps) => { Environment Variables - +
    {selectedVariant?.envVariables.map((env, index) => (
    { Domains - +
    {selectedVariant?.domains.map((domain, index) => (
    [] = [ cell: ({ row }) => { const log = row.original; return ( -
    +
    {log.RequestMethod}{" "}
    @@ -86,7 +86,7 @@ export const columns: ColumnDef[] = [ cell: ({ row }) => { const log = row.original; return ( -
    +
    {format(new Date(log.StartUTC), "yyyy-MM-dd HH:mm:ss")}
    diff --git a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx index 2c20bb81d..feb9db6a6 100644 --- a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx +++ b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx @@ -171,7 +171,7 @@ export const ShowBilling = () => { )} {isAnnual ? (
    -

    +

    ${" "} {calculatePrice( serverQuantity, @@ -180,7 +180,7 @@ export const ShowBilling = () => { USD

    | -

    +

    ${" "} {( calculatePrice(serverQuantity, isAnnual) / 12 @@ -189,7 +189,7 @@ export const ShowBilling = () => {

    ) : ( -

    +

    ${" "} {calculatePrice(serverQuantity, isAnnual).toFixed( 2, diff --git a/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx b/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx index b7f7749c1..9b6f22402 100644 --- a/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx +++ b/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx @@ -106,7 +106,7 @@ export const AddCertificate = () => { Add Certificate - + Add New Certificate diff --git a/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx index 07389e0cc..c6193264e 100644 --- a/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx +++ b/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx @@ -27,7 +27,7 @@ export const AddNode = ({ serverId }: Props) => { Add Node - + Add Node diff --git a/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx b/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx index a23912f08..04da10ea0 100644 --- a/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx +++ b/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx @@ -204,7 +204,7 @@ export const HandleDestinations = ({ destinationId }: Props) => { )} - + {destinationId ? "Update" : "Add"} Destination diff --git a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx index 18fe7f391..2fa68b1cb 100644 --- a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx +++ b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx @@ -907,7 +907,7 @@ export const HandleNotifications = ({ notificationId }: Props) => { control={form.control} name="appBuildError" render={({ field }) => ( - +

    App Build Error @@ -928,7 +928,7 @@ export const HandleNotifications = ({ notificationId }: Props) => { control={form.control} name="databaseBackup" render={({ field }) => ( - +
    Database Backup @@ -949,7 +949,7 @@ export const HandleNotifications = ({ notificationId }: Props) => { control={form.control} name="dockerCleanup" render={({ field }) => ( - +
    Docker Cleanup @@ -972,7 +972,7 @@ export const HandleNotifications = ({ notificationId }: Props) => { control={form.control} name="dokployRestart" render={({ field }) => ( - +
    Dokploy Restart @@ -995,7 +995,7 @@ export const HandleNotifications = ({ notificationId }: Props) => { control={form.control} name="serverThreshold" render={({ field }) => ( - +
    Server Threshold diff --git a/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx b/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx index b2c87c39f..7e0b07a5d 100644 --- a/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx +++ b/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx @@ -152,7 +152,7 @@ export const SetupServer = ({ serverId }: Props) => { Copy Public Key ({server?.sshKey?.name}) )} - + SSH Key diff --git a/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx b/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx index 1542a778f..f62a1e10a 100644 --- a/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx +++ b/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx @@ -108,7 +108,7 @@ export const AddInvitation = () => { Add Invitation - + Add Invitation Invite a new user diff --git a/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx b/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx index 8f527ec0b..ac848065e 100644 --- a/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx +++ b/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx @@ -140,7 +140,7 @@ export const AddUserPermissions = ({ userId }: Props) => { control={form.control} name="canCreateProjects" render={({ field }) => ( - +
    Create Projects diff --git a/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx b/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx index 8262b9cbc..f816de46c 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx @@ -78,7 +78,7 @@ export const EditTraefikEnv = ({ children, serverId }: Props) => { return ( {children} - + Update Traefik Environment diff --git a/apps/dokploy/components/dashboard/settings/web-server/local-server-config.tsx b/apps/dokploy/components/dashboard/settings/web-server/local-server-config.tsx index e30408e6d..9f7ba01c2 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/local-server-config.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/local-server-config.tsx @@ -77,7 +77,7 @@ const LocalServerConfig = ({ onSave }: Props) => {
    - + {t("settings.terminal.connectionSettings")}
    diff --git a/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx b/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx index 2de0074c1..b5872acc1 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx @@ -53,7 +53,7 @@ export const TerminalModal = ({ children, serverId }: Props) => { event.preventDefault()} > diff --git a/apps/dokploy/components/ui/file-tree.tsx b/apps/dokploy/components/ui/file-tree.tsx index 60c764a92..98916b6b0 100644 --- a/apps/dokploy/components/ui/file-tree.tsx +++ b/apps/dokploy/components/ui/file-tree.tsx @@ -246,7 +246,7 @@ const Leaf = React.forwardRef< aria-hidden="true" /> )} -

    +

    {item.name}

    diff --git a/apps/dokploy/pages/dashboard/project/[projectId].tsx b/apps/dokploy/pages/dashboard/project/[projectId].tsx index e189ed5cc..4dab1c519 100644 --- a/apps/dokploy/pages/dashboard/project/[projectId].tsx +++ b/apps/dokploy/pages/dashboard/project/[projectId].tsx @@ -958,7 +958,7 @@ const Project = (
    ) : (
    -
    +
    {filteredServices?.map((service) => ( {
    {isError && ( -
    +
    {error} From 89f71fe8891bc3f6fc1fd3d50e8be326fb5cbde6 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sun, 13 Jul 2025 16:50:41 +0000 Subject: [PATCH 35/41] [autofix.ci] apply automated fixes --- .../schedules/handle-schedules.tsx | 136 +++++++++--------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx b/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx index 2d3e9f931..077c289b8 100644 --- a/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx +++ b/apps/dokploy/components/dashboard/application/schedules/handle-schedules.tsx @@ -234,8 +234,8 @@ export const HandleSchedules = ({ id, scheduleId, scheduleType }: Props) => { @@ -438,82 +438,82 @@ export const HandleSchedules = ({ id, scheduleId, scheduleType }: Props) => { {(scheduleTypeForm === "application" || scheduleTypeForm === "compose") && ( - <> - ( - - - Shell Type - - - - Choose the shell to execute your command - - - - )} - /> - ( - - - Command - - - - - - The command to execute in your container - - - - )} - /> - - )} - - {(scheduleTypeForm === "dokploy-server" || - scheduleTypeForm === "server") && ( + <> ( - Script - + + Shell Type + + + + Choose the shell to execute your command + )} /> - )} + ( + + + Command + + + + + + The command to execute in your container + + + + )} + /> + + )} + + {(scheduleTypeForm === "dokploy-server" || + scheduleTypeForm === "server") && ( + ( + + Script + + + + + + + + )} + /> + )} Date: Sun, 13 Jul 2025 13:58:25 -0300 Subject: [PATCH 36/41] fix(typo): fixed typo on replace classname --- .../application/advanced/ports/handle-ports.tsx | 2 +- .../application/advanced/security/handle-security.tsx | 2 +- .../advanced/traefik/update-traefik-config.tsx | 2 +- .../application/advanced/volumes/add-volumes.tsx | 2 +- .../application/advanced/volumes/update-volume.tsx | 2 +- .../dashboard/application/schedules/show-schedules.tsx | 2 +- .../application/volume-backups/show-volume-backups.tsx | 2 +- .../dashboard/docker/logs/show-docker-modal-logs.tsx | 2 +- .../docker/logs/show-docker-modal-stack-logs.tsx | 2 +- .../docker/terminal/docker-terminal-modal.tsx | 2 +- .../paid/container/show-paid-container-monitoring.tsx | 2 +- .../monitoring/paid/servers/show-paid-monitoring.tsx | 2 +- .../dashboard/organization/handle-organization.tsx | 2 +- .../components/dashboard/project/add-application.tsx | 2 +- .../components/dashboard/project/add-compose.tsx | 2 +- .../components/dashboard/project/ai/step-two.tsx | 6 +++--- apps/dokploy/components/dashboard/requests/columns.tsx | 4 ++-- .../dashboard/settings/billing/show-billing.tsx | 6 +++--- .../settings/certificates/add-certificate.tsx | 2 +- .../dashboard/settings/cluster/nodes/add-node.tsx | 2 +- .../settings/destination/handle-destinations.tsx | 2 +- .../settings/notifications/handle-notifications.tsx | 10 +++++----- .../dashboard/settings/servers/setup-server.tsx | 2 +- .../settings/servers/welcome-stripe/create-ssh-key.tsx | 2 +- .../servers/welcome-stripe/welcome-suscription.tsx | 2 +- .../dashboard/settings/ssh-keys/handle-ssh-keys.tsx | 2 +- .../dashboard/settings/users/add-invitation.tsx | 2 +- .../dashboard/settings/users/add-permissions.tsx | 2 +- .../dashboard/settings/web-server/edit-traefik-env.tsx | 2 +- .../settings/web-server/local-server-config.tsx | 2 +- .../dashboard/settings/web-server/terminal-modal.tsx | 2 +- apps/dokploy/components/ui/file-tree.tsx | 2 +- apps/dokploy/pages/dashboard/project/[projectId].tsx | 2 +- apps/dokploy/pages/register.tsx | 2 +- 34 files changed, 43 insertions(+), 43 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx b/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx index beeed15dd..81c1f32c5 100644 --- a/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/ports/handle-ports.tsx @@ -124,7 +124,7 @@ export const HandlePorts = ({ )} - + Ports diff --git a/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx b/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx index d56545bb0..1808f7873 100644 --- a/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/security/handle-security.tsx @@ -114,7 +114,7 @@ export const HandleSecurity = ({ )} - + Security diff --git a/apps/dokploy/components/dashboard/application/advanced/traefik/update-traefik-config.tsx b/apps/dokploy/components/dashboard/application/advanced/traefik/update-traefik-config.tsx index 134ae67a6..c73ed5b3d 100644 --- a/apps/dokploy/components/dashboard/application/advanced/traefik/update-traefik-config.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/traefik/update-traefik-config.tsx @@ -122,7 +122,7 @@ export const UpdateTraefikConfig = ({ applicationId }: Props) => { - + Update traefik config Update the traefik config diff --git a/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx b/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx index 4f89db922..84c864e3a 100644 --- a/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx @@ -151,7 +151,7 @@ export const AddVolumes = ({ - + Volumes / Mounts diff --git a/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx b/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx index e9b2ae36b..2a692f100 100644 --- a/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx @@ -186,7 +186,7 @@ export const UpdateVolume = ({ - + Update Update the mount diff --git a/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx b/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx index aad1c53af..2f2ebc85a 100644 --- a/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx +++ b/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx @@ -91,7 +91,7 @@ export const ShowSchedules = ({ id, scheduleType = "application" }: Props) => { return (
    diff --git a/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx b/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx index 2b0417d71..083f45252 100644 --- a/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx +++ b/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx @@ -113,7 +113,7 @@ export const ShowVolumeBackups = ({ return (
    diff --git a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx index 577804d5c..fc2fb8f67 100644 --- a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx +++ b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx @@ -40,7 +40,7 @@ export const ShowDockerModalLogs = ({ {children} - + View Logs View the logs for {containerId} diff --git a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx index 3edc1ca86..669369348 100644 --- a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx +++ b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx @@ -40,7 +40,7 @@ export const ShowDockerModalStackLogs = ({ {children} - + View Logs View the logs for {containerId} diff --git a/apps/dokploy/components/dashboard/docker/terminal/docker-terminal-modal.tsx b/apps/dokploy/components/dashboard/docker/terminal/docker-terminal-modal.tsx index a2b6331cf..97d9f16e8 100644 --- a/apps/dokploy/components/dashboard/docker/terminal/docker-terminal-modal.tsx +++ b/apps/dokploy/components/dashboard/docker/terminal/docker-terminal-modal.tsx @@ -60,7 +60,7 @@ export const DockerTerminalModal = ({ event.preventDefault()} > diff --git a/apps/dokploy/components/dashboard/monitoring/paid/container/show-paid-container-monitoring.tsx b/apps/dokploy/components/dashboard/monitoring/paid/container/show-paid-container-monitoring.tsx index bb5834d2b..c9cefa4c3 100644 --- a/apps/dokploy/components/dashboard/monitoring/paid/container/show-paid-container-monitoring.tsx +++ b/apps/dokploy/components/dashboard/monitoring/paid/container/show-paid-container-monitoring.tsx @@ -123,7 +123,7 @@ export const ContainerPaidMonitoring = ({ appName, baseUrl, token }: Props) => { ? queryError.message : "Failed to fetch metrics, Please check your monitoring Instance is Configured correctly."}

    -

    URL: {baseUrl}

    +

    URL: {baseUrl}

    ); diff --git a/apps/dokploy/components/dashboard/monitoring/paid/servers/show-paid-monitoring.tsx b/apps/dokploy/components/dashboard/monitoring/paid/servers/show-paid-monitoring.tsx index c6332e55b..492abc9e0 100644 --- a/apps/dokploy/components/dashboard/monitoring/paid/servers/show-paid-monitoring.tsx +++ b/apps/dokploy/components/dashboard/monitoring/paid/servers/show-paid-monitoring.tsx @@ -143,7 +143,7 @@ export const ShowPaidMonitoring = ({ ? queryError.message : "Failed to fetch metrics, Please check your monitoring Instance is Configured correctly."}

    -

    URL: {BASE_URL}

    +

    URL: {BASE_URL}

    ); diff --git a/apps/dokploy/components/dashboard/organization/handle-organization.tsx b/apps/dokploy/components/dashboard/organization/handle-organization.tsx index 5e63f6c0d..394f3d018 100644 --- a/apps/dokploy/components/dashboard/organization/handle-organization.tsx +++ b/apps/dokploy/components/dashboard/organization/handle-organization.tsx @@ -155,7 +155,7 @@ export function AddOrganization({ organizationId }: Props) { control={form.control} name="logo" render={({ field }) => ( - + Logo URL { Application - + Create diff --git a/apps/dokploy/components/dashboard/project/add-compose.tsx b/apps/dokploy/components/dashboard/project/add-compose.tsx index da0a7e80b..a60bfdd70 100644 --- a/apps/dokploy/components/dashboard/project/add-compose.tsx +++ b/apps/dokploy/components/dashboard/project/add-compose.tsx @@ -124,7 +124,7 @@ export const AddCompose = ({ projectId, projectName }: Props) => { Compose - + Create Compose diff --git a/apps/dokploy/components/dashboard/project/ai/step-two.tsx b/apps/dokploy/components/dashboard/project/ai/step-two.tsx index fc918afc7..7b4deb30e 100644 --- a/apps/dokploy/components/dashboard/project/ai/step-two.tsx +++ b/apps/dokploy/components/dashboard/project/ai/step-two.tsx @@ -259,7 +259,7 @@ export const StepTwo = ({ templateInfo, setTemplateInfo }: StepProps) => { Description - + {selectedVariant?.description} @@ -289,7 +289,7 @@ export const StepTwo = ({ templateInfo, setTemplateInfo }: StepProps) => { Environment Variables - +
    {selectedVariant?.envVariables.map((env, index) => (
    { Domains - +
    {selectedVariant?.domains.map((domain, index) => (
    [] = [ cell: ({ row }) => { const log = row.original; return ( -
    +
    {log.RequestMethod}{" "}
    @@ -86,7 +86,7 @@ export const columns: ColumnDef[] = [ cell: ({ row }) => { const log = row.original; return ( -
    +
    {format(new Date(log.StartUTC), "yyyy-MM-dd HH:mm:ss")}
    diff --git a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx index feb9db6a6..1e0e5d3df 100644 --- a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx +++ b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx @@ -171,7 +171,7 @@ export const ShowBilling = () => { )} {isAnnual ? (
    -

    +

    ${" "} {calculatePrice( serverQuantity, @@ -180,7 +180,7 @@ export const ShowBilling = () => { USD

    | -

    +

    ${" "} {( calculatePrice(serverQuantity, isAnnual) / 12 @@ -189,7 +189,7 @@ export const ShowBilling = () => {

    ) : ( -

    +

    ${" "} {calculatePrice(serverQuantity, isAnnual).toFixed( 2, diff --git a/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx b/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx index 9b6f22402..c0d059992 100644 --- a/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx +++ b/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx @@ -106,7 +106,7 @@ export const AddCertificate = () => { Add Certificate - + Add New Certificate diff --git a/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx index c6193264e..1f594c508 100644 --- a/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx +++ b/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx @@ -27,7 +27,7 @@ export const AddNode = ({ serverId }: Props) => { Add Node - + Add Node diff --git a/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx b/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx index 04da10ea0..40bcfa24e 100644 --- a/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx +++ b/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx @@ -204,7 +204,7 @@ export const HandleDestinations = ({ destinationId }: Props) => { )} - + {destinationId ? "Update" : "Add"} Destination diff --git a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx index 2fa68b1cb..fbe6faeed 100644 --- a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx +++ b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx @@ -907,7 +907,7 @@ export const HandleNotifications = ({ notificationId }: Props) => { control={form.control} name="appBuildError" render={({ field }) => ( - +

    App Build Error @@ -928,7 +928,7 @@ export const HandleNotifications = ({ notificationId }: Props) => { control={form.control} name="databaseBackup" render={({ field }) => ( - +
    Database Backup @@ -949,7 +949,7 @@ export const HandleNotifications = ({ notificationId }: Props) => { control={form.control} name="dockerCleanup" render={({ field }) => ( - +
    Docker Cleanup @@ -972,7 +972,7 @@ export const HandleNotifications = ({ notificationId }: Props) => { control={form.control} name="dokployRestart" render={({ field }) => ( - +
    Dokploy Restart @@ -995,7 +995,7 @@ export const HandleNotifications = ({ notificationId }: Props) => { control={form.control} name="serverThreshold" render={({ field }) => ( - +
    Server Threshold diff --git a/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx b/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx index 7e0b07a5d..85c63adb6 100644 --- a/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx +++ b/apps/dokploy/components/dashboard/settings/servers/setup-server.tsx @@ -152,7 +152,7 @@ export const SetupServer = ({ serverId }: Props) => { Copy Public Key ({server?.sshKey?.name}) )} - + SSH Key diff --git a/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx b/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx index f62a1e10a..c09d11784 100644 --- a/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx +++ b/apps/dokploy/components/dashboard/settings/users/add-invitation.tsx @@ -108,7 +108,7 @@ export const AddInvitation = () => { Add Invitation - + Add Invitation Invite a new user diff --git a/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx b/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx index ac848065e..b3476392c 100644 --- a/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx +++ b/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx @@ -140,7 +140,7 @@ export const AddUserPermissions = ({ userId }: Props) => { control={form.control} name="canCreateProjects" render={({ field }) => ( - +
    Create Projects diff --git a/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx b/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx index f816de46c..5332fbf78 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/edit-traefik-env.tsx @@ -78,7 +78,7 @@ export const EditTraefikEnv = ({ children, serverId }: Props) => { return ( {children} - + Update Traefik Environment diff --git a/apps/dokploy/components/dashboard/settings/web-server/local-server-config.tsx b/apps/dokploy/components/dashboard/settings/web-server/local-server-config.tsx index 9f7ba01c2..ae9158453 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/local-server-config.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/local-server-config.tsx @@ -77,7 +77,7 @@ const LocalServerConfig = ({ onSave }: Props) => {
    - + {t("settings.terminal.connectionSettings")}
    diff --git a/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx b/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx index b5872acc1..af5ce06c1 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx @@ -53,7 +53,7 @@ export const TerminalModal = ({ children, serverId }: Props) => { event.preventDefault()} > diff --git a/apps/dokploy/components/ui/file-tree.tsx b/apps/dokploy/components/ui/file-tree.tsx index 98916b6b0..644aa88fb 100644 --- a/apps/dokploy/components/ui/file-tree.tsx +++ b/apps/dokploy/components/ui/file-tree.tsx @@ -246,7 +246,7 @@ const Leaf = React.forwardRef< aria-hidden="true" /> )} -

    +

    {item.name}

    diff --git a/apps/dokploy/pages/dashboard/project/[projectId].tsx b/apps/dokploy/pages/dashboard/project/[projectId].tsx index 4dab1c519..4da44e802 100644 --- a/apps/dokploy/pages/dashboard/project/[projectId].tsx +++ b/apps/dokploy/pages/dashboard/project/[projectId].tsx @@ -958,7 +958,7 @@ const Project = (
    ) : (
    -
    +
    {filteredServices?.map((service) => ( {
    {isError && ( -
    +
    {error} From 691c83c256bfc6b7af39a89b8fa2d7e0990aef43 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sun, 13 Jul 2025 17:54:36 +0000 Subject: [PATCH 37/41] [autofix.ci] apply automated fixes --- packages/server/src/utils/providers/gitlab.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/server/src/utils/providers/gitlab.ts b/packages/server/src/utils/providers/gitlab.ts index 8fa480ba9..369951699 100644 --- a/packages/server/src/utils/providers/gitlab.ts +++ b/packages/server/src/utils/providers/gitlab.ts @@ -84,9 +84,14 @@ export type ApplicationWithGitlab = InferResultType< export type ComposeWithGitlab = InferResultType<"compose", { gitlab: true }>; -export type GitlabInfo = ApplicationWithGitlab['gitlab'] | ComposeWithGitlab['gitlab']; +export type GitlabInfo = + | ApplicationWithGitlab["gitlab"] + | ComposeWithGitlab["gitlab"]; -const getGitlabRepoClone = (gitlab: GitlabInfo, gitlabPathNamespace: string | null) => { +const getGitlabRepoClone = ( + gitlab: GitlabInfo, + gitlabPathNamespace: string | null, +) => { const repoClone = `${gitlab?.gitlabUrl.replace(/^https?:\/\//, "")}/${gitlabPathNamespace}.git`; return repoClone; }; @@ -96,7 +101,6 @@ const getGitlabCloneUrl = (gitlab: GitlabInfo, repoClone: string) => { const cloneUrl = `http${isSecure ? "s" : ""}://oauth2:${gitlab?.accessToken}@${repoClone}`; return cloneUrl; }; - export const cloneGitlabRepository = async ( entity: ApplicationWithGitlab | ComposeWithGitlab, From bd8745393b7dbcb469489cf17382594098c26d5c Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 13 Jul 2025 11:55:04 -0600 Subject: [PATCH 38/41] chore(package): bump version to v0.24.1 --- apps/dokploy/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json index 054e74f35..7161335f5 100644 --- a/apps/dokploy/package.json +++ b/apps/dokploy/package.json @@ -1,6 +1,6 @@ { "name": "dokploy", - "version": "v0.24.0", + "version": "v0.24.1", "private": true, "license": "Apache-2.0", "type": "module", From a0031ed07fbe57b3e33ba2e20ba34edbbd423655 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 13 Jul 2025 12:03:01 -0600 Subject: [PATCH 39/41] chore(docker): update Node.js version to 20.16.0 in all Dockerfiles --- Dockerfile | 2 +- Dockerfile.cloud | 2 +- Dockerfile.schedule | 2 +- Dockerfile.server | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index c41df8c73..5ff597188 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM node:20.9-slim AS base +FROM node:20.16.0-slim AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable diff --git a/Dockerfile.cloud b/Dockerfile.cloud index c234259dc..bcf3eed33 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM node:20.9-slim AS base +FROM node:20.16.0-slim AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable diff --git a/Dockerfile.schedule b/Dockerfile.schedule index 70976523c..d605c0649 100644 --- a/Dockerfile.schedule +++ b/Dockerfile.schedule @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM node:20.9-slim AS base +FROM node:20.16.0-slim AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable diff --git a/Dockerfile.server b/Dockerfile.server index e911c8780..0dff0ab15 100644 --- a/Dockerfile.server +++ b/Dockerfile.server @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM node:20.9-slim AS base +FROM node:20.16.0-slim AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable From 19f746591016dc3f456d9bea015d3deb38819072 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 13 Jul 2025 13:11:19 -0600 Subject: [PATCH 40/41] chore(docker): activate pnpm 9.12.0 in all Dockerfiles --- Dockerfile | 1 + Dockerfile.cloud | 1 + Dockerfile.schedule | 1 + Dockerfile.server | 1 + 4 files changed, 4 insertions(+) diff --git a/Dockerfile b/Dockerfile index 5ff597188..4d18a99ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,6 +3,7 @@ FROM node:20.16.0-slim AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable +RUN corepack prepare pnpm@9.12.0 --activate FROM base AS build COPY . /usr/src/app diff --git a/Dockerfile.cloud b/Dockerfile.cloud index bcf3eed33..8e4bac215 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -3,6 +3,7 @@ FROM node:20.16.0-slim AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable +RUN corepack prepare pnpm@9.12.0 --activate FROM base AS build COPY . /usr/src/app diff --git a/Dockerfile.schedule b/Dockerfile.schedule index d605c0649..ecb125e09 100644 --- a/Dockerfile.schedule +++ b/Dockerfile.schedule @@ -3,6 +3,7 @@ FROM node:20.16.0-slim AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable +RUN corepack prepare pnpm@9.12.0 --activate FROM base AS build COPY . /usr/src/app diff --git a/Dockerfile.server b/Dockerfile.server index 0dff0ab15..ea6b372e8 100644 --- a/Dockerfile.server +++ b/Dockerfile.server @@ -3,6 +3,7 @@ FROM node:20.16.0-slim AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable +RUN corepack prepare pnpm@9.12.0 --activate FROM base AS build COPY . /usr/src/app From 0b71411c0eb59a9be7120ec3e436e6b9219859be Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 13 Jul 2025 13:17:48 -0600 Subject: [PATCH 41/41] feat(monitoring): add RestartPolicy configuration for server and web monitoring setups --- packages/server/src/setup/monitoring-setup.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/server/src/setup/monitoring-setup.ts b/packages/server/src/setup/monitoring-setup.ts index 6e56b31cc..20055be9a 100644 --- a/packages/server/src/setup/monitoring-setup.ts +++ b/packages/server/src/setup/monitoring-setup.ts @@ -30,6 +30,9 @@ export const setupMonitoring = async (serverId: string) => { // PidMode: "host", // CapAdd: ["NET_ADMIN", "SYS_ADMIN"], // Privileged: true, + RestartPolicy: { + Name: "always", + }, PortBindings: { [`${server.metricsConfig.server.port}/tcp`]: [ { @@ -103,6 +106,9 @@ export const setupWebMonitoring = async (userId: string) => { // PidMode: "host", // CapAdd: ["NET_ADMIN", "SYS_ADMIN"], // Privileged: true, + RestartPolicy: { + Name: "always", + }, PortBindings: { [`${user?.metricsConfig?.server?.port}/tcp`]: [ {