MCPcopy
hub / github.com/Dokploy/dokploy / createDeploymentVolumeBackup

Function createDeploymentVolumeBackup

packages/server/src/services/deployment.ts:509–592  ·  view source on GitHub ↗
(
	deployment: Omit<
		z.infer<typeof apiCreateDeploymentVolumeBackup>,
		"deploymentId" | "createdAt" | "status" | "logPath"
	>,
)

Source from the content-addressed store, hash-verified

507};
508
509export const createDeploymentVolumeBackup = async (
510 deployment: Omit<
511 z.infer<typeof apiCreateDeploymentVolumeBackup>,
512 "deploymentId" | "createdAt" | "status" | "logPath"
513 >,
514) => {
515 const volumeBackup = await findVolumeBackupById(deployment.volumeBackupId);
516
517 const serverId =
518 volumeBackup.application?.serverId || volumeBackup.compose?.serverId;
519 await removeLastTenDeployments(
520 deployment.volumeBackupId,
521 "volumeBackup",
522 serverId,
523 );
524 try {
525 const { VOLUME_BACKUPS_PATH } = paths(!!serverId);
526 const formattedDateTime = format(new Date(), "yyyy-MM-dd:HH:mm:ss");
527 const fileName = `${volumeBackup.appName}-${formattedDateTime}.log`;
528 const logFilePath = path.join(
529 VOLUME_BACKUPS_PATH,
530 volumeBackup.appName,
531 fileName,
532 );
533
534 if (serverId) {
535 const server = await findServerById(serverId);
536
537 const command = `
538 mkdir -p ${VOLUME_BACKUPS_PATH}/${volumeBackup.appName};
539 echo "Initializing volume backup" >> ${logFilePath};
540 `;
541
542 await execAsyncRemote(server.serverId, command);
543 } else {
544 await fsPromises.mkdir(
545 path.join(VOLUME_BACKUPS_PATH, volumeBackup.appName),
546 {
547 recursive: true,
548 },
549 );
550 await fsPromises.writeFile(logFilePath, "Initializing volume backup\n");
551 }
552
553 const deploymentCreate = await db
554 .insert(deployments)
555 .values({
556 volumeBackupId: deployment.volumeBackupId,
557 title: deployment.title || "Deployment",
558 status: "running",
559 logPath: logFilePath,
560 description: deployment.description || "",
561 startedAt: new Date().toISOString(),
562 })
563 .returning();
564 if (deploymentCreate.length === 0 || !deploymentCreate[0]) {
565 throw new TRPCError({
566 code: "BAD_REQUEST",

Callers 1

runVolumeBackupFunction · 0.90

Calls 5

findVolumeBackupByIdFunction · 0.90
pathsFunction · 0.90
findServerByIdFunction · 0.90
execAsyncRemoteFunction · 0.90
removeLastTenDeploymentsFunction · 0.85

Tested by

no test coverage detected