From b2cf442d9b3de99305c92d98fb6e1ff562480f9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ordon?= <87477+designorant@users.noreply.github.com> Date: Mon, 30 Dec 2024 01:47:34 +0000 Subject: [PATCH 01/55] feat(i18n): add missing keys to Polish translation --- apps/dokploy/public/locales/pl/settings.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/dokploy/public/locales/pl/settings.json b/apps/dokploy/public/locales/pl/settings.json index 93414825..a87b82cb 100644 --- a/apps/dokploy/public/locales/pl/settings.json +++ b/apps/dokploy/public/locales/pl/settings.json @@ -19,6 +19,14 @@ "settings.server.webServer.server.label": "Serwer", "settings.server.webServer.traefik.label": "Traefik", "settings.server.webServer.traefik.modifyEnv": "Zmodyfikuj środowisko", + "settings.server.webServer.traefik.managePorts": "Dodatkowe mapowania portów", + "settings.server.webServer.traefik.managePortsDescription": "Dodaj lub usuń dodatkowe porty dla Traefik", + "settings.server.webServer.traefik.targetPort": "Port docelowy", + "settings.server.webServer.traefik.publishedPort": "Port opublikowany", + "settings.server.webServer.traefik.addPort": "Dodaj port", + "settings.server.webServer.traefik.portsUpdated": "Porty zaktualizowane pomyślnie", + "settings.server.webServer.traefik.portsUpdateError": "Nie udało się zaktualizować portów", + "settings.server.webServer.traefik.publishMode": "Tryb publikacji", "settings.server.webServer.storage.label": "Przestrzeń", "settings.server.webServer.storage.cleanUnusedImages": "Wyczyść nieużywane obrazy", "settings.server.webServer.storage.cleanUnusedVolumes": "Wyczyść nieużywane wolumeny", From 9122a1e4b2f4de5ad877f6772d1d4385fead37da Mon Sep 17 00:00:00 2001 From: vishalkadam47 Date: Mon, 30 Dec 2024 07:32:34 +0530 Subject: [PATCH 02/55] refactor: enhance ManageTraefikPorts with ScrollArea for better UI and port management display --- .../web-server/manage-traefik-ports.tsx | 214 +++++++++--------- 1 file changed, 112 insertions(+), 102 deletions(-) diff --git a/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx b/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx index 6c784b52..a3082336 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx @@ -18,6 +18,7 @@ import { FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; +import { ScrollArea } from "@/components/ui/scroll-area"; import { Select, SelectContent, @@ -114,7 +115,15 @@ export const ManageTraefikPorts = ({ children, serverId }: Props) => {
- {t("settings.server.webServer.traefik.managePortsDescription")} +
+ {t( + "settings.server.webServer.traefik.managePortsDescription", + )} + + {fields.length} port mapping{fields.length !== 1 ? "s" : ""}{" "} + configured + +
) : ( -
- {fields.map((field, index) => ( - - - ( - - - {t( - "settings.server.webServer.traefik.targetPort", - )} - - - - field.onChange(Number(e.target.value)) - } - className="w-full dark:bg-black" - placeholder="e.g. 8080" - /> - - - - )} - /> - - ( - - - {t( - "settings.server.webServer.traefik.publishedPort", - )} - - - - field.onChange(Number(e.target.value)) - } - className="w-full dark:bg-black" - placeholder="e.g. 80" - /> - - - - )} - /> - - ( - - - {t( - "settings.server.webServer.traefik.publishMode", - )} - - + field.onChange(Number(e.target.value)) + } + className="w-full dark:bg-black" + placeholder="e.g. 8080" + /> - - - Host Mode - - - Ingress Mode - - - - - - )} - /> + + + )} + /> -
- -
-
-
- ))} -
+ ( + + + {t( + "settings.server.webServer.traefik.publishedPort", + )} + + + + field.onChange(Number(e.target.value)) + } + className="w-full dark:bg-black" + placeholder="e.g. 80" + /> + + + + )} + /> + + ( + + + {t( + "settings.server.webServer.traefik.publishMode", + )} + + + + + )} + /> + +
+ +
+ + + ))} + + )} {fields.length > 0 && ( @@ -281,7 +292,6 @@ export const ManageTraefikPorts = ({ children, serverId }: Props) => { )} - @@ -87,12 +97,13 @@ export default function SwarmMonitorCard({ serverId }: Props) { - - Active Nodes - - Online - - +
+ + Active Nodes + + Online + +
@@ -121,12 +132,13 @@ export default function SwarmMonitorCard({ serverId }: Props) { - - Manager Nodes - - Online - - +
+ + Manager Nodes + + Online + +
@@ -162,4 +174,4 @@ export default function SwarmMonitorCard({ serverId }: Props) { ); -} \ No newline at end of file +} From d4f89425db65a24a05978cfc200fe730a24ed04a Mon Sep 17 00:00:00 2001 From: Mohab Gabber Date: Mon, 30 Dec 2024 23:45:59 +0200 Subject: [PATCH 08/55] Added GLPI template --- apps/dokploy/public/templates/glpi.webp | Bin 0 -> 13536 bytes .../dokploy/templates/glpi/docker-compose.yml | 28 ++++++++++++++++++ apps/dokploy/templates/glpi/index.ts | 20 +++++++++++++ apps/dokploy/templates/templates.ts | 15 ++++++++++ 4 files changed, 63 insertions(+) create mode 100644 apps/dokploy/public/templates/glpi.webp create mode 100644 apps/dokploy/templates/glpi/docker-compose.yml create mode 100644 apps/dokploy/templates/glpi/index.ts diff --git a/apps/dokploy/public/templates/glpi.webp b/apps/dokploy/public/templates/glpi.webp new file mode 100644 index 0000000000000000000000000000000000000000..8d69cd297b9e1b1d83772ca0438bae500a87c3c7 GIT binary patch literal 13536 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 EF9C8qR{#J2 literal 0 HcmV?d00001 diff --git a/apps/dokploy/templates/glpi/docker-compose.yml b/apps/dokploy/templates/glpi/docker-compose.yml new file mode 100644 index 00000000..42c4cc36 --- /dev/null +++ b/apps/dokploy/templates/glpi/docker-compose.yml @@ -0,0 +1,28 @@ +services: + glpi-mysql: + image: elestio/mysql:9.1.0 + restart: always + volumes: + - glpi-mysql-data:/var/lib/mysql + networks: + - dokploy-network + + glpi-web: + image: elestio/glpi:10.0.16 + restart: always + volumes: + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + - glpi-www-data:/var/www/html/glpi + environment: + - TIMEZONE=Europe/Brussels + networks: + - dokploy-network + +volumes: + glpi-mysql-data: + glpi-www-data: + +networks: + dokploy-network: + external: true \ No newline at end of file diff --git a/apps/dokploy/templates/glpi/index.ts b/apps/dokploy/templates/glpi/index.ts new file mode 100644 index 00000000..ce26d1f2 --- /dev/null +++ b/apps/dokploy/templates/glpi/index.ts @@ -0,0 +1,20 @@ +import { + type DomainSchema, + type Schema, + type Template, + generateRandomDomain, +} from "../utils"; + +export function generate(schema: Schema): Template { + const randomDomain = generateRandomDomain(schema); + const domains: DomainSchema[] = [ + { + host: randomDomain, + port: 80, + serviceName: "glpi-web", + }, + ]; + return { + domains, + }; +} \ No newline at end of file diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index 48840a32..2dcc68b3 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -1166,4 +1166,19 @@ export const templates: TemplateData[] = [ tags: ["self-hosted", "networking"], load: () => import("./unifi/index").then((m) => m.generate), }, + { + id: "glpi", + name: "GLPI Project", + version: "10.0.16", + description: + "The most complete open source service management software", + logo: "glpi.webp", + links: { + github: "https://github.com/glpi-project/glpi", + website: "https://glpi-project.org/", + docs: "https://glpi-project.org/documentation/", + }, + tags: ["self-hosted", "project-management", "management"], + load: () => import("./glpi/index").then((m) => m.generate), + }, ]; From ed5936ede7c7dae12d742c18ff9bce57198613d7 Mon Sep 17 00:00:00 2001 From: UndefinedPony Date: Tue, 31 Dec 2024 11:11:33 +0100 Subject: [PATCH 09/55] feat: add health endpoint for frontend app --- apps/dokploy/pages/api/health.ts | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 apps/dokploy/pages/api/health.ts diff --git a/apps/dokploy/pages/api/health.ts b/apps/dokploy/pages/api/health.ts new file mode 100644 index 00000000..9dc8101e --- /dev/null +++ b/apps/dokploy/pages/api/health.ts @@ -0,0 +1,8 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +export default async function handler( + req: NextApiRequest, + res: NextApiResponse, +) { + return res.status(200).json({ ok: true }); +} From 29a8cb63c056155bc1d04a233cd3b6a4ec8b4963 Mon Sep 17 00:00:00 2001 From: UndefinedPony Date: Tue, 31 Dec 2024 11:13:58 +0100 Subject: [PATCH 10/55] refactor: pass update data and use updates modal in navbar --- apps/dokploy/components/layouts/navbar.tsx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/dokploy/components/layouts/navbar.tsx b/apps/dokploy/components/layouts/navbar.tsx index 0e52d701..bf733bd2 100644 --- a/apps/dokploy/components/layouts/navbar.tsx +++ b/apps/dokploy/components/layouts/navbar.tsx @@ -13,15 +13,19 @@ import { HeartIcon } from "lucide-react"; import Link from "next/link"; import { useRouter } from "next/router"; import { useEffect, useRef, useState } from "react"; -import { UpdateWebServer } from "../dashboard/settings/web-server/update-webserver"; import { Logo } from "../shared/logo"; import { Avatar, AvatarFallback, AvatarImage } from "../ui/avatar"; import { buttonVariants } from "../ui/button"; +import UpdateServer from "../dashboard/settings/web-server/update-server"; +import type { IUpdateData } from "@dokploy/server/index"; const AUTO_CHECK_UPDATES_INTERVAL_MINUTES = 7; export const Navbar = () => { - const [isUpdateAvailable, setIsUpdateAvailable] = useState(false); + const [updateData, setUpdateData] = useState({ + latestVersion: null, + updateAvailable: false, + }); const router = useRouter(); const { data } = api.auth.get.useQuery(); const { data: isCloud } = api.settings.isCloud.useQuery(); @@ -62,12 +66,12 @@ export const Navbar = () => { return; } - const { updateAvailable } = await getUpdateData(); + const fetchedUpdateData = await getUpdateData(); - if (updateAvailable) { + if (fetchedUpdateData?.updateAvailable) { // Stop interval when update is available clearUpdatesInterval(); - setIsUpdateAvailable(true); + setUpdateData(fetchedUpdateData); } } catch (error) { console.error("Error auto-checking for updates:", error); @@ -101,9 +105,9 @@ export const Navbar = () => { - {isUpdateAvailable && ( + {updateData.updateAvailable && (
- +
)} Date: Tue, 31 Dec 2024 11:19:22 +0100 Subject: [PATCH 11/55] refactor: allow using already fetched updateData, remove ping icon --- .../settings/web-server/update-server.tsx | 42 ++++++++++++++----- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/apps/dokploy/components/dashboard/settings/web-server/update-server.tsx b/apps/dokploy/components/dashboard/settings/web-server/update-server.tsx index 6c8475d3..dad04ab0 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/update-server.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/update-server.tsx @@ -22,16 +22,25 @@ import { useState } from "react"; import { toast } from "sonner"; import { ToggleAutoCheckUpdates } from "./toggle-auto-check-updates"; import { UpdateWebServer } from "./update-webserver"; +import type { IUpdateData } from "@dokploy/server/index"; -export const UpdateServer = () => { - const [hasCheckedUpdate, setHasCheckedUpdate] = useState(false); - const [isUpdateAvailable, setIsUpdateAvailable] = useState(false); +interface Props { + updateData?: IUpdateData; +} + +export const UpdateServer = ({ updateData }: Props) => { + const [hasCheckedUpdate, setHasCheckedUpdate] = useState(!!updateData); + const [isUpdateAvailable, setIsUpdateAvailable] = useState( + !!updateData?.updateAvailable, + ); const { mutateAsync: getUpdateData, isLoading } = api.settings.getUpdateData.useMutation(); const { data: dokployVersion } = api.settings.getDokployVersion.useQuery(); const { data: releaseTag } = api.settings.getReleaseTag.useQuery(); const [isOpen, setIsOpen] = useState(false); - const [latestVersion, setLatestVersion] = useState(""); + const [latestVersion, setLatestVersion] = useState( + updateData?.latestVersion ?? "", + ); const handleCheckUpdates = async () => { try { @@ -61,9 +70,24 @@ export const UpdateServer = () => { return ( - @@ -99,10 +123,6 @@ export const UpdateServer = () => {
- - - - New version available: From 187f051484ab3c51d6d19647713e49aa7e267adf Mon Sep 17 00:00:00 2001 From: UndefinedPony Date: Tue, 31 Dec 2024 11:20:59 +0100 Subject: [PATCH 12/55] fix: check health endpoint instead of awaiting service restart to fix update success status --- .../settings/web-server/update-webserver.tsx | 97 +++++++++++++------ apps/dokploy/server/api/routers/settings.ts | 4 +- 2 files changed, 71 insertions(+), 30 deletions(-) diff --git a/apps/dokploy/components/dashboard/settings/web-server/update-webserver.tsx b/apps/dokploy/components/dashboard/settings/web-server/update-webserver.tsx index c1e5de70..537a1add 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/update-webserver.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/update-webserver.tsx @@ -11,30 +11,50 @@ import { } from "@/components/ui/alert-dialog"; import { Button } from "@/components/ui/button"; import { api } from "@/utils/api"; -import { HardDriveDownload } from "lucide-react"; +import { HardDriveDownload, Loader2 } from "lucide-react"; +import { useState } from "react"; import { toast } from "sonner"; -interface Props { - isNavbar?: boolean; -} +export const UpdateWebServer = () => { + const [updating, setUpdating] = useState(false); + const [open, setOpen] = useState(false); -export const UpdateWebServer = ({ isNavbar }: Props) => { - const { mutateAsync: updateServer, isLoading } = - api.settings.updateServer.useMutation(); + const { mutateAsync: updateServer } = api.settings.updateServer.useMutation(); - const buttonLabel = isNavbar ? "Update available" : "Update Server"; - - const handleConfirm = async () => { + const checkIsUpdateFinished = async () => { try { - await updateServer(); + const response = await fetch("/api/health"); + if (!response.ok) { + throw new Error("Health check failed"); + } + toast.success( "The server has been updated. The page will be reloaded to reflect the changes...", ); + setTimeout(() => { // Allow seeing the toast before reloading window.location.reload(); }, 2000); + } catch { + // Delay each request + await new Promise((resolve) => setTimeout(resolve, 2000)); + // Keep running until it returns 200 + void checkIsUpdateFinished(); + } + }; + + const handleConfirm = async () => { + try { + setUpdating(true); + await updateServer(); + + // Give some time for docker service restart before starting to check status + await new Promise((resolve) => setTimeout(resolve, 8000)); + + await checkIsUpdateFinished(); } catch (error) { + setUpdating(false); console.error("Error updating server:", error); toast.error( "An error occurred while updating the server, please try again.", @@ -43,35 +63,54 @@ export const UpdateWebServer = ({ isNavbar }: Props) => { }; return ( - + - Are you absolutely sure? + + {updating + ? "Server update in progress" + : "Are you absolutely sure?"} + - This action cannot be undone. This will update the web server to the - new version. The page will be reloaded once the update is finished. + {updating ? ( + + + The server is being updated, please wait... + + ) : ( + <> + This action cannot be undone. This will update the web server to + the new version. You will not be able to use the panel during + the update process. The page will be reloaded once the update is + finished. + + )} - - Cancel - Confirm - + {!updating && ( + + setOpen(false)}> + Cancel + + + Confirm + + + )} ); diff --git a/apps/dokploy/server/api/routers/settings.ts b/apps/dokploy/server/api/routers/settings.ts index b40ee95b..449a2233 100644 --- a/apps/dokploy/server/api/routers/settings.ts +++ b/apps/dokploy/server/api/routers/settings.ts @@ -359,7 +359,9 @@ export const settingsRouter = createTRPCRouter({ await pullLatestRelease(); - await spawnAsync("docker", [ + // This causes restart of dokploy, thus it will not finish executing properly, so don't await it + // Status after restart is checked via frontend /api/health endpoint + void spawnAsync("docker", [ "service", "update", "--force", From 513b17105e93f60db604eb9a4955bf5bac444ea9 Mon Sep 17 00:00:00 2001 From: Pierre B Date: Wed, 1 Jan 2025 15:47:47 +0100 Subject: [PATCH 13/55] style: environment style improvement --- .../application/environment/show.tsx | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/environment/show.tsx b/apps/dokploy/components/dashboard/application/environment/show.tsx index ec555804..97046452 100644 --- a/apps/dokploy/components/dashboard/application/environment/show.tsx +++ b/apps/dokploy/components/dashboard/application/environment/show.tsx @@ -55,13 +55,13 @@ export const ShowEnvironment = ({ applicationId }: Props) => { }); }; - return ( -
- - + return ( + + + { placeholder="NPM_TOKEN=xyz" /> )} - -
- -
-
-
- - - ); +
+ +
+ + +
+ ); }; From 76787b9056a6b3d2e54876e058d4b3ee2190111d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ordon?= Date: Wed, 1 Jan 2025 17:11:08 +0000 Subject: [PATCH 14/55] style: enhance favicon with dark mode support --- apps/dokploy/public/icon.svg | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/dokploy/public/icon.svg b/apps/dokploy/public/icon.svg index 3a8930d5..6752c206 100644 --- a/apps/dokploy/public/icon.svg +++ b/apps/dokploy/public/icon.svg @@ -1,5 +1,12 @@ - - - + + + + From 7cf5cb40329d97134005fa6bca3f8e82264a2d5d Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Wed, 1 Jan 2025 16:39:27 -0700 Subject: [PATCH 15/55] fix: added unzip to server setup The installation script for rclone requires unzip to be present in order to install. This adds this dep to the deps installed as it's not present on Debian. --- packages/server/src/setup/server-setup.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/setup/server-setup.ts b/packages/server/src/setup/server-setup.ts index 4fa46c33..83a64520 100644 --- a/packages/server/src/setup/server-setup.ts +++ b/packages/server/src/setup/server-setup.ts @@ -360,7 +360,7 @@ const installUtilities = () => ` ;; ubuntu | debian | raspbian) DEBIAN_FRONTEND=noninteractive apt-get update -y >/dev/null - DEBIAN_FRONTEND=noninteractive apt-get install -y curl wget git jq openssl >/dev/null + DEBIAN_FRONTEND=noninteractive apt-get install -y unzip curl wget git jq openssl >/dev/null ;; centos | fedora | rhel | ol | rocky | almalinux | amzn) if [ "$OS_TYPE" = "amzn" ]; then From b93d26f9370ae3ba8a3ad1464d7b9ab61e490e72 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 1 Jan 2025 18:53:30 -0600 Subject: [PATCH 16/55] refactor: use shadcn ui classes --- apps/dokploy/components/auth/login-2fa.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/dokploy/components/auth/login-2fa.tsx b/apps/dokploy/components/auth/login-2fa.tsx index f3d001f8..836c3b46 100644 --- a/apps/dokploy/components/auth/login-2fa.tsx +++ b/apps/dokploy/components/auth/login-2fa.tsx @@ -105,12 +105,12 @@ export const Login2FA = ({ authId }: Props) => { pattern={REGEXP_ONLY_DIGITS} > - - - - - - + + + + + +
From eec0a55212ca873a0d746e0a95b351cd59b526c2 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 1 Jan 2025 18:57:23 -0600 Subject: [PATCH 17/55] Update apps/dokploy/templates/checkmate/docker-compose.yml --- apps/dokploy/templates/checkmate/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/templates/checkmate/docker-compose.yml b/apps/dokploy/templates/checkmate/docker-compose.yml index d5b67b0f..b01502b4 100644 --- a/apps/dokploy/templates/checkmate/docker-compose.yml +++ b/apps/dokploy/templates/checkmate/docker-compose.yml @@ -32,7 +32,7 @@ services: ports: - 6379 volumes: - - ./redis/data:/data + - ../files/redis/data:/data networks: - dokploy-network mongodb: From f2159a3439c78719db6c2365f41005730cf2f741 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 1 Jan 2025 18:57:27 -0600 Subject: [PATCH 18/55] Update apps/dokploy/templates/checkmate/docker-compose.yml --- apps/dokploy/templates/checkmate/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/templates/checkmate/docker-compose.yml b/apps/dokploy/templates/checkmate/docker-compose.yml index b01502b4..dc83a28f 100644 --- a/apps/dokploy/templates/checkmate/docker-compose.yml +++ b/apps/dokploy/templates/checkmate/docker-compose.yml @@ -39,7 +39,7 @@ services: image: bluewaveuptime/uptime_database_mongo:latest restart: always volumes: - - ./mongo/data:/data/db + - ../files/mongo/data:/data/db command: ["mongod", "--quiet"] ports: - 27017 From b17369264cfa2cef011a4173ee0dbd1297cfdd87 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 1 Jan 2025 19:02:24 -0600 Subject: [PATCH 19/55] refactor: remove min-h-screen --- .../dashboard/swarm/monitoring-card.tsx | 308 +++++++++--------- 1 file changed, 153 insertions(+), 155 deletions(-) diff --git a/apps/dokploy/components/dashboard/swarm/monitoring-card.tsx b/apps/dokploy/components/dashboard/swarm/monitoring-card.tsx index 16d2532c..0dd34852 100644 --- a/apps/dokploy/components/dashboard/swarm/monitoring-card.tsx +++ b/apps/dokploy/components/dashboard/swarm/monitoring-card.tsx @@ -2,176 +2,174 @@ import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, } from "@/components/ui/tooltip"; import { api } from "@/utils/api"; import { Activity, Loader2, Monitor, Settings, Server } from "lucide-react"; import { NodeCard } from "./details/details-card"; interface Props { - serverId?: string; + serverId?: string; } export default function SwarmMonitorCard({ serverId }: Props) { - const { data: nodes, isLoading } = api.swarm.getNodes.useQuery({ - serverId, - }); + const { data: nodes, isLoading } = api.swarm.getNodes.useQuery({ + serverId, + }); - if (isLoading) { - return ( -
-
-
- -
-
-
- ); - } + if (isLoading) { + return ( +
+
+
+ +
+
+
+ ); + } - if (!nodes) { - return ( -
-
-
- Failed to load data -
-
-
- ); - } + if (!nodes) { + return ( +
+
+
+ Failed to load data +
+
+
+ ); + } - const totalNodes = nodes.length; - const activeNodesCount = nodes.filter( - (node) => node.Status === "Ready" - ).length; - const managerNodesCount = nodes.filter( - (node) => - node.ManagerStatus === "Leader" || node.ManagerStatus === "Reachable" - ).length; - const activeNodes = nodes.filter((node) => node.Status === "Ready"); - const managerNodes = nodes.filter( - (node) => - node.ManagerStatus === "Leader" || node.ManagerStatus === "Reachable" - ); + const totalNodes = nodes.length; + const activeNodesCount = nodes.filter( + (node) => node.Status === "Ready", + ).length; + const managerNodesCount = nodes.filter( + (node) => + node.ManagerStatus === "Leader" || node.ManagerStatus === "Reachable", + ).length; + const activeNodes = nodes.filter((node) => node.Status === "Ready"); + const managerNodes = nodes.filter( + (node) => + node.ManagerStatus === "Leader" || node.ManagerStatus === "Reachable", + ); - return ( -
-
-
-
-

- Docker Swarm Overview -

-

- Monitor and manage your Docker Swarm cluster -

-
- {!serverId && ( - - )} -
+ return ( +
+
+
+
+

+ Docker Swarm Overview +

+

+ Monitor and manage your Docker Swarm cluster +

+
+ {!serverId && ( + + )} +
-
- - - Total Nodes -
- -
-
- -
{totalNodes}
-
-
+
+ + + Total Nodes +
+ +
+
+ +
{totalNodes}
+
+
- - -
- - Active Nodes - - Online + + +
+ + Active Nodes + + Online +
+
+ +
+
+ + + + +
+ {activeNodesCount} / {totalNodes} +
+
+ +
+ {activeNodes.map((node) => ( +
+ {node.Hostname} +
+ ))} +
+
+
+
+
+
-
-
- -
-
- - - - -
- {activeNodesCount} / {totalNodes} -
-
- -
- {activeNodes.map((node) => ( -
- {node.Hostname} -
- ))} -
-
-
-
-
-
+ + +
+ + Manager Nodes + + Online +
+
+ +
+
+ + + + +
+ {managerNodesCount} / {totalNodes} +
+
+ +
+ {managerNodes.map((node) => ( +
+ {node.Hostname} +
+ ))} +
+
+
+
+
+
+
- - -
- - Manager Nodes - - Online - -
-
- -
-
- - - - -
- {managerNodesCount} / {totalNodes} -
-
- -
- {managerNodes.map((node) => ( -
- {node.Hostname} -
- ))} -
-
-
-
-
-
-
- -
- {nodes.map((node) => ( - - ))} -
-
-
- ); +
+ {nodes.map((node) => ( + + ))} +
+
+
+ ); } From 9f24f24de342cc0b60ca18e75a5da813a317b13f Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 1 Jan 2025 19:05:06 -0600 Subject: [PATCH 20/55] refactor: improve requests --- .../dashboard/requests/show-requests.tsx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/dokploy/components/dashboard/requests/show-requests.tsx b/apps/dokploy/components/dashboard/requests/show-requests.tsx index f5588705..a12e250b 100644 --- a/apps/dokploy/components/dashboard/requests/show-requests.tsx +++ b/apps/dokploy/components/dashboard/requests/show-requests.tsx @@ -94,18 +94,18 @@ export const ShowRequests = () => {
- { - isActive ? ( - - ) : ( -
- You need to activate requests -
- ) - } + {isActive ? ( + + ) : ( +
+ + You need to activate requests + +
+ )}
- + {isActive && } ); }; From 3e8708d2b97eb215cd9273d6a154a84e211d0a4a Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 1 Jan 2025 19:29:33 -0600 Subject: [PATCH 21/55] refactor: add text for run command --- .../dashboard/application/advanced/general/add-command.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx b/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx index f9e70b42..4cd839a1 100644 --- a/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx @@ -81,7 +81,8 @@ export const AddCommand = ({ applicationId }: Props) => {
Run Command - Run a custom command in the container + Run a custom command in the container after the application + initialized
From d0fe63562067c33c0f0e0f4fc369f65e1130f4aa Mon Sep 17 00:00:00 2001 From: ink Date: Thu, 2 Jan 2025 19:43:20 +0800 Subject: [PATCH 22/55] Update settings.json --- .../public/locales/zh-Hans/settings.json | 56 ++++++++++++------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/apps/dokploy/public/locales/zh-Hans/settings.json b/apps/dokploy/public/locales/zh-Hans/settings.json index 1b703b30..c74fb21f 100644 --- a/apps/dokploy/public/locales/zh-Hans/settings.json +++ b/apps/dokploy/public/locales/zh-Hans/settings.json @@ -1,40 +1,58 @@ { "settings.common.save": "保存", - "settings.server.domain.title": "服务器域名", - "settings.server.domain.description": "添加一个域名到您的服务器。", + "settings.common.enterTerminal": "进入终端", + "settings.server.domain.title": "域名设置", + "settings.server.domain.description": "添加域名到服务器", "settings.server.domain.form.domain": "域名", "settings.server.domain.form.letsEncryptEmail": "Let's Encrypt 邮箱", "settings.server.domain.form.certificate.label": "证书", "settings.server.domain.form.certificate.placeholder": "选择一个证书", "settings.server.domain.form.certificateOptions.none": "无", - "settings.server.domain.form.certificateOptions.letsencrypt": "Let's Encrypt (默认)", - "settings.server.webServer.title": "Web 服务器", - "settings.server.webServer.description": "管理 Web 服务器。", + "settings.server.domain.form.certificateOptions.letsencrypt": "Let's Encrypt", + + "settings.server.webServer.title": "服务器设置", + "settings.server.webServer.description": "管理服务器", "settings.server.webServer.actions": "操作", "settings.server.webServer.reload": "重新加载", "settings.server.webServer.watchLogs": "查看日志", + "settings.server.webServer.updateServerIp": "更新服务器 IP", "settings.server.webServer.server.label": "服务器", "settings.server.webServer.traefik.label": "Traefik", "settings.server.webServer.traefik.modifyEnv": "修改环境变量", - "settings.server.webServer.storage.label": "磁盘空间", + "settings.server.webServer.traefik.managePorts": "端口转发", + "settings.server.webServer.traefik.managePortsDescription": "添加或删除 Traefik 的其他端口", + "settings.server.webServer.traefik.targetPort": "目标端口", + "settings.server.webServer.traefik.publishedPort": "对外端口", + "settings.server.webServer.traefik.addPort": "添加端口", + "settings.server.webServer.traefik.portsUpdated": "端口更新成功", + "settings.server.webServer.traefik.portsUpdateError": "端口更新失败", + "settings.server.webServer.traefik.publishMode": "端口映射", + "settings.server.webServer.storage.label": "存储空间", "settings.server.webServer.storage.cleanUnusedImages": "清理未使用的镜像", "settings.server.webServer.storage.cleanUnusedVolumes": "清理未使用的卷", - "settings.server.webServer.storage.cleanStoppedContainers": "清理停止的容器", - "settings.server.webServer.storage.cleanDockerBuilder": "清理 Docker Builder 和系统缓存", - "settings.server.webServer.storage.cleanMonitoring": "Clean Monitoring", - "settings.server.webServer.storage.cleanAll": "清理所有", - "settings.profile.title": "账户偏好", - "settings.profile.description": "更改您的个人资料详情。", - "settings.profile.email": "电子邮件", + "settings.server.webServer.storage.cleanStoppedContainers": "清理已停止的容器", + "settings.server.webServer.storage.cleanDockerBuilder": "清理 Docker Builder 与 系统缓存", + "settings.server.webServer.storage.cleanMonitoring": "清理监控数据", + "settings.server.webServer.storage.cleanAll": "清理所有内容", + + "settings.profile.title": "账户", + "settings.profile.description": "更改您的个人资料", + "settings.profile.email": "邮箱", "settings.profile.password": "密码", "settings.profile.avatar": "头像", + "settings.appearance.title": "外观", - "settings.appearance.description": "自定义仪表板主题。", + "settings.appearance.description": "自定义面板主题", "settings.appearance.theme": "主题", - "settings.appearance.themeDescription": "选择仪表板主题", - "settings.appearance.themes.light": "亮", - "settings.appearance.themes.dark": "暗", - "settings.appearance.themes.system": "系统", + "settings.appearance.themeDescription": "选择面板主题", + "settings.appearance.themes.light": "明亮", + "settings.appearance.themes.dark": "黑暗", + "settings.appearance.themes.system": "系统主题", "settings.appearance.language": "语言", - "settings.appearance.languageDescription": "选择仪表板语言" + "settings.appearance.languageDescription": "选择面板语言", + + "settings.terminal.connectionSettings": "终端设置", + "settings.terminal.ipAddress": "IP", + "settings.terminal.port": "端口", + "settings.terminal.username": "用户名" } From 84a88299ea0401a72bc94f4d226fd2efff85f8e3 Mon Sep 17 00:00:00 2001 From: Orkhan Karimov Date: Thu, 2 Jan 2025 16:27:57 +0400 Subject: [PATCH 23/55] feat(i18n): azerbaijani language --- apps/dokploy/lib/languages.ts | 43 ++++++++------- apps/dokploy/public/locales/az/common.json | 1 + apps/dokploy/public/locales/az/settings.json | 58 ++++++++++++++++++++ 3 files changed, 81 insertions(+), 21 deletions(-) create mode 100644 apps/dokploy/public/locales/az/common.json create mode 100644 apps/dokploy/public/locales/az/settings.json diff --git a/apps/dokploy/lib/languages.ts b/apps/dokploy/lib/languages.ts index 2530fe81..a47d7af7 100644 --- a/apps/dokploy/lib/languages.ts +++ b/apps/dokploy/lib/languages.ts @@ -1,21 +1,22 @@ -export const Languages = { - english: { code: "en", name: "English" }, - polish: { code: "pl", name: "Polski" }, - russian: { code: "ru", name: "Русский" }, - french: { code: "fr", name: "Français" }, - german: { code: "de", name: "Deutsch" }, - chineseTraditional: { code: "zh-Hant", name: "繁體中文" }, - chineseSimplified: { code: "zh-Hans", name: "简体中文" }, - turkish: { code: "tr", name: "Türkçe" }, - kazakh: { code: "kz", name: "Қазақ" }, - persian: { code: "fa", name: "فارسی" }, - korean: { code: "ko", name: "한국어" }, - portuguese: { code: "pt-br", name: "Português" }, - italian: { code: "it", name: "Italiano" }, - japanese: { code: "ja", name: "日本語" }, - spanish: { code: "es", name: "Español" }, - norwegian: { code: "no", name: "Norsk" }, -}; - -export type Language = keyof typeof Languages; -export type LanguageCode = (typeof Languages)[keyof typeof Languages]["code"]; +export const Languages = { + english: { code: "en", name: "English" }, + polish: { code: "pl", name: "Polski" }, + russian: { code: "ru", name: "Русский" }, + french: { code: "fr", name: "Français" }, + german: { code: "de", name: "Deutsch" }, + chineseTraditional: { code: "zh-Hant", name: "繁體中文" }, + chineseSimplified: { code: "zh-Hans", name: "简体中文" }, + turkish: { code: "tr", name: "Türkçe" }, + kazakh: { code: "kz", name: "Қазақ" }, + persian: { code: "fa", name: "فارسی" }, + korean: { code: "ko", name: "한국어" }, + portuguese: { code: "pt-br", name: "Português" }, + italian: { code: "it", name: "Italiano" }, + japanese: { code: "ja", name: "日本語" }, + spanish: { code: "es", name: "Español" }, + norwegian: { code: "no", name: "Norsk" }, + azerbaijani: { code: "az", name: "Azərbaycan" }, +}; + +export type Language = keyof typeof Languages; +export type LanguageCode = (typeof Languages)[keyof typeof Languages]["code"]; diff --git a/apps/dokploy/public/locales/az/common.json b/apps/dokploy/public/locales/az/common.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/apps/dokploy/public/locales/az/common.json @@ -0,0 +1 @@ +{} diff --git a/apps/dokploy/public/locales/az/settings.json b/apps/dokploy/public/locales/az/settings.json new file mode 100644 index 00000000..fb286bf0 --- /dev/null +++ b/apps/dokploy/public/locales/az/settings.json @@ -0,0 +1,58 @@ +{ + "settings.common.save": "Yadda saxla", + "settings.common.enterTerminal": "Terminala daxil ol", + "settings.server.domain.title": "Server Domeni", + "settings.server.domain.description": "Server tətbiqinizə domen əlavə edin.", + "settings.server.domain.form.domain": "Domen", + "settings.server.domain.form.letsEncryptEmail": "Let's Encrypt E-poçtu", + "settings.server.domain.form.certificate.label": "Sertifikat Təminatçısı", + "settings.server.domain.form.certificate.placeholder": "Sertifikat seçin", + "settings.server.domain.form.certificateOptions.none": "Heç biri", + "settings.server.domain.form.certificateOptions.letsencrypt": "Let's Encrypt", + + "settings.server.webServer.title": "Veb Server", + "settings.server.webServer.description": "Veb serveri yenidən yüklə və ya təmizlə.", + "settings.server.webServer.actions": "Əməliyyatlar", + "settings.server.webServer.reload": "Yenidən yüklə", + "settings.server.webServer.watchLogs": "Logları izlə", + "settings.server.webServer.updateServerIp": "Server IP-ni Yenilə", + "settings.server.webServer.server.label": "Server", + "settings.server.webServer.traefik.label": "Traefik", + "settings.server.webServer.traefik.modifyEnv": "Mühiti Dəyişdir", + "settings.server.webServer.traefik.managePorts": "Əlavə Port Təyinatları", + "settings.server.webServer.traefik.managePortsDescription": "Traefik üçün əlavə portlar əlavə edin və ya silin", + "settings.server.webServer.traefik.targetPort": "Hədəf Port", + "settings.server.webServer.traefik.publishedPort": "Dərc Edilmiş Port", + "settings.server.webServer.traefik.addPort": "Port Əlavə Et", + "settings.server.webServer.traefik.portsUpdated": "Portlar uğurla yeniləndi", + "settings.server.webServer.traefik.portsUpdateError": "Portların yenilənməsi uğursuz oldu", + "settings.server.webServer.traefik.publishMode": "Dərc Rejimi", + "settings.server.webServer.storage.label": "Yer", + "settings.server.webServer.storage.cleanUnusedImages": "İstifadə edilməyən şəkilləri təmizlə", + "settings.server.webServer.storage.cleanUnusedVolumes": "İstifadə edilməyən həcmləri təmizlə", + "settings.server.webServer.storage.cleanStoppedContainers": "Dayandırılmış konteynerləri təmizlə", + "settings.server.webServer.storage.cleanDockerBuilder": "Docker Builder və Sistemi təmizlə", + "settings.server.webServer.storage.cleanMonitoring": "Monitorinqi təmizlə", + "settings.server.webServer.storage.cleanAll": "Hamısını təmizlə", + + "settings.profile.title": "Hesab", + "settings.profile.description": "Profilinizin məlumatlarını buradan dəyişin.", + "settings.profile.email": "E-poçt", + "settings.profile.password": "Şifrə", + "settings.profile.avatar": "Avatar", + + "settings.appearance.title": "Görünüş", + "settings.appearance.description": "İdarəetmə panelinizin görünüşünü fərdiləşdirin.", + "settings.appearance.theme": "Mövzu", + "settings.appearance.themeDescription": "İdarəetmə paneliniz üçün mövzu seçin", + "settings.appearance.themes.light": "İşıqlı", + "settings.appearance.themes.dark": "Qaranlıq", + "settings.appearance.themes.system": "Sistem", + "settings.appearance.language": "Dil", + "settings.appearance.languageDescription": "İdarəetmə paneliniz üçün dil seçin", + + "settings.terminal.connectionSettings": "Bağlantı parametrləri", + "settings.terminal.ipAddress": "IP Ünvanı", + "settings.terminal.port": "Port", + "settings.terminal.username": "İstifadəçi adı" +} From 49a6b72c600a3daf2347833fcb2b708b7a1fa1cf Mon Sep 17 00:00:00 2001 From: vishalkadam47 Date: Thu, 2 Jan 2025 21:01:03 +0530 Subject: [PATCH 24/55] refactor: remove unnecessary error logging in GPU setup functions --- packages/server/src/utils/gpu-setup.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/server/src/utils/gpu-setup.ts b/packages/server/src/utils/gpu-setup.ts index 0b49dc6c..6a6611b4 100644 --- a/packages/server/src/utils/gpu-setup.ts +++ b/packages/server/src/utils/gpu-setup.ts @@ -35,7 +35,6 @@ export async function checkGPUStatus(serverId?: string): Promise { ...cudaInfo, }; } catch (error) { - console.error("Error in checkGPUStatus:", error); return { driverInstalled: false, driverVersion: undefined, @@ -317,7 +316,6 @@ const setupLocalServer = async (daemonConfig: any) => { try { await execAsync(setupCommands); } catch (error) { - console.error("Setup failed:", error); throw new Error( "Failed to configure GPU support. Please ensure you have sudo privileges and try again.", ); @@ -344,11 +342,10 @@ const verifySetup = async (nodeId: string, serverId?: string) => { "cat /etc/nvidia-container-runtime/config.toml", ].join(" && "); - const { stdout: diagnostics } = serverId - ? await execAsyncRemote(serverId, diagnosticCommands) - : await execAsync(diagnosticCommands); + await (serverId + ? execAsyncRemote(serverId, diagnosticCommands) + : execAsync(diagnosticCommands)); - console.error("Diagnostic Information:", diagnostics); throw new Error("GPU support not detected in swarm after setup"); } From bb5fd9895df0f5d0ac5a203c20db7a961624bd54 Mon Sep 17 00:00:00 2001 From: Mohab Gabber Date: Thu, 2 Jan 2025 21:28:52 +0200 Subject: [PATCH 25/55] fix: update MySQL image reference in docker-compose.yml --- apps/dokploy/templates/glpi/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/templates/glpi/docker-compose.yml b/apps/dokploy/templates/glpi/docker-compose.yml index 42c4cc36..f15cdafe 100644 --- a/apps/dokploy/templates/glpi/docker-compose.yml +++ b/apps/dokploy/templates/glpi/docker-compose.yml @@ -1,6 +1,6 @@ services: glpi-mysql: - image: elestio/mysql:9.1.0 + image: mysql:9.1.0 restart: always volumes: - glpi-mysql-data:/var/lib/mysql From c7e5eba08669f7e9a9a3869b3b78ad0ce0d238e0 Mon Sep 17 00:00:00 2001 From: Jose Manuel Gonzalez Date: Fri, 3 Jan 2025 10:51:42 +0100 Subject: [PATCH 26/55] fix: Update Vaultwarden version to 1.32.7 [CVE fix] --- apps/dokploy/templates/templates.ts | 2 +- apps/dokploy/templates/vaultwarden/docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index b0526f5f..6ddfb791 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -619,7 +619,7 @@ export const templates: TemplateData[] = [ { id: "vaultwarden", name: "Vaultwarden", - version: "1.32.3", + version: "1.32.7", description: "Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs", logo: "vaultwarden.svg", diff --git a/apps/dokploy/templates/vaultwarden/docker-compose.yml b/apps/dokploy/templates/vaultwarden/docker-compose.yml index 456f585b..19cd6f81 100644 --- a/apps/dokploy/templates/vaultwarden/docker-compose.yml +++ b/apps/dokploy/templates/vaultwarden/docker-compose.yml @@ -1,6 +1,6 @@ services: vaultwarden: - image: vaultwarden/server:1.32.3 + image: vaultwarden/server:1.32.7 restart: always environment: DOMAIN: ${DOMAIN} From 46a4e31e712515985d8232c019676d95b4d51c33 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Fri, 3 Jan 2025 16:19:48 -0600 Subject: [PATCH 27/55] chore: add new sponsors --- .github/sponsors/its.png | Bin 0 -> 21187 bytes .github/sponsors/light-node.webp | Bin 0 -> 7070 bytes README.md | 4 ++++ 3 files changed, 4 insertions(+) create mode 100644 .github/sponsors/its.png create mode 100644 .github/sponsors/light-node.webp diff --git a/.github/sponsors/its.png b/.github/sponsors/its.png new file mode 100644 index 0000000000000000000000000000000000000000..85e7ad71aafe39c32cd988e67afae9801f1b578f GIT binary patch literal 21187 zcmeEO({mN9O8|}unH@0nUY}?MpwrzW3+jjEBww;{(F3w+YZco)r^;~q-yz@-! z?S5v$H z2mlho0?KZg=bcb)N=K`_*gwBO-N)c`HwEOhF9ih?~)%b9a_ zAOcJRngiRBd%~dQm*#xe$&!v9J#s=hYert%UDbWM28qNQSf1o!Nn~>XHqg!WAXYBx z3+%i7pLNMab!09yk9uv+QTY%1Bj6IKh#qgQQX8D$JuthcOz^;8eFCxjt9508N02cO zh%svyxp*L%&%Rf(<{SJi8ZZpBrv%L$2OGlay#C-Hl5%}8pspM+ZpjHG67Bu^jw_js z4`)N)dVa)5JhHnk$R4rJcf<*XN{D#m7r9dtZF%i0JKza^J@!V}N{M+p)!(XsHF$9Q z-Yy<4mNo%kZ+PjX|`5HdbKW?6b~|Ks<@n z-@wcd@LYjC6EXludV9bBdTCU5{=@qRq+*=&>9R@L zoO}$tFx`XZDyNvkll*`gY3Q-KguhuD^)Oo3e`rlZ2D$Qksq=xJ8F38=Z!e-s=|vGF zHFERb=Q(MA}#9p;~YJT0isJ=*ZLT>Sfy?>}M|9TEW1|hV)@+7LU zSE!86FoKsD235N6V8JK-$ovB-8=RdM_F|lhSz`WGZsE5AdRds1tA)x=2a>s++$(ne z59{e?t0UOZn$8h|r*GBpKaV9$W>2wAeB8+H&G|WYh;;aYzcmDT$L#X2W@4(sXFbmu ztRX2w#~lWYI^nDA8do_6+eJ97C!#=j5SNqGG>;{lK(%6`%37Nln}P@k80z2G+f zBG>n-+KcEYlSh{dc8ZTCsbskb#q>xA5VU6q?&djr^z1pP7pVfMy5 zrhC_6bq-3*9CS4L)e$Mk#Vzv59+6ih^8Oy6v7Yg%p7B|V(V4J&@~6Z#^sMSNZ5VDW zfMN_Hqv>Kkof(e(hxb3N4kC+AVj3M3=W|-sspvLcD+`aBs1qo!L!Qm|j^ZnA4#iHK87|!u+MkwlN2yL;-!#a`7a2Ts%E11_ri_%tRJE#1`M? z;@GS=VO{*SZnQ$cE3>QI)sImVu$KsxU01U6ND=57pO%$xN}A>!&!|%$mQwsA z!~RUv=_`6?Z~dhKd4)%68FTQ+av(LA3=Ry!`3Z4s?d57=u)~8uZ$y78d3Sh@k}-4j_4##n$6@OmiKt(`FV!n~uc@?3 zeb{Oe3T*k0?GZrZ{sj$vC+6t@zk3%)a#IrL&`ve`-Y zICQBH69%)S9s(-3E|VD+wndO+xx6jVmcK9f-0q&uxGm#$+9r=<+&R|+?%fewie z{1_!ut&dA6e3D=#I0=c`BK^RIG$~#q|1&)Kk8Z>Iess2wEyo{~IUvro zVVJwYn|o(;>Xrr>^C!5-yshbVk2sog3{n8)zWsD5Z=m)O}Bl!i*4k3QakjpVtZnPOBla>L_T&-6y)`KC%B;v3u7^LEMH5V z?3EQ(P)3m9Ak8W`zs_GlZp^1#n3p}6LwY(eE4$B}HEs#6L_^|zKP1Rp>PN{3j}r{` z1sdTBb29Qwub3R_BYm(BbqmL{%jz=m{8&OH`Yzw=Chg1GK;uc?$Vz~=R`8YRZ>lQx z1E@MG#M?)69Tb?|29U3J^I`Gpp5hsW0hN+B2yBe8FSzof1 zKTltLpaN+rFPAk-<{K+S82(sr#qHiEzL$~ez=-bodLoOo^{PAe(SSi0|JZn2a2S+WJn4l&#*AMq$pGv zL{X8n^uO(H;lW!8^8$EbY-lD9V77(JnI+BVxN8*ACiNDVcgQ?&`DH+#^LfsG|H3+ zDiVT=yPo@~x=H&!ft8*Pu=wsyDw9z`tt0>tUNH_Z-ZEa7H&N&h537IIhLa`1WVztR zm?7lc{v@NcYmYg$%pOB*G~w)?!v@)PWHsPu#4wo5t0NMOeuoJbfa0iUp!|U&LDf?&6lrOEa|Hj5#c6!33_6%|UguKfRZXl5eg3!(& zg&pL~%ysBNO1Q`WYW{PEqSZ_S+{Q4x4`ufp$mm3ys3c+Lf;sq2E>uiz#(M%O+cssI z0wiB#p_i!xu9%3a^oMGeGVVG@@IBBNxd$RJnK@QkbKuFVVrW*WlO@9yG35!<#f}PL zF!{%$daLJIXoQMl7AL<-4favR{d(=PBh+ z63cHFOto{;Iw!%If%xJlVhChD8yCBO(THq}thctQs*;sd(R8Z7Pf|vL6odGQkdj7) z=;M99@ypZ!k-SOpSe#i{pt&10Yas{GGr(FySgx3wSkE=J31QORJK?PjqomA=L&tL! zG~p}b_*n4fpbIi}VC5V9@#`(FE>Q9iMQA0fX#D1~_+NNh`R6lJR-;2+_ znH*EeIs4xiEFto7)@%hsYq;$;=1Sto=e5*mlEz9)b;Fl^!b0d$?&%8qVdH?8lXfpq zO-0MixQnpk9L_=VTRbl`cxtBjM9@A@y$^#8i_Zl&qC>eW^!toqE%377Bx<{gH4ai& zyGUdXGGpF_vb&QRY(M?A`t=>mdt_O!6%jtoA#H-`2>KgYRPfu>On>uwLr!Cnra_a~7bN-cYUNg@JgP9tJB<+5Jt5*R)qV|?1#w~U z2H((2Wd@aJvsu12(v!|Q!aR$=KzQm%+n8~~yLfgn%I*`QkXpQS;>}riI$}#u)85?W zurlu$Wd@$(+ZJ!|YD?Zpu-TQt*06Z@&|S<4Ux2wkScAnbyGNDpSo(Y1##*0Bv~sp+ zYq-G&vkR(ooC5{1F zCP)Fco>C+KH-FM+38Ofknbg>miz|;ICpT&v7tT=}fL!&wcIRrt;338u+>wp*xS{!l zk#kWoK;fO04gkcv*4v)ASlM?BGA}ib>tfl=12RTy?`~ zr5E~C7hb-DBg3%d_`a!9f*LhuLDR&+8OPhzX_7#I`T^+^?hYKf6d5m`G9SNkNfpQc zQejJJzL-k|&ifaP;x{6A{fCX;qw#J-`QuAQByYw-9=&j=Pbb-Z9sSq6Ju0}VeIE#~ z@6kx2p}WiGpSZ(sFDtT#oaSi2vid^43(#&RnSg@V42ZUKyZAh*(9s*Azp`FD{N& zl%ojrNQs*BHlPBOeUr2c743{Ms3&o(YGY1igk4oy85vV-q8f;joLF(P*RxD{sabt|S4m=^b6%(u@MC8=R^Ol)@z6sQ{_4}w zP&MgzUN@33lzJ;g7zqUP0U*R~dYeDSRWP!8`I;E*^NPE~>K4ApM}NVAL#s%nR2X?B z5s9m|zRFuS_X}`_!Su;a>vifgvV-Rem-~7tCeHO~6JvDM3OsLk%$7gwbg%ZfJ3S;n z!`>4dRTzsM*)qEiX%TEO|GbMF?m(rDB!L6F<%!Bfr?|Zp((zrgNw6*FJYW3LEynxg zdpMr56-J$~oX3$7h!f?Jgh@5BDVz&byDrThmAGiV9Ghx@3JK23AUaim^8X$0RguS- zD@dd`^2{{z_F@4M@0rF=3a2pMm$Z8z`CEyyOP89C3o7J?07nUd-(!K~xY@=WIKZES zoe3w=F7!#KTJHd7_U=q%x=QP@53-wF^=q#JFMc5D!uu{CL8mU&G!mlhQ}5Y>R3mlN z#D!@{#vcbu2Pg66)hP9S&RO3#dWY{$<++CaFHbY@D~!Gs>FX@;LBm_9U_rr-6w&Xm zP%+bpYmT*r)O?+1d17U~g=iT~q2Q}n!6*|zADnAUs|pwIJ|Q9yLoxA^42yz(?fE+c z3AQS$e9BhckifeAF;^yy!i9Ad0$9}Wurgd?E&jOn2smD?p#=TQ*G+d^w%F~%mo^ZV zGLHB`GdB`iaTm@kgY}#)Ur#Qq7wfUl zWGcMo^V&yR?u%mN1!F^ijo}}m-2B4)SI5fspGp`iB{=G&@o|*bu3EzV8`c_c^pGqZO;pSK=-wZUs?*>J>~0@2;#XokJPG=5Pk|R(`zgkUzR75h z_w4ycO9c?iDBR6D&l_!TKApWsb@W@B?Qq)F44k*STKtpM@<|`)(PF=B?&wqAlBxQs z6Z4YFV#k`+Fd z3(F5k1W(myl19g}n(Q!#@c`Nn#GD7k9mlieDs5`v0BR5YtgU%V9e3*6i#cLf(TpEA zs&dMQeTDHn35>GgQ{*Z~2^QC*Gq1%s92!fpwh_V=ORzb*zq-bnK6E>hzYf>^hI!Yu zD#g;UupW)bWmn`))^BEKyUVI31cPb?aaGF@tK@H~F#@Q9YDMYF|_xjyNQi=jhm;UlK z3*2vT4*Ye_qh5yg>E0w3ZD#3OqMka(Mq1~io}G{!TA?HxJD8SYekRAoUNz}n!I`yX zgH@}-;6al6;sxo;)}8jXxM--c{fUR0!PsRFT_<2u)^g{io)oW&+hPo^J=S81?*-$^CzDf8olv%=*32^j@D`C%+z zAkBU^I|eB!ghFtQdE{I{8=!+J1#^2 zc5)`@-Pv@7xuQR=4~>%xYALw8cJ}IKQ6*hdEfBI0X4Q_n?S!LQ9b3H;Lzzm5s^}e7 z#4Jcq9s;+!RuhFxHCSi@uCG&{>9>+*lItP*X>)X-(#VNjpA!!>hkQ!WCO13f;S7T0 zz4ULjj%Mon(M2LGkR`aBFO$`VGxdzZ$iJG?Zp6eOuwJVYu@_)AIm(@U6nv0h=wRf- z==Uddye%3pCU>5YQ(BUm391Zm-Z4!mhLfAaz-W19{bcg6dq8so;CxKy(a)6t@ZvWa-Z z_FPKP68p!oI-X7-W@BMW{R1@Z0{CG|J<$NaTv4aHbMT(`)%2$WVM#oEyuZC#P!~9~ zW_~MK>qe?KA?Vuu_M%5@iO0Nb@r4k@nRI5n`x~NNqDinkj?*r`? zmI(W=k?3%r(V}CY)LNnpyF6uOS-C>@c;(^h$=}Z)Hv;zLLKb=VBx33wJ=-RZbCU@p zs_AcsgOj7O8fJMv@`CT)}?<<7?y1VfBUem)B~MJzqsv$#S*41~fM@;EiDQ z_fLxtPs@)_8gHJs9#GOBVEB7z9I~<;zW2-rmWdKGd2`-e651wUyr9OI^Tm zwJSi=sV5}7_eY7CDE>@_N3jrnsP^))u!PvrRPnz>^}F?4=NuQ~Rbe~rTIziPNQ zy$y`eZ$~L@dP?9gAfWqz3=Afhc$F78jj}bG_lt9^!c}e6pF`Ez1w2BV1%`-fDI}qR z)8#+~J}xenaxNZ4Pm`VvMw62twJz|QT#&T*U}gyEWsAQ@=Ea%aC5oTYZGg~B$<8Z^Rb%0)76-j+W2h_O=gQ~ zy)nKw=UZJ7Ho;C)+XgCjt!$;zgY;@pYNgK@R02VY>P4t36~c?T_aS-8rXzQ8<3h@c z{x}@9eFRtj=3ZuY2k;;>KUL?PgUKtPRV4E;U*YgF}mY7wgk7ln*rh4`3~B##Mfj?q0}<>5D=A0d0(H1MVQfJLfw@*=CP% z$&HODG2A6qYLnji&3SgudFI4B^3#o}bY;?+$#&=DLPRKhjGE2jTRBemSsK(e|sG_n0=5pqr;|Y7K_1+5936o2nv|k@d z{mXt|bs^@O>H&nX9!4cE%QoiAWGj$OQ^3(}Tn+F%iq1-Hn_cOxM6^wengWyc$ne8{1aj%i8FXpqINrkLw-`xg~|Ryo2e6E+J(%0_q(!$4~sXbi}x<*I&4}f=YxjCfxbi@U%3#0 zP5~;V^!Z@>4yGzrX%0!%Hj1cH6BAM;n&3k`kyJ409waQdtdi~+6z;jcGZr#i1@x&7?Ci11ifmo zYQ^*7SS*zYbhzMO<#Iu4dZ@DH93vUn!{Di+6NtBMpsb8nZ79KvmR{!|Y>-myn z13Yh<2c2fepBe7p?^aylNebBs=3rS0$*Jl=n(^>dz$bW?96odZNSStj;##$?@QF7n zgKA|EnyJaK!MS=QhG8+LV@X)+{757la{=vyS%q4n@eSL2-(+!nSHI4hB@c8bA0A=} znus|xI}gbIkPwKR7li-1ieB-)AUI{qe zn>4+H6oQQfkJE;ehqCK3IT1N;oY$4UK$rjJ0xXaRkn_U$?keqs`v&nog!y{u=oR(W zNRQLcf+tbD7!&Bwfhto4sYu4D|0GLR645Db56hG@W*s-iQ;}J_F{G$QqZ!6q1#1<0ZUhmRaheTWorK_QlB3s~Dzda=~%tRsek4=(yF)4c#eGVxCrFj#iq* ztD1w`L~MS&XX_x9kpGqiB()CHB{K~pqRtNt6H)X0MH1_bAcftN{CHJ>NmHQ!WyG#yT&d2Kp)_b>LhMX6j`$m6c?-%sXF9xT< zH~(ob^dGv&>L&11@=(d;0aD6@Bd1xa9~ga9l2<7T!8L$;AA%mHBqDyg&mvi>%OGy( z1@P$i9q?2)?Gl7INfD+Z`BP1=Rw7|eTo8-IUe@gx*ec}^)$*Vu3zIT%6u(Li$F=rC zQRQ+ZIwi;y0LV5t#jFDydL(z+6UcAF?o3DigOr*bEHk0Irq376tdg=nV5+fyN}miwlsh=mV&TA z?c(t1JQR2$BUescFJ`LaI(qQw8br@`rO#gl8k9|$!pG)_XkLVi*xY;@@Zztgmvwf0 z)7qcouHbT=^j`0}0Vf!*D`I&u-UGTfgua7N3$Q-tfiq%2828=&+`oN2u!iz^WG%w@ zij}aGi`N2gB?dZ@0!f0(v~V?XFoW`YxUhc^NQu%&qzRA43cs^n$q>OagvGs;Z+-PtR#D$0^H$+2UdhbQy=!gJ64_+V}T-|h$$Q(V4xwMWTKHoB~61Bz9{dYQJ|?) za8Ivr&H>KWLoG>MpiW3J3zE%WT zXPM}g=ykB{b!45gTSm(^Tcu|KtP)$Fhw}q13$1e&GM`iSpUHR8u2eJCo0_9B%(Zch z^+og}M>K~JBc2c=#0nSLhnyVrU?1LyH|wdv*QC0lzv(;MZ}~@E-yI@~{b{b>=1m(U z$0sKd%DxMW8q<>u-;*tObBj;gE==xMmu<9Pus=USyLWj$!=GNLfk^K6oe^r+1y?t} ze7MX8*FWptK*weLAx?7*obAGx3Z*CM)#NO{#9uA6FiWdZ=fN*jn3Bni>v!L8@ESXyA~`q6)EGTs5@Md2sw&DSo<*! zMhfc_M02IQy!x$|w`15}?d)deWjE(yVMNoYjjf!2fJOa2cFj z*J^AZaGaKjoO9wO=Ng(+u(9cZ6Gl1aB=X|U41PU1`(k35x*BZkDZQ)2Bg13ZbR>E@ z6{9|dBq4`X$m0B7UAfAvF)6cTKX-qweB3x3KoI$Iss7L&76i}(8%X0Rh+ISC zQHEo1no!F5spDQq%`jHWQvUr89!0^gqZ{3<`X?@8ts=mCFQEOn@Co#d9VV{)pZ-q2 zOI=@k3fP|COVm90YqO^;Z$Uw(p7MXKTEeWU6FeWR`^R+Rw(NFpi)|tJ+~Zq7@Vx%B zhpW;S>R5gtxz|B%|TYdNh z+QtjV`RqMFY7-jF~5~%!PlZar-0)GnV1kii?=rEmv|xt2=wqHwKYlScP7tav;yfnhyF5$^h z4+k+1^Za>M9-_zN-Zm5v`g1X(x7&mHIL{aS!@+~+-qiwv_g!@Rmd_p-1x?2cj#(ZU zvDiB}rnmo?2d@i)%uiYg8e{5);N~M}{2cNXGsF2)Wo;P!)?2DHb79s6Zu~1W5Hj-u9_gmDBQZ zG@Xw;+R27y?7+}_Ny8}nY)bI>s^KOD0Xca1nwH6*D!~% zz2+Xy(TTZMcT*xKBUrsCt-+>gB2`m^06Ges-dq+uF^Y_(XKQ%>&V%WIE)!gHpf1;l z4O@tN9aj^+lvcuyS%e+@ZNwnCJS^`~cT`Q0-*)sq-VFL#zezt1s!wn6*BMgU*7SUi z*@59PI^Qqk6Z?6*8{+deswV`QZV8T$+{v;|s`H@2+fhWkf+)Vgk2I}>} z0}4JN2;g8A$MYcJpbI$IyWKWZl* z+A*GmYprJC0=dtm*{s)|uLRGHgo^JuYlqaJ)D%tkPp~p5PWMuZj4(V^#bnt7KR=^D zoN-S>Imfs3aG35@gNu15yc!vYnCzam{Iu?k3u!p*{D+e)yu_T(Xi^y0zWLfvrF!`I z8h9jDD&K>_L}}wr?AG=q_|-F0qw_pt`*J2wV|_hY|C&#SB>v)m&^f;C-P8BN#A>!` zNtfq)P5+7Xx%$=1_rmu~-VOD+{{?vU`1zx`JPlGiTz(~NdDpybJq`Q4={$5_E&6%t9&CO= z0l{haHtcjIX+K7 zfN1BwbKi(XH{6l(illEd$%uy$l?wkyfW)Kj?%(luRMIMS` zbTq8$_(9D+)F%+pj%Fx^-I>p*YD7yuSMQc_a1kH)rvOdQ;`gk!<`Xvvg}m>rkadaR zrRU(+$a>bWo!iv){X2RDT*zwF*Zd#^DhjRebRq^pg>DtIl+ zLQsc(CB@z968Txi5R|vIWhd#Kg9eFpC2HmFV_1Siyyl{+=*4l?@?YfC+)k@O?3V@J zHh#92zpU1?7s)71g{^k*FRS|7-8*lHR<11fM6x?5HDwxoBLNRS^6ybPQfWCe3GkCE z>Sx@mNZit3TyhbYw3Mq}1hLFdE=C=Q4hqAJFYT7XA+T zdN&!GuZ(}fpsJD$$u8HqV0Sja1KXpre~TXe?3}*)^#ZGV-+6@OGwyrU{%#DsO>rCd z9oG8f$~mBaq4SL+cH`AkYV$=1Ch9uPWg_j4ynP>`m^9^_)y1S!{VRo@2TQ7^{o$jzQ5)kmpG6f$4VZ<*>M=jGYHK1N*62q|<4kojwq-3T( zdQQ$S@9^PWw$fSFl)nI}V39>pMMzUL#lF^NSCItc&j9Dxo`hzu(}-Y}Yj&1(xwf+e z4nQdEdP&t?k=merTU}L^g@ms+IbUL|Z_4((*ICu4`yD3YCHjqFWs{!w0-f3HINHz;e$6&t zcZ&c($uAH=(>E2+C>1g=-)DM+_1{`;X`(7D7{0(Xr@c|Pyqxv2*Z9;fQYs!M)f}J7 zRaF;y6J=)1Gx>xe9Hfb|7{26(^T83wCkLb#`!}-C3rtxaEe266JdP^;8EPnmoGoht zNubE_3tWy;HyJHl;bl0Z9}ujS@t=UI0-Fa#b5#X+XDv6AA`ED!k8V)=vN zn68VjH5mR@*j%kzv_mrOA(i$`9X^I@kw3)rY8bI4up^7l2NqyYXDv|50o>L|sP?;U zF#IjD@TJ+FRLkdarQb}odL{S?L(wJLweqIS(;O89N8)e7GC0SQ2ho0%4Dff;gmmZ8Pg-KJ z@9=XLS8%sss>k=n7V%XXbIoqG16K<^T?bLI(x@L)Ra;VX+Gi3E9DP+07jy zzd_58BnGuHi0<$~-NAjn@qNBYbl&k>@5q~5s5}ghEk)99<=+XXXqtp2_dW^;$OPK?$fNuI z2CMxZgV^X_&4g-C-H!L4A$tJkJ(g?AjaEsEmm=jH-+XUCt0jF~bwc6V2--g1z4L@Q z==JTwr{`h-x8c+C!qa!lW!8ZS;pr!X%-3VzgXo3J!_8$$#AF1jbXOUqO?h@wIHQtt zSJ|sOKqQug& zc8;KcQY1YChtn6-yAEj{$CxQJSwPmZ4noDq#OoO++mnLmG4n)hNgAOXbHMB_-`S-1 zz}Ni6JC2fGSf(ywls9-1Y@;@7mtY+#!c9=-uQ=t(E2yVCIi{K?J}*!|Qpv@A$!Vv$ za14JDNztzTY^nz?le6r-i=n&CkPtCh#HgP*I4U_8pM5KRqiT@fZANxATrd8~l>+ZN zNFmHaQZ_%i=;)M!Lt||BHx^qdoGrDV?rQeWJcB#U`%t=+6`i)afnwhjc#We3#7(tT zb5R#q%vhsaS%w=|>}mL3Ac#<9H9w%n%rKy+;ov;>=HAR&th>l@29`7qOhjzzt0>p! zge}UIB?-ae5vVgBSx>hTDG@D%2rUC3Q7l~+xAu)uiypOXp0bRIu3O%2lIy3aHulAy z-sauKzb$l~K?4fNxk2z;V%)d5UZZ7qhz0yJ{;Q1pQgn-~Ru5+MLVO}7D_5sTqCk@{ z)~d2NdU0{=^l6@n_`UsATKN0r3I6Ou1s;~5R9Xfu5$nsC-U3m-4J&SjK%wY>G{SRd zlt~29t&FBqd6+V$L2xOLAcQgSd{qA8ehRUAdY+un;NidWTeN%ALN(gOyxhmWJY6$F zu}MmiC6Wcf7OOE!*t6R|%iu<8nNEVyZ2JM;+w!ga+W}H$&!K4J^45S980XcfVq; ze=O5*SGCdhSDQim2@>N0S(&Qw^YdHs9;T$@DjK6FO9)XV2EZoON>Ww^8_6j|eRGOX z!ZF4RCATbY_)aHERqm~tX!&57N#l6Oq+|h?NF@BV>L*{`pve0ql8K70IY=}L;HqXq zl7k>cr+yAHc4eB%rH5F@V0TSjFF4)Y*5cXWTKTYJfoA;tbixCdKw{6PA*LOtp2*1) z{?ug_5HHt?)>V%$=>p$mLcn70vnfs>b7WUL&Bh-xoAl@e$T1{xnX{AtT5*Qg63X%z zf#_WPL%J1uQol<@_R=sELj%!eAX1d13NwJ`(IxpI|FMckU;Po?-@;(|wv$Bo1Lg@pJn6r@hbjZL`%Fc!xb zZy6|{lebFZ-$pFv*5xK%HI)PBSVNHP2N%Z)v4kjN`O&I#amrfXP-XlG^y*2WSL;-# z-z8;HsDdcx;Uw<~Nz45dMfkt#OK}YC+*|q?$ioUSSQY^YO&@1j;$Ke%p z2fA%GBiRljOFbjYfJf~2r&BP;#!pZ9uHT|tc%54|fmb%-v5%WoP@NR>`ziYOtHuU} zxXC1?+`CQP^qdPD%z{xhLH8Kwqy^Bi%3JQHjf4~m)3T)xG7N76hP*dFsDJJaXmHq* znPdiGSQ-y%rq$A%XPGoc>clzU{WEa2R;W?S>6IW4TR*HNyM-hMfI8guvOJnnS)>?^ zuDJg=@|)|P7<0GmEII0g2NFxUcWa)%jgxlh(%rb5m3{U5XuJrpiu$xl%NGTIBI-Q^ zY$ZtEV~sA*NQex~67#j@OI&C{WZ_4i;#6z*#i=?Pvvx6!{!zgg9oAHU3md0JD1ST| z9~x?xtl&^#5)DdJAT(AP!BkT=Z;K0HbPVBuAw706o2ceq|7e@VQLfh8m*{}o-|$NE z_2(=VM^P_?rI>rhqVk4Q&eX>6j4_$jQPJ}^h-kH*K}>)--%m`is0!lJE#+_%E8iei z>NHBRun#tnXfu#Vho$5z7ojvGt+ z0D2O+oc@z(6PYaz;<|@(`Eg{+KCxw^j_gkx$}kzzb7;$|VA-p>*GJp-lJRiIj(y~7 zc@z4ttEF22VTuT}2{*f6ITtq`pgf5pu}eNYl$?a~<2P&$Xp(LmBSF#irC&%&?XTPI zcZa%ZFsarj`a@uIs<)iHwn;3WEMVocLg4=U^O2w~8^JVgb+Wf4K_3sVOoz(%zw8oa z)TdpJHCoQLEP7w1!=E}aowK1Iy#^Fw%!J*1s7U{u0wy?p&XGjtb*m298P07@&Jma& z+j>{#kctSI4VBA^d1H$}a6#X%SFXjEZlZlpa8*Ymcam_rK{3eXMk(YO9rLgU0*i`M z&>wClFG|FMN%h0JX_o*sAXi863t4J?< zP<-g+Q)Ba{vfeZ}rLp2#hWS*2e%j@TEbF9Eltp1}ZhAWbd+4S&e-ly|rxpqE)fKN2 zTJUJyo*93s^-1x4c7+fF((-jEIMW=-FW+P{-bd$7mLvR@*kr|jE%%d$6JSF`2*Eg2 zZ=LJ$GUQM4znRl=rNyAVb=RXj`xMFa#I(QCYELEVOO%fkcshJ>1@r8CEXlkC?yZ%T4mgk@sghNKB^%^R$8&fqW3cZc)&Z`t2M3 z{X{T6b~bw_v&u5l+C10VJlp5znd6>;ztlzWuu&8?yQPQFti%I^$FAO2VX3W*;s0i6sPoQw0{vW`>!xT%2ouQZsBoUF{(jOwKdMYQWbeE|@?e0T8K-5mST zr1|Su&-Cy<^6EOhYCrl0>*ZU~G1@~#sIcX9K0FGNdhBs6EI)HvWY7;nq;j~|o7?&E zvotZ1sJ1d{PC3M!-R*LJ9yIuk-P-9yV=z z8)(y1eh#`lnPriRA5i(O!heobr+wh@^9|t074M7JJ1lCvHA=kPMuL?ufT}piCgowK zk4{QbS!6EET=Nfsz&KZ&xR-CXo)%gaDgSYO5XVekKVMO+9$!;Rh%1>KQ6s%dQ7OY6 z%5#Ru)ZgFO86xd5&LBL!4PUp{TIhB07e2drlEd8iX*WCVO#Jis=y~hfhl;k?XMuj+&^DkRh_peX{4L zQnx%D@_SY1UMdnYAJXQ>K~lP_@VRuR)|?;CMyp(wa~aXOL!B-C{?N51V)mN?BYrKX zaYwI<`-LBY53LCly;Bc&)arW+i|OlAR^c@r@4MB6FlznJBLiY*4#o0vd1={Z?gzz9 zac?G{zsXx*WC5_uqiv;0B(oPi%gc+K7@s57&9pD8f?GM$M<3l>E3UwUUzypY1JZf7 zIA+!rm?6}Qc7W!zM>w%tDY)l60_Oa(dU&>(pFYs@@)u(B8V|D`Zt}`GI?faH%@~s@w3TWjRcSi9@=@upYQ9*%HLmEkQPk(yc&*{1vieTn z%YV>Fgxycq7K*<~!{BoLpKi|c5emlv<0mA^_!5{+&)y+vkmM(6Ixma-k$ zdql>ivvOy|8D)3Yndgk`c`1AT`a6EFpSRER>iIm6xjm@k5SNgf4nS*Imgo25xpK1x z`|%+Q#pPGHD|;x>%m19blhEFfn=$EJ?9remPCu?=-5)2xQPovZcrS+(<>6~5LQYzy z{L~;i_$7Bqq=LW$`_>4_@NAY6W)&(iYON+v3ATSH5Yj?sK{Bq<=i#5JyvxDie2V{3 za4xj_pF6{I%os`Cs`DAPlTdorb#0afU*d)jBBPx}a6wDZ3n`qN?>p7&NyQWs+gE9+ zYB-?6GjEFO7dCfc6Pnzf#mZv>pia#1N$X}YK)Sa)5D>@s3;YZ00PE)D)yX0=;$M`0 z+8z%M1nZ8sx;<&Md5zQhuQa*s<;W(Duy%CUs;`0kzlJ8lBQh+(HT)@IPF3#DVW#c{ z-xB}g*J-Y_GV0CqhE*Oz7B#;j&S?Nr*Qm@m6aRV09zG4A*Y+=qH-7erO5U_hU{ zSiJb*V1(7`uT0_s&=7Dflr%b1D_(Yk^#{0vq|wWu5ck|PyhqThI;7ya_~&W@SK5{> zRIgSwj8j!!X64`SG$Do6+8DX@YJqN}6U_b}CX_u%836OgzoAEI0_dYx$8*DH=PfEU^yfHjcD_jf# zA?%kLw0ZKd&-7=40z!Ze~kam%Nt=dR` z491_!lkA~5Hyv6=C!>a&`J9-T)VgQgJvEia;y=Ur=q|MeTkerrMF+J(i+ULQV8!2s z0+He%ZK&)kRtu<@@}_QFX_!*_Sy-cJ&dqnlFscCbfn(59 zr#)HXUmUWZ_#wwZyJ@YGf~~%fjrGZ}HDlPR*F^LBs1I-ai=DwU*ubt+?4k&>0hg4Q zAU;jMBcL(4o$}{Y?C~HfmCL9Vt{itzO8O97#ChU^-gDffk|W9ib#Zba;T-ONKjUnb4 za%{q2=0(KUzl5&*+@3Ash0WfCCW2H@J;OKW^kJ}f1O(K3B6YL&nG;&bH=(FC@aph45cUJD~_k)}91ALk{ql#Oa z&xS7LL_R*7ZlXFaay%=2Uj%$ni7P&u|^0zS9SI2^*?$no|WvI-N5= zdm0?fz65tSkTu}d?MJzN&{Df;^i3-$azTsg_&?voqLR}U2eO}?4fS?>eJu6U7%p@l zyuOu}ca>H1+65c;Z$5svoYNZeOgWh0oPDT?LMr2`q=?p6(Pe1?(ojtEWuj71l9F1187kz_FdE;>yd!SNDpC~hkn;D5 z?o=h3yWvw)HITj5t~{%l6 z-{^Rc#h#>Gful>v$f^w-+36%TqA9VPDA~d`$xQ{2_TQ1zKz;pro?tt|TBJiT*QVf@ zdiuzSaW1{s&Hdt^!8PckP&!VAe^_8e!q>OZr4NVtaXNPJFLyvniWGB28)0wNqd4#U zW{LhxzxW<`>rwNtHZrQ+yP5ZS#X~v50ISR4;b@G^s3&@b>29fD$ z(^M&-P(*h%{gsxMpl%8~?UN8kxyQdt#LpZm9$zpnl?eh)>lLLAb)vO;TAHbC(qcz4N7<;h<$jRcKv(jg8=l?92x;)F18P z0;|IMG;(-2@o1k0oK27P?ZJ(yU71C9eKG#+>DoO#E2m}WQeCf@oa%xc8!zk%n-3km z)4i$S><}d=$_!=sBGEKilv?vP-%=`Vi-3Djw7t&>Y;prHp2rV|Yxj%PMy^M-1YSq_ zAM_Ir1fU5#eI;J*su$ivA3!mp*aA6Iam>qGG_;){CCSmy)o)F^I)$Qy5Ej3M)dzqE z2RI|c?o4%*O>)I~i0dW>i9e8h!^cg^n$j)XZc35oFQZV1=Dr z=K(N0Uop)4>Ew*fD3}L&XV+@H% zj-NkUhw*H?C_OLp+@j#Y7llv*pg)a>nTMz8)l`51rqti}u@@K)33OeX{!2{JW8hMS zudiqKCg?>w_uCP3EX9HM@~hHvWL7g~y4>5Q@|?X@6d2@h%VP6={aC_Hf&WLb-_r-?G@aa$gYT`Jls%a_4V{I)hIHMLS;I=7y6 zH$S1#GwU(T)5P&RA^ISQTr<*C@LlN5LspNZe1%+$_FE6DzK#!j+e#^(s#q-1)7wC8c1U22c|GxHh00ahBIsb-Pd^Z}PQ-vOPjIPKWkeKB1 zBKHbga4XW1&AjB}#xd6HNu^xL`8)U2Lne!qXrMkfzpo8-y;f&pXknR)Y1=(UrscF< z7V`-zm>vl?2hyZKQ9{I`(z4yDK0|%K+-~SQ{@4b^Ka5=D?d=_+ zTt*;VmW60~y6N<5Q|D_f38s>eRnCpl}ixj;HCtRnNbcDp`T4J>l_ zWjg4sPXY^%mxKAxuu=M`llNP%$^(P72&nzqNr5u8-u@*2D3rg1f%SjU^TnzQYQk1uP3&bmhGSMn#|EpJHHb5kvl=eBdyQkp6S$ojPjWfgDlbh1=x zCbfUV+}&G2`kr&Z49Lvs)k9}JtZbbkqr_(7Wl^C-OxeRB&4!bu0k2BZ8Dczek9el_ zw;OU)Zg`1u&{e(IOm>wI%?tZuW^{Xe^=2c(iMsQHzY&C2KGRFPkwYTR-ag+C?pvYE zWW9pTy-HD@wm3_1&vNQZb${b8Xvptt2bH-?+nH+*+{?$jW@m4J9OSa&`Sn}Ko#!9p zf7pnGam(wqgcKg9*_5|9A^K6@zHXw%a~d-C2cqna(=Tg)w}6vv7>l3WUd^80Wy!$C z=nL8+9Nj6eur-$^OVbQ%AyCZTtnR(urx_i$<4@S=NVIC6yTO;qPvet7*{Vy&#{!-` z=E~o{&F4Xz^C=k$P_ksEe8C7kv8k)-YN#&uf=0u zM~1mgOsIO#Tr^3|5ATQRRTD2A4H_CLtHo$KUiNeJBh!dO*`0L@Orn_`R?k295J?;z zzy3oUDqqS0+gv3>x;b{~uP+8*=E*yO=R|zP54IB#`;FY$K+59dzPM>;#IcjMe0Nlx z)GS>4JvIWnYgI05P{0;9V}3u!L@`ay6|&#W$^xM<=Xx;eUM+UH)7n)JZ4hqI(4IN^ z{+o~I5-Z(wDaxoE9wvniR4AzCEPUzu&GYg_e3;AOUq}w&5w=l|UJ6%&2n^ob@918^ zBeWiFOSN3d{6q!}a~CCU2TgR{k@x{UQctb4eG|O9^6QUVkJvh$ltEUV_L3x3jT|SL ztLPM4%r4F=hb^}VE6m%TyGPc~$sy&<29bf;bC1tgXYEe|^0{wFKJRpa+$(H)J(9Wx zvQ6Gw&9{`aU$dUo;0j~Ai*T$w)r8Tz&YxuB5yE&?;GvaL6aa83Lj@?k58$Dv0KB>Z u(0Kw-W4{I%WdbBe0m2{upGwAuviGg7s|ioE1pa%a1n6oSK1FLdzWpEj{UlBR literal 0 HcmV?d00001 diff --git a/.github/sponsors/light-node.webp b/.github/sponsors/light-node.webp new file mode 100644 index 0000000000000000000000000000000000000000..56729452ca95fd411fdbf22d535fc3601a769c35 GIT binary patch literal 7070 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 Mandarin + + Lightnode +
### Premium Supporters 🥇 @@ -89,6 +92,7 @@ For detailed documentation, visit [docs.dokploy.com](https://docs.dokploy.com). Lightspeed.run Cloudblast.io Startupfame +Itsdb-center ### Community Backers 🤝 From 8314c1a0a55001bc49856b197cc83f6290e559a4 Mon Sep 17 00:00:00 2001 From: Orkhan Karimov <136202877+kerimovok@users.noreply.github.com> Date: Mon, 6 Jan 2025 00:16:09 +0400 Subject: [PATCH 28/55] fix(indention): tab -> 4 spaces --- apps/dokploy/lib/languages.ts | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/apps/dokploy/lib/languages.ts b/apps/dokploy/lib/languages.ts index a47d7af7..74113cb2 100644 --- a/apps/dokploy/lib/languages.ts +++ b/apps/dokploy/lib/languages.ts @@ -1,21 +1,21 @@ export const Languages = { - english: { code: "en", name: "English" }, - polish: { code: "pl", name: "Polski" }, - russian: { code: "ru", name: "Русский" }, - french: { code: "fr", name: "Français" }, - german: { code: "de", name: "Deutsch" }, - chineseTraditional: { code: "zh-Hant", name: "繁體中文" }, - chineseSimplified: { code: "zh-Hans", name: "简体中文" }, - turkish: { code: "tr", name: "Türkçe" }, - kazakh: { code: "kz", name: "Қазақ" }, - persian: { code: "fa", name: "فارسی" }, - korean: { code: "ko", name: "한국어" }, - portuguese: { code: "pt-br", name: "Português" }, - italian: { code: "it", name: "Italiano" }, - japanese: { code: "ja", name: "日本語" }, - spanish: { code: "es", name: "Español" }, - norwegian: { code: "no", name: "Norsk" }, - azerbaijani: { code: "az", name: "Azərbaycan" }, + english: { code: "en", name: "English" }, + polish: { code: "pl", name: "Polski" }, + russian: { code: "ru", name: "Русский" }, + french: { code: "fr", name: "Français" }, + german: { code: "de", name: "Deutsch" }, + chineseTraditional: { code: "zh-Hant", name: "繁體中文" }, + chineseSimplified: { code: "zh-Hans", name: "简体中文" }, + turkish: { code: "tr", name: "Türkçe" }, + kazakh: { code: "kz", name: "Қазақ" }, + persian: { code: "fa", name: "فارسی" }, + korean: { code: "ko", name: "한국어" }, + portuguese: { code: "pt-br", name: "Português" }, + italian: { code: "it", name: "Italiano" }, + japanese: { code: "ja", name: "日本語" }, + spanish: { code: "es", name: "Español" }, + norwegian: { code: "no", name: "Norsk" }, + azerbaijani: { code: "az", name: "Azərbaycan" }, }; export type Language = keyof typeof Languages; From fa2d81d2e79a827bc286ced917f138ec2e3fa8b6 Mon Sep 17 00:00:00 2001 From: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com> Date: Mon, 6 Jan 2025 13:50:38 +1100 Subject: [PATCH 29/55] docs(contribution): added missing generateBase64 import for template index.ts --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 91bb7049..ca0b5836 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -169,6 +169,7 @@ Let's take the example of `plausible` template. ```typescript // EXAMPLE import { + generateBase64, generateHash, generateRandomDomain, type Template, From fdaea01b5b7f97b869887da80908853517ba0155 Mon Sep 17 00:00:00 2001 From: Tam Nguyen Date: Mon, 6 Jan 2025 14:00:43 +1100 Subject: [PATCH 30/55] docs(contribution): added missing generateBase64 import for template index.ts --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ca0b5836..ecb5bab5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -201,8 +201,8 @@ export function generate(schema: Schema): Template { const mounts: Template["mounts"] = [ { - mountPath: "./clickhouse/clickhouse-config.xml", - content: `some content......`, + filePath: "./clickhouse/clickhouse-config.xml", + content: "some content......", }, ]; From 6866da97ddf61192acf566a048e9622cc3b5ea79 Mon Sep 17 00:00:00 2001 From: Tam Nguyen Date: Mon, 6 Jan 2025 15:26:18 +1100 Subject: [PATCH 31/55] feat(template): added gotenberg, a pdf API service --- apps/dokploy/public/templates/gotenberg.png | Bin 0 -> 234321 bytes .../templates/gotenberg/docker-compose.yml | 19 ++++++++++++ apps/dokploy/templates/gotenberg/index.ts | 29 ++++++++++++++++++ apps/dokploy/templates/templates.ts | 15 +++++++++ 4 files changed, 63 insertions(+) create mode 100644 apps/dokploy/public/templates/gotenberg.png create mode 100644 apps/dokploy/templates/gotenberg/docker-compose.yml create mode 100644 apps/dokploy/templates/gotenberg/index.ts diff --git a/apps/dokploy/public/templates/gotenberg.png b/apps/dokploy/public/templates/gotenberg.png new file mode 100644 index 0000000000000000000000000000000000000000..5db2c6f8576dce5fe353e8f907b83f59ff088506 GIT binary patch literal 234321 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 z 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�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�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�dI7*Rb5|gjFXZRae?OR@~t| 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 LNkvXXu0mjfNh import("./checkmate/index").then((m) => m.generate), }, + { + id: "gotenberg", + name: "Gotenberg", + version: "v8.15.2", + description: + "Gotenberg provides a developer-friendly API to interact with powerful tools like Chromium and LibreOffice for converting numerous document formats (HTML, Markdown, Word, Excel, etc.) into PDF files, and more!", + logo: "gotenberg.png", + links: { + github: "https://github.com/gotenberg/gotenberg", + website: "https://gotenberg.dev", + docs: "https://gotenberg.dev/docs/getting-started/introduction", + }, + tags: ["api", "backend", "pdf"], + load: () => import("./gotenberg/index").then((m) => m.generate), + } ]; From a42b0ba32bab4caf9886a9f5156a3555d7af47b8 Mon Sep 17 00:00:00 2001 From: Khiet Tam Nguyen Date: Mon, 6 Jan 2025 19:20:40 +1100 Subject: [PATCH 32/55] docs(template): more concise description for gotenberg --- apps/dokploy/templates/templates.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index 59e39bcc..9fa11619 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -1201,7 +1201,7 @@ export const templates: TemplateData[] = [ name: "Gotenberg", version: "v8.15.2", description: - "Gotenberg provides a developer-friendly API to interact with powerful tools like Chromium and LibreOffice for converting numerous document formats (HTML, Markdown, Word, Excel, etc.) into PDF files, and more!", + "Gotenberg is a Docker-powered stateless API for PDF files.", logo: "gotenberg.png", links: { github: "https://github.com/gotenberg/gotenberg", From c31ed2b2b0e72fab988e215c420ddc5a235e7230 Mon Sep 17 00:00:00 2001 From: UndefinedPony Date: Mon, 6 Jan 2025 11:38:08 +0100 Subject: [PATCH 33/55] feat: add iproute2 as dependency to dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 51be6469..5fa0ee2c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,7 +29,7 @@ WORKDIR /app # Set production ENV NODE_ENV=production -RUN apt-get update && apt-get install -y curl unzip apache2-utils && rm -rf /var/lib/apt/lists/* +RUN apt-get update && apt-get install -y curl unzip apache2-utils iproute2 && rm -rf /var/lib/apt/lists/* # Copy only the necessary files COPY --from=build /prod/dokploy/.next ./.next From aa3541b67b2717a4e08bd50c50665c850ec7fe3d Mon Sep 17 00:00:00 2001 From: UndefinedPony Date: Mon, 6 Jan 2025 11:39:19 +0100 Subject: [PATCH 34/55] feat: add utils to get docker host and check if running on WSL --- apps/dokploy/server/utils/docker.ts | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 apps/dokploy/server/utils/docker.ts diff --git a/apps/dokploy/server/utils/docker.ts b/apps/dokploy/server/utils/docker.ts new file mode 100644 index 00000000..7577c844 --- /dev/null +++ b/apps/dokploy/server/utils/docker.ts @@ -0,0 +1,40 @@ +import { execAsync } from "@dokploy/server"; + +/** Returns if the current operating system is Windows Subsystem for Linux (WSL). */ +export const isWSL = async () => { + try { + const { stdout } = await execAsync("uname -r"); + const isWSL = stdout.includes("microsoft"); + return isWSL; + } catch (error) { + return false; + } +}; + +/** Returns the Docker host IP address. */ +export const getDockerHost = async (): Promise => { + if (process.env.NODE_ENV === "production") { + if (process.platform === "linux" && !isWSL()) { + try { + // Try to get the Docker bridge IP first + const { stdout } = await execAsync( + "ip route | awk '/default/ {print $3}'", + ); + + const hostIp = stdout.trim(); + if (!hostIp) { + throw new Error("Failed to get Docker host IP"); + } + + return hostIp; + } catch (error) { + console.error("Failed to get Docker host IP:", error); + return "172.17.0.1"; // Default Docker bridge network IP + } + } + + return "host.docker.internal"; + } + + return "localhost"; +}; From d0a5427c668d118d223df57baa55948e01ec0433 Mon Sep 17 00:00:00 2001 From: UndefinedPony Date: Mon, 6 Jan 2025 11:41:34 +0100 Subject: [PATCH 35/55] fix: connecting to local server terminal --- apps/dokploy/server/wss/terminal.ts | 54 +++++++++++++++++++------ apps/dokploy/server/wss/utils.ts | 62 +++++++++-------------------- 2 files changed, 60 insertions(+), 56 deletions(-) diff --git a/apps/dokploy/server/wss/terminal.ts b/apps/dokploy/server/wss/terminal.ts index 8c661c8a..87b096c0 100644 --- a/apps/dokploy/server/wss/terminal.ts +++ b/apps/dokploy/server/wss/terminal.ts @@ -8,6 +8,17 @@ import { publicIpv4, publicIpv6 } from "public-ip"; import { Client, type ConnectConfig } from "ssh2"; import { WebSocketServer } from "ws"; import { setupLocalServerSSHKey } from "./utils"; +import { getDockerHost } from "../utils/docker"; + +const COMMAND_TO_ALLOW_LOCAL_ACCESS = ` +# ---------------------------------------- + mkdir -p $HOME/.ssh && \\ + chmod 700 $HOME/.ssh && \\ + touch $HOME/.ssh/authorized_keys && \\ + chmod 600 $HOME/.ssh/authorized_keys && \\ + cat /etc/dokploy/ssh/auto_generated-dokploy-local.pub >> $HOME/.ssh/authorized_keys && \\ + echo "✓ Dokploy SSH key added successfully. Reopen the terminal in Dokploy to reconnect." +# ----------------------------------------`; export const getPublicIpWithFallback = async () => { // @ts-ignore @@ -73,20 +84,31 @@ export const setupTerminalWebSocketServer = ( return; } - ws.send("Setting up private SSH key...\n"); - const privateKey = await setupLocalServerSSHKey(); + try { + ws.send("Setting up private SSH key...\n"); + const privateKey = await setupLocalServerSSHKey(); - if (!privateKey) { + if (!privateKey) { + ws.close(); + return; + } + + const dockerHost = await getDockerHost(); + + ws.send(`Found Docker host: ${dockerHost}\n`); + + connectionDetails = { + host: dockerHost, + port, + username, + privateKey, + }; + } catch (error) { + console.error(`Error setting up private SSH key: ${error}`); + ws.send(`Error setting up private SSH key: ${error}`); ws.close(); return; } - - connectionDetails = { - host: "localhost", - port, - username, - privateKey, - }; } else { const server = await findServerById(serverId); @@ -161,9 +183,15 @@ export const setupTerminalWebSocketServer = ( }) .on("error", (err) => { if (err.level === "client-authentication") { - ws.send( - `Authentication failed: Unauthorized ${isLocalServer ? "" : "private SSH key or "}username.\n❌ Error: ${err.message} ${err.level}`, - ); + if (isLocalServer) { + ws.send( + `Authentication failed: Please run the command below on your server to allow access. Make sure to run it as the same user as the one configured in connection settings:${COMMAND_TO_ALLOW_LOCAL_ACCESS}\nAfter running the command, reopen this window to reconnect. This procedure is required only once.`, + ); + } else { + ws.send( + `Authentication failed: Unauthorized private SSH key or username.\n❌ Error: ${err.message} ${err.level}`, + ); + } } else { ws.send(`SSH connection error: ${err.message} ❌ `); } diff --git a/apps/dokploy/server/wss/utils.ts b/apps/dokploy/server/wss/utils.ts index 9c78869d..b593595b 100644 --- a/apps/dokploy/server/wss/utils.ts +++ b/apps/dokploy/server/wss/utils.ts @@ -1,18 +1,8 @@ -import { execAsync } from "@dokploy/server"; +import { execAsync, paths } from "@dokploy/server"; import os from "node:os"; import path from "node:path"; import fs from "node:fs"; -const HOME_PATH = process.env.HOME || process.env.USERPROFILE || "/"; - -const LOCAL_SSH_KEY_PATH = path.join( - HOME_PATH, - ".ssh", - "auto_generated-dokploy-local", -); - -const AUTHORIZED_KEYS_PATH = path.join(HOME_PATH, ".ssh", "authorized_keys"); - export const getShell = () => { switch (os.platform()) { case "win32": @@ -24,39 +14,25 @@ export const getShell = () => { } }; -/** Returns private SSH key for dokploy local server terminal. Uses already created SSH key or generates a new SSH key, also automatically appends the public key to `authorized_keys`, creating the file if needed. */ +/** Returns private SSH key for dokploy local server terminal. Uses already created SSH key or generates a new SSH key. + * + * In case of permission failures when running locally, run the command below: + +``` +sudo chown -R $USER:$USER /etc/dokploy/ssh +``` + +*/ export const setupLocalServerSSHKey = async () => { - try { - if (!fs.existsSync(LOCAL_SSH_KEY_PATH)) { - // Generate new SSH key if it hasn't been created yet - await execAsync( - `ssh-keygen -t rsa -b 4096 -f ${LOCAL_SSH_KEY_PATH} -N ""`, - ); - } + const { SSH_PATH } = paths(true); + const sshKeyPath = path.join(SSH_PATH, "auto_generated-dokploy-local"); - const privateKey = fs.readFileSync(LOCAL_SSH_KEY_PATH, "utf8"); - const publicKey = fs.readFileSync(`${LOCAL_SSH_KEY_PATH}.pub`, "utf8"); - const authKeyContent = `${publicKey}\n`; - - if (!fs.existsSync(AUTHORIZED_KEYS_PATH)) { - // Create authorized_keys if it doesn't exist yet - fs.writeFileSync(AUTHORIZED_KEYS_PATH, authKeyContent, { mode: 0o600 }); - return privateKey; - } - - const existingAuthKeys = fs.readFileSync(AUTHORIZED_KEYS_PATH, "utf8"); - if (existingAuthKeys.includes(publicKey)) { - return privateKey; - } - - // Append the public key to authorized_keys - fs.appendFileSync(AUTHORIZED_KEYS_PATH, authKeyContent, { - mode: 0o600, - }); - - return privateKey; - } catch (error) { - console.error("Error getting private SSH key for local terminal:", error); - return ""; + if (!fs.existsSync(sshKeyPath)) { + // Generate new SSH key if it hasn't been created yet + await execAsync(`ssh-keygen -t rsa -b 4096 -f ${sshKeyPath} -N ""`); } + + const privateKey = fs.readFileSync(sshKeyPath, "utf8"); + + return privateKey; }; From 76c6d0256613aff49b619b5a5e34053808c32157 Mon Sep 17 00:00:00 2001 From: UndefinedPony Date: Mon, 6 Jan 2025 12:09:15 +0100 Subject: [PATCH 36/55] feat: add ssh key comment for auto generated key --- apps/dokploy/server/wss/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/server/wss/utils.ts b/apps/dokploy/server/wss/utils.ts index b593595b..e98e5016 100644 --- a/apps/dokploy/server/wss/utils.ts +++ b/apps/dokploy/server/wss/utils.ts @@ -29,7 +29,7 @@ export const setupLocalServerSSHKey = async () => { if (!fs.existsSync(sshKeyPath)) { // Generate new SSH key if it hasn't been created yet - await execAsync(`ssh-keygen -t rsa -b 4096 -f ${sshKeyPath} -N ""`); + await execAsync(`ssh-keygen -t rsa -b 4096 -f ${sshKeyPath} -N "" -C "dokploy-local-access"`); } const privateKey = fs.readFileSync(sshKeyPath, "utf8"); From 41a970c526ed588cae852aa5608957af5fb33db7 Mon Sep 17 00:00:00 2001 From: UndefinedPony Date: Mon, 6 Jan 2025 12:09:54 +0100 Subject: [PATCH 37/55] feat: add permission grant command when key generation fails --- apps/dokploy/server/wss/terminal.ts | 18 +++++++++++++++++- apps/dokploy/server/wss/utils.ts | 7 ------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/apps/dokploy/server/wss/terminal.ts b/apps/dokploy/server/wss/terminal.ts index 87b096c0..9dafba22 100644 --- a/apps/dokploy/server/wss/terminal.ts +++ b/apps/dokploy/server/wss/terminal.ts @@ -20,6 +20,12 @@ const COMMAND_TO_ALLOW_LOCAL_ACCESS = ` echo "✓ Dokploy SSH key added successfully. Reopen the terminal in Dokploy to reconnect." # ----------------------------------------`; +const COMMAND_TO_GRANT_PERMISSION_ACCESS = ` +# ---------------------------------------- + sudo chown -R $USER:$USER /etc/dokploy/ssh +# ---------------------------------------- +`; + export const getPublicIpWithFallback = async () => { // @ts-ignore let ip = null; @@ -105,7 +111,17 @@ export const setupTerminalWebSocketServer = ( }; } catch (error) { console.error(`Error setting up private SSH key: ${error}`); - ws.send(`Error setting up private SSH key: ${error}`); + ws.send(`Error setting up private SSH key: ${error}\n`); + + if ( + error instanceof Error && + error.message.includes("Permission denied") + ) { + ws.send( + `Please run the following command on your server to grant permission access and then reopen this window to reconnect:${COMMAND_TO_GRANT_PERMISSION_ACCESS}`, + ); + } + ws.close(); return; } diff --git a/apps/dokploy/server/wss/utils.ts b/apps/dokploy/server/wss/utils.ts index e98e5016..cd50130c 100644 --- a/apps/dokploy/server/wss/utils.ts +++ b/apps/dokploy/server/wss/utils.ts @@ -15,13 +15,6 @@ export const getShell = () => { }; /** Returns private SSH key for dokploy local server terminal. Uses already created SSH key or generates a new SSH key. - * - * In case of permission failures when running locally, run the command below: - -``` -sudo chown -R $USER:$USER /etc/dokploy/ssh -``` - */ export const setupLocalServerSSHKey = async () => { const { SSH_PATH } = paths(true); From ee9f4796c3ee80dac546df48bee65281e51c3bb4 Mon Sep 17 00:00:00 2001 From: UndefinedPony Date: Mon, 6 Jan 2025 12:12:23 +0100 Subject: [PATCH 38/55] style: remove spaces from commands --- apps/dokploy/server/wss/terminal.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/dokploy/server/wss/terminal.ts b/apps/dokploy/server/wss/terminal.ts index 9dafba22..3f0d6a80 100644 --- a/apps/dokploy/server/wss/terminal.ts +++ b/apps/dokploy/server/wss/terminal.ts @@ -12,17 +12,17 @@ import { getDockerHost } from "../utils/docker"; const COMMAND_TO_ALLOW_LOCAL_ACCESS = ` # ---------------------------------------- - mkdir -p $HOME/.ssh && \\ - chmod 700 $HOME/.ssh && \\ - touch $HOME/.ssh/authorized_keys && \\ - chmod 600 $HOME/.ssh/authorized_keys && \\ - cat /etc/dokploy/ssh/auto_generated-dokploy-local.pub >> $HOME/.ssh/authorized_keys && \\ - echo "✓ Dokploy SSH key added successfully. Reopen the terminal in Dokploy to reconnect." +mkdir -p $HOME/.ssh && \\ +chmod 700 $HOME/.ssh && \\ +touch $HOME/.ssh/authorized_keys && \\ +chmod 600 $HOME/.ssh/authorized_keys && \\ +cat /etc/dokploy/ssh/auto_generated-dokploy-local.pub >> $HOME/.ssh/authorized_keys && \\ +echo "✓ Dokploy SSH key added successfully. Reopen the terminal in Dokploy to reconnect." # ----------------------------------------`; const COMMAND_TO_GRANT_PERMISSION_ACCESS = ` # ---------------------------------------- - sudo chown -R $USER:$USER /etc/dokploy/ssh +sudo chown -R $USER:$USER /etc/dokploy/ssh # ---------------------------------------- `; From 4e581bae998efd6e670ffb9157e5c0fdfc767a04 Mon Sep 17 00:00:00 2001 From: Khiet Tam Nguyen Date: Tue, 7 Jan 2025 09:03:49 +1100 Subject: [PATCH 39/55] fix: updated gotenberg from 8.15.2 -> 8.15.3 --- apps/dokploy/templates/gotenberg/docker-compose.yml | 2 +- apps/dokploy/templates/templates.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/dokploy/templates/gotenberg/docker-compose.yml b/apps/dokploy/templates/gotenberg/docker-compose.yml index fb174e28..f06d9025 100644 --- a/apps/dokploy/templates/gotenberg/docker-compose.yml +++ b/apps/dokploy/templates/gotenberg/docker-compose.yml @@ -1,6 +1,6 @@ services: gotenberg: - image: gotenberg/gotenberg:8.15.2 + image: gotenberg/gotenberg:8.15.3 container_name: gotenberg environment: # NOTE: requires the --api-enable-basic-auth option in "command" diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index 9fa11619..47c001b1 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -1199,7 +1199,7 @@ export const templates: TemplateData[] = [ { id: "gotenberg", name: "Gotenberg", - version: "v8.15.2", + version: "v8.15.3", description: "Gotenberg is a Docker-powered stateless API for PDF files.", logo: "gotenberg.png", From 644fb1ef436b0b73968cec8983a22fcd3c4a77d1 Mon Sep 17 00:00:00 2001 From: Khiet Tam Nguyen Date: Tue, 7 Jan 2025 09:07:38 +1100 Subject: [PATCH 40/55] fix: switch to using gotenberg "latest" tag --- apps/dokploy/templates/gotenberg/docker-compose.yml | 2 +- apps/dokploy/templates/templates.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/dokploy/templates/gotenberg/docker-compose.yml b/apps/dokploy/templates/gotenberg/docker-compose.yml index f06d9025..814ac46f 100644 --- a/apps/dokploy/templates/gotenberg/docker-compose.yml +++ b/apps/dokploy/templates/gotenberg/docker-compose.yml @@ -1,6 +1,6 @@ services: gotenberg: - image: gotenberg/gotenberg:8.15.3 + image: gotenberg/gotenberg:latest container_name: gotenberg environment: # NOTE: requires the --api-enable-basic-auth option in "command" diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index 47c001b1..2024668a 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -1199,7 +1199,7 @@ export const templates: TemplateData[] = [ { id: "gotenberg", name: "Gotenberg", - version: "v8.15.3", + version: "latest", description: "Gotenberg is a Docker-powered stateless API for PDF files.", logo: "gotenberg.png", From 34a375776e9d260cbef688d5361e0ed6ecac2bab Mon Sep 17 00:00:00 2001 From: Khiet Tam Nguyen Date: Tue, 7 Jan 2025 09:23:58 +1100 Subject: [PATCH 41/55] docs: added the "tools" tag for gotenberg --- apps/dokploy/templates/templates.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index 2024668a..427798ec 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -1208,7 +1208,7 @@ export const templates: TemplateData[] = [ website: "https://gotenberg.dev", docs: "https://gotenberg.dev/docs/getting-started/introduction", }, - tags: ["api", "backend", "pdf"], + tags: ["api", "backend", "pdf", "tools"], load: () => import("./gotenberg/index").then((m) => m.generate), } ]; From 103654d6784cd12bbde7cced370061169a063c2d Mon Sep 17 00:00:00 2001 From: "Saman Beheshtian (YiiMan)" Date: Wed, 8 Jan 2025 02:07:19 +0000 Subject: [PATCH 42/55] Update wordpress version to latest --- apps/dokploy/templates/wordpress/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/templates/wordpress/docker-compose.yml b/apps/dokploy/templates/wordpress/docker-compose.yml index 6ff6b2fd..7647859d 100644 --- a/apps/dokploy/templates/wordpress/docker-compose.yml +++ b/apps/dokploy/templates/wordpress/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.8" services: wordpress: - image: wordpress:5.8.3 + image: wordpress:6.7.1 environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: exampleuser From 1a956314f85b1ad5d551860521b1fc53e1067b48 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 8 Jan 2025 22:17:07 -0600 Subject: [PATCH 43/55] Update apps/dokploy/templates/gotenberg/docker-compose.yml --- apps/dokploy/templates/gotenberg/docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/dokploy/templates/gotenberg/docker-compose.yml b/apps/dokploy/templates/gotenberg/docker-compose.yml index 814ac46f..02bbacb7 100644 --- a/apps/dokploy/templates/gotenberg/docker-compose.yml +++ b/apps/dokploy/templates/gotenberg/docker-compose.yml @@ -1,7 +1,6 @@ services: gotenberg: image: gotenberg/gotenberg:latest - container_name: gotenberg environment: # NOTE: requires the --api-enable-basic-auth option in "command" # make sure to also change the credentials in Dokploy environment From 553ae7065684ff9f19afefc9725ac5a672f3ae2a Mon Sep 17 00:00:00 2001 From: shiqocred <90097870+shiqocred@users.noreply.github.com> Date: Sat, 11 Jan 2025 11:01:53 +0700 Subject: [PATCH 44/55] feat(i18n): indonesian language (#1082) * Update languages.ts * Create common.json * Create settings.json --- apps/dokploy/lib/languages.ts | 1 + apps/dokploy/public/locales/id/common.json | 1 + apps/dokploy/public/locales/id/settings.json | 58 ++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 apps/dokploy/public/locales/id/common.json create mode 100644 apps/dokploy/public/locales/id/settings.json diff --git a/apps/dokploy/lib/languages.ts b/apps/dokploy/lib/languages.ts index 74113cb2..8765057b 100644 --- a/apps/dokploy/lib/languages.ts +++ b/apps/dokploy/lib/languages.ts @@ -16,6 +16,7 @@ export const Languages = { spanish: { code: "es", name: "Español" }, norwegian: { code: "no", name: "Norsk" }, azerbaijani: { code: "az", name: "Azərbaycan" }, + indonesian: {code: "id", name: "Bahasa Indonesia"} }; export type Language = keyof typeof Languages; diff --git a/apps/dokploy/public/locales/id/common.json b/apps/dokploy/public/locales/id/common.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/apps/dokploy/public/locales/id/common.json @@ -0,0 +1 @@ +{} diff --git a/apps/dokploy/public/locales/id/settings.json b/apps/dokploy/public/locales/id/settings.json new file mode 100644 index 00000000..489ddc01 --- /dev/null +++ b/apps/dokploy/public/locales/id/settings.json @@ -0,0 +1,58 @@ +{ + "settings.common.save": "Simpan", + "settings.common.enterTerminal": "Buka Terminal", + "settings.server.domain.title": "Domain Server", + "settings.server.domain.description": "Tambahkan domain ke aplikasi server anda.", + "settings.server.domain.form.domain": "Domain", + "settings.server.domain.form.letsEncryptEmail": "Email Let's Encrypt", + "settings.server.domain.form.certificate.label": "Penyedia Sertifikat", + "settings.server.domain.form.certificate.placeholder": "Pilih sertifikat", + "settings.server.domain.form.certificateOptions.none": "Tidak ada", + "settings.server.domain.form.certificateOptions.letsencrypt": "Let's Encrypt", + + "settings.server.webServer.title": "Server Web", + "settings.server.webServer.description": "Muat ulang atau bersihkan server web.", + "settings.server.webServer.actions": "Opsi", + "settings.server.webServer.reload": "Muat ulang", + "settings.server.webServer.watchLogs": "Lihat log", + "settings.server.webServer.updateServerIp": "Perbarui IP Server", + "settings.server.webServer.server.label": "Server", + "settings.server.webServer.traefik.label": "Traefik", + "settings.server.webServer.traefik.modifyEnv": "Ubah Environment", + "settings.server.webServer.traefik.managePorts": "Pengaturan Port Tambahan", + "settings.server.webServer.traefik.managePortsDescription": "Tambahkan atau hapus port tambahan untuk Traefik", + "settings.server.webServer.traefik.targetPort": "Port Tujuan", + "settings.server.webServer.traefik.publishedPort": "Port saai ini", + "settings.server.webServer.traefik.addPort": "Tambah Port", + "settings.server.webServer.traefik.portsUpdated": "Port berhasil diperbarui", + "settings.server.webServer.traefik.portsUpdateError": "Gagal memperbarui Port", + "settings.server.webServer.traefik.publishMode": "Pilihan mode Port", + "settings.server.webServer.storage.label": "Penyimpanan", + "settings.server.webServer.storage.cleanUnusedImages": "Hapus Image tidak terpakai", + "settings.server.webServer.storage.cleanUnusedVolumes": "Hapus Volume tidak terpakai", + "settings.server.webServer.storage.cleanStoppedContainers": "Hapus Container tidak aktif", + "settings.server.webServer.storage.cleanDockerBuilder": "Bersihkan Docker Builder & System", + "settings.server.webServer.storage.cleanMonitoring": "Bersihkan Monitoring", + "settings.server.webServer.storage.cleanAll": "Bersihkan", + + "settings.profile.title": "Akun", + "settings.profile.description": "Ubah detail profil Anda di sini.", + "settings.profile.email": "Email", + "settings.profile.password": "Kata Sandi", + "settings.profile.avatar": "Avatar", + + "settings.appearance.title": "Tampilan", + "settings.appearance.description": "Sesuaikan tema dasbor Anda.", + "settings.appearance.theme": "Tema", + "settings.appearance.themeDescription": "Pilih tema untuk dasbor Anda", + "settings.appearance.themes.light": "Terang", + "settings.appearance.themes.dark": "Gelap", + "settings.appearance.themes.system": "Sistem", + "settings.appearance.language": "Bahasa", + "settings.appearance.languageDescription": "Pilih bahasa untuk dasbor Anda", + + "settings.terminal.connectionSettings": "Pengaturan koneksi", + "settings.terminal.ipAddress": "Alamat IP", + "settings.terminal.port": "Port", + "settings.terminal.username": "Username" +} From 9db979e43f1a155917282ae3c925839e259521b9 Mon Sep 17 00:00:00 2001 From: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com> Date: Sat, 11 Jan 2025 15:02:40 +1100 Subject: [PATCH 45/55] fix(ui): full width for body tag (#1078) --- apps/dokploy/pages/_document.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/pages/_document.tsx b/apps/dokploy/pages/_document.tsx index c305be20..120bb827 100644 --- a/apps/dokploy/pages/_document.tsx +++ b/apps/dokploy/pages/_document.tsx @@ -6,7 +6,7 @@ export default function Document() { - +

From 87f4c7b71b9cd41d68a8f26cf84503e5d2b32f63 Mon Sep 17 00:00:00 2001 From: Tobias Barsnes Date: Sun, 12 Jan 2025 00:42:05 +0100 Subject: [PATCH 46/55] refactor: better focus-visible a11y (#1017) * refactor: better focus-visible a11y * style: fix tree leaf width * style: input focus ring size * refactor: focus a11y on project pages * fix: project-environment import statement * style: `ring-border` on input * refactor: use ring border --------- Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> --- .../dashboard/docker/logs/docker-logs-id.tsx | 2 +- .../dashboard/docker/show/show-containers.tsx | 2 +- .../dashboard/project/add-template.tsx | 8 ++++---- .../components/dashboard/projects/show.tsx | 12 ++++++++---- .../dashboard/settings/profile/profile-form.tsx | 4 ++-- apps/dokploy/components/layouts/navbar.tsx | 15 ++++++++++----- .../components/layouts/navigation-tabs.tsx | 10 +++++++--- apps/dokploy/components/ui/button.tsx | 4 ++-- apps/dokploy/components/ui/file-tree.tsx | 13 +++++++------ apps/dokploy/components/ui/input.tsx | 2 +- apps/dokploy/components/ui/select.tsx | 2 +- apps/dokploy/components/ui/tabs.tsx | 3 ++- apps/dokploy/components/ui/textarea.tsx | 2 +- apps/dokploy/components/ui/tooltip.tsx | 16 ++++++++++++++-- .../pages/dashboard/project/[projectId].tsx | 7 +++---- 15 files changed, 64 insertions(+), 38 deletions(-) diff --git a/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx b/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx index 1fd8cea4..b638991c 100644 --- a/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx +++ b/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx @@ -226,7 +226,7 @@ export const DockerLogsId: React.FC = ({ return (
-
+
diff --git a/apps/dokploy/components/dashboard/docker/show/show-containers.tsx b/apps/dokploy/components/dashboard/docker/show/show-containers.tsx index e55e6271..128009eb 100644 --- a/apps/dokploy/components/dashboard/docker/show/show-containers.tsx +++ b/apps/dokploy/components/dashboard/docker/show/show-containers.tsx @@ -72,7 +72,7 @@ export const ShowContainers = ({ serverId }: Props) => { return (
-
+
{ href={template.links.github} target="_blank" className={ - "text-sm text-muted-foreground p-3 rounded-full hover:bg-border items-center flex transition-colors" + "text-sm text-muted-foreground p-3 rounded-full hover:bg-border items-center flex transition-colors focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none" } > @@ -236,7 +236,7 @@ export const AddTemplate = ({ projectId }: Props) => { href={template.links.website} target="_blank" className={ - "text-sm text-muted-foreground p-3 rounded-full hover:bg-border items-center flex transition-colors" + "text-sm text-muted-foreground p-3 rounded-full hover:bg-border items-center flex transition-colors focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none" } > @@ -247,7 +247,7 @@ export const AddTemplate = ({ projectId }: Props) => { href={template.links.docs} target="_blank" className={ - "text-sm text-muted-foreground p-3 rounded-full hover:bg-border items-center flex transition-colors" + "text-sm text-muted-foreground p-3 rounded-full hover:bg-border items-center flex transition-colors focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none" } > @@ -257,7 +257,7 @@ export const AddTemplate = ({ projectId }: Props) => { href={`https://github.com/Dokploy/dokploy/tree/canary/apps/dokploy/templates/${template.id}`} target="_blank" className={ - "text-sm text-muted-foreground p-3 rounded-full hover:bg-border items-center flex transition-colors" + "text-sm text-muted-foreground p-3 rounded-full hover:bg-border items-center flex transition-colors focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none" } > diff --git a/apps/dokploy/components/dashboard/projects/show.tsx b/apps/dokploy/components/dashboard/projects/show.tsx index 59262183..be85d6f1 100644 --- a/apps/dokploy/components/dashboard/projects/show.tsx +++ b/apps/dokploy/components/dashboard/projects/show.tsx @@ -126,13 +126,16 @@ export const ShowProjects = () => { return (
- + {flattedDomains.length > 1 ? ( ); }); diff --git a/apps/dokploy/components/ui/input.tsx b/apps/dokploy/components/ui/input.tsx index 8fe7ab28..18b713af 100644 --- a/apps/dokploy/components/ui/input.tsx +++ b/apps/dokploy/components/ui/input.tsx @@ -14,7 +14,7 @@ const Input = React.forwardRef( type={type} className={cn( // bg-gray - "flex h-10 w-full rounded-md bg-input px-3 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", + "flex h-10 w-full rounded-md bg-input px-3 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border disabled:cursor-not-allowed disabled:opacity-50", className, )} ref={ref} diff --git a/apps/dokploy/components/ui/select.tsx b/apps/dokploy/components/ui/select.tsx index e9e5b35b..cbf47dca 100644 --- a/apps/dokploy/components/ui/select.tsx +++ b/apps/dokploy/components/ui/select.tsx @@ -17,7 +17,7 @@ const SelectTrigger = React.forwardRef< span]:line-clamp-1", + "flex h-10 w-full items-center justify-between rounded-md border border-input bg-input px-3 py-2 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1", className, )} {...props} diff --git a/apps/dokploy/components/ui/tabs.tsx b/apps/dokploy/components/ui/tabs.tsx index e54c215a..ffbbaed1 100644 --- a/apps/dokploy/components/ui/tabs.tsx +++ b/apps/dokploy/components/ui/tabs.tsx @@ -38,13 +38,14 @@ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName; const TabsContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( +>(({ className, tabIndex, ...props }, ref) => ( )); diff --git a/apps/dokploy/components/ui/textarea.tsx b/apps/dokploy/components/ui/textarea.tsx index 5b434e4a..41561953 100644 --- a/apps/dokploy/components/ui/textarea.tsx +++ b/apps/dokploy/components/ui/textarea.tsx @@ -10,7 +10,7 @@ const Textarea = React.forwardRef( return (