diff --git a/apps/api/src/schema.ts b/apps/api/src/schema.ts index 5f26e018..609289bf 100644 --- a/apps/api/src/schema.ts +++ b/apps/api/src/schema.ts @@ -19,6 +19,16 @@ export const deployJobSchema = z.discriminatedUnion("applicationType", [ applicationType: z.literal("compose"), serverId: z.string().min(1), }), + z.object({ + applicationId: z.string(), + previewDeploymentId: z.string(), + titleLog: z.string(), + descriptionLog: z.string(), + server: z.boolean().optional(), + type: z.enum(["deploy"]), + applicationType: z.literal("application-preview"), + serverId: z.string().min(1), + }), ]); export type DeployJob = z.infer; diff --git a/apps/api/src/utils.ts b/apps/api/src/utils.ts index 2654487f..d919f29e 100644 --- a/apps/api/src/utils.ts +++ b/apps/api/src/utils.ts @@ -1,10 +1,12 @@ import { deployRemoteApplication, deployRemoteCompose, + deployRemotePreviewApplication, rebuildRemoteApplication, rebuildRemoteCompose, updateApplicationStatus, updateCompose, + updatePreviewDeployment, } from "@dokploy/server"; import type { DeployJob } from "./schema"; @@ -47,6 +49,20 @@ export const deploy = async (job: DeployJob) => { }); } } + } else if (job.applicationType === "application-preview") { + await updatePreviewDeployment(job.previewDeploymentId, { + previewStatus: "running", + }); + if (job.server) { + if (job.type === "deploy") { + await deployRemotePreviewApplication({ + applicationId: job.applicationId, + titleLog: job.titleLog, + descriptionLog: job.descriptionLog, + previewDeploymentId: job.previewDeploymentId, + }); + } + } } } catch (error) { if (job.applicationType === "application") { @@ -55,6 +71,10 @@ export const deploy = async (job: DeployJob) => { await updateCompose(job.composeId, { composeStatus: "error", }); + } else if (job.applicationType === "application-preview") { + await updatePreviewDeployment(job.previewDeploymentId, { + previewStatus: "error", + }); } } diff --git a/apps/dokploy/server/queues/deployments-queue.ts b/apps/dokploy/server/queues/deployments-queue.ts index 9ff8a157..b8dfb8cd 100644 --- a/apps/dokploy/server/queues/deployments-queue.ts +++ b/apps/dokploy/server/queues/deployments-queue.ts @@ -21,8 +21,6 @@ export const deploymentWorker = new Worker( "deployments", async (job: Job) => { try { - console.log(job.data); - if (job.data.applicationType === "application") { await updateApplicationStatus(job.data.applicationId, "running");