From 63568a4887fa6cb973e91770b1f779dfe7d92472 Mon Sep 17 00:00:00 2001 From: spacewaterbear Date: Mon, 3 Nov 2025 23:27:18 +0100 Subject: [PATCH] feat: display environnement in notification --- .../src/emails/emails/build-success.tsx | 5 ++++ packages/server/src/services/application.ts | 2 ++ packages/server/src/services/compose.ts | 2 ++ .../src/utils/notifications/build-success.ts | 25 +++++++++++++++++-- 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/packages/server/src/emails/emails/build-success.tsx b/packages/server/src/emails/emails/build-success.tsx index d9e500ab9..e5e1d1bb4 100644 --- a/packages/server/src/emails/emails/build-success.tsx +++ b/packages/server/src/emails/emails/build-success.tsx @@ -19,6 +19,7 @@ export type TemplateProps = { applicationType: string; buildLink: string; date: string; + environmentName: string; }; export const BuildSuccessEmail = ({ @@ -27,6 +28,7 @@ export const BuildSuccessEmail = ({ applicationType = "application", buildLink = "https://dokploy.com/projects/dokploy-test/applications/dokploy-test", date = "2023-05-01T00:00:00.000Z", + environmentName = "production", }: TemplateProps) => { const previewText = `Build success for ${applicationName}`; return ( @@ -74,6 +76,9 @@ export const BuildSuccessEmail = ({ Application Name: {applicationName} + + Environment: {environmentName} + Application Type: {applicationType} diff --git a/packages/server/src/services/application.ts b/packages/server/src/services/application.ts index 1891f9b6b..6b4f41fd8 100644 --- a/packages/server/src/services/application.ts +++ b/packages/server/src/services/application.ts @@ -237,6 +237,7 @@ export const deployApplication = async ({ buildLink, organizationId: application.environment.project.organizationId, domains: application.domains, + environmentName: application.environment.name, }); } catch (error) { await updateDeploymentStatus(deployment.deploymentId, "error"); @@ -373,6 +374,7 @@ export const deployRemoteApplication = async ({ buildLink, organizationId: application.environment.project.organizationId, domains: application.domains, + environmentName: application.environment.name, }); } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); diff --git a/packages/server/src/services/compose.ts b/packages/server/src/services/compose.ts index 1436c52cc..03c44e937 100644 --- a/packages/server/src/services/compose.ts +++ b/packages/server/src/services/compose.ts @@ -265,6 +265,7 @@ export const deployCompose = async ({ buildLink, organizationId: compose.environment.project.organizationId, domains: compose.domains, + environmentName: compose.environment.name, }); } catch (error) { await updateDeploymentStatus(deployment.deploymentId, "error"); @@ -397,6 +398,7 @@ export const deployRemoteCompose = async ({ buildLink, organizationId: compose.environment.project.organizationId, domains: compose.domains, + environmentName: compose.environment.name, }); } catch (error) { // @ts-ignore diff --git a/packages/server/src/utils/notifications/build-success.ts b/packages/server/src/utils/notifications/build-success.ts index a93b3d547..5b5d6f518 100644 --- a/packages/server/src/utils/notifications/build-success.ts +++ b/packages/server/src/utils/notifications/build-success.ts @@ -22,6 +22,7 @@ interface Props { buildLink: string; organizationId: string; domains: Domain[]; + environmentName: string; } export const sendBuildSuccessNotifications = async ({ @@ -31,6 +32,7 @@ export const sendBuildSuccessNotifications = async ({ buildLink, organizationId, domains, + environmentName, }: Props) => { const date = new Date(); const unixDate = ~~(Number(date) / 1000); @@ -62,6 +64,7 @@ export const sendBuildSuccessNotifications = async ({ applicationType, buildLink, date: date.toLocaleString(), + environmentName, }), ).catch(); await sendEmailNotification(email, "Build success for dokploy", template); @@ -72,7 +75,7 @@ export const sendBuildSuccessNotifications = async ({ `${discord.decoration ? decoration : ""} ${text}`.trim(); await sendDiscordNotification(discord, { - title: decorate(">", "`✅` Build Success"), + title: decorate(">", "`✅` Build Successes"), color: 0x57f287, fields: [ { @@ -85,6 +88,11 @@ export const sendBuildSuccessNotifications = async ({ value: applicationName, inline: true, }, + { + name: decorate("`🌍`", "Environment"), + value: environmentName, + inline: true, + }, { name: decorate("`❔`", "Type"), value: applicationType, @@ -125,6 +133,7 @@ export const sendBuildSuccessNotifications = async ({ decorate("✅", "Build Success"), `${decorate("🛠️", `Project: ${projectName}`)}` + `${decorate("⚙️", `Application: ${applicationName}`)}` + + `${decorate("🌍", `Environment: ${environmentName}`)}` + `${decorate("❔", `Type: ${applicationType}`)}` + `${decorate("🕒", `Date: ${date.toLocaleString()}`)}` + `${decorate("🔗", `Build details:\n${buildLink}`)}`, @@ -139,6 +148,7 @@ export const sendBuildSuccessNotifications = async ({ `view, Build details, ${buildLink}, clear=true;`, `🛠Project: ${projectName}\n` + `⚙️Application: ${applicationName}\n` + + `🌍Environment: ${environmentName}\n` + `❔Type: ${applicationType}\n` + `🕒Date: ${date.toLocaleString()}`, ); @@ -167,7 +177,7 @@ export const sendBuildSuccessNotifications = async ({ await sendTelegramNotification( telegram, - `✅ Build Success\n\nProject: ${projectName}\nApplication: ${applicationName}\nType: ${applicationType}\nDate: ${format(date, "PP")}\nTime: ${format(date, "pp")}`, + `✅ Build Success\n\nProject: ${projectName}\nApplication: ${applicationName}\nEnvironment: ${environmentName}\nType: ${applicationType}\nDate: ${format(date, "PP")}\nTime: ${format(date, "pp")}`, inlineButton, ); } @@ -191,6 +201,11 @@ export const sendBuildSuccessNotifications = async ({ value: applicationName, short: true, }, + { + title: "Environment", + value: environmentName, + short: true, + }, { title: "Type", value: applicationType, @@ -260,6 +275,12 @@ export const sendBuildSuccessNotifications = async ({ text_align: "left", text_size: "normal_v2", }, + { + tag: "markdown", + content: `**Environment:**\n${environmentName}`, + text_align: "left", + text_size: "normal_v2", + }, { tag: "markdown", content: `**Type:**\n${applicationType}`,