diff --git a/apps/dokploy/components/dashboard/application/volume-backups/handle-volume-backups.tsx b/apps/dokploy/components/dashboard/application/volume-backups/handle-volume-backups.tsx
index 6a621f29a..dbd7c2a1e 100644
--- a/apps/dokploy/components/dashboard/application/volume-backups/handle-volume-backups.tsx
+++ b/apps/dokploy/components/dashboard/application/volume-backups/handle-volume-backups.tsx
@@ -78,6 +78,14 @@ const formSchema = z
path: ["serviceName"],
});
}
+
+ if (data.serviceType === "compose" && !data.serviceName) {
+ ctx.addIssue({
+ code: z.ZodIssueCode.custom,
+ message: "Service name is required",
+ path: ["serviceName"],
+ });
+ }
});
interface Props {
diff --git a/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx b/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx
index 9b752ff78..bf823c382 100644
--- a/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx
+++ b/apps/dokploy/components/dashboard/application/volume-backups/show-volume-backups.tsx
@@ -17,7 +17,6 @@ import {
import { api } from "@/utils/api";
import {
ClipboardList,
- Clock,
DatabaseBackup,
Loader2,
Play,
@@ -29,19 +28,10 @@ import { ShowDeploymentsModal } from "../deployments/show-deployments-modal";
interface Props {
id: string;
- volumeBackupType?:
- | "application"
- | "compose"
- | "postgres"
- | "mariadb"
- | "mongo"
- | "mysql";
+ type?: "application" | "compose" | "postgres" | "mariadb" | "mongo" | "mysql";
}
-export const ShowVolumeBackups = ({
- id,
- volumeBackupType = "application",
-}: Props) => {
+export const ShowVolumeBackups = ({ id, type = "application" }: Props) => {
const {
data: volumeBackups,
isLoading: isLoadingVolumeBackups,
@@ -49,7 +39,7 @@ export const ShowVolumeBackups = ({
} = api.volumeBackups.list.useQuery(
{
id: id || "",
- volumeBackupType,
+ volumeBackupType: type,
},
{
enabled: !!id,
@@ -79,7 +69,7 @@ export const ShowVolumeBackups = ({
{volumeBackups && volumeBackups.length > 0 && (
-
+
)}
@@ -109,7 +99,7 @@ export const ShowVolumeBackups = ({
>
-
+
@@ -184,7 +174,7 @@ export const ShowVolumeBackups = ({
{
utils.volumeBackups.list.invalidate({
id,
- volumeBackupType,
+ volumeBackupType: type,
});
toast.success("Volume backup deleted successfully");
})
@@ -230,7 +220,7 @@ export const ShowVolumeBackups = ({
Create your first volume backup to automate your workflows
-
+
)}
diff --git a/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx
index 536b5381d..b396837b1 100644
--- a/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx
+++ b/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx
@@ -336,15 +336,9 @@ const Service = (
- {/* */}
+ />
diff --git a/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx
index 5eebff64b..7ab6f20a5 100644
--- a/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx
+++ b/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx
@@ -4,6 +4,7 @@ import { ShowDeployments } from "@/components/dashboard/application/deployments/
import { ShowDomains } from "@/components/dashboard/application/domains/show-domains";
import { ShowEnvironment } from "@/components/dashboard/application/environment/show-enviroment";
import { ShowSchedules } from "@/components/dashboard/application/schedules/show-schedules";
+import { ShowVolumeBackups } from "@/components/dashboard/application/volume-backups/show-volume-backups";
import { AddCommandCompose } from "@/components/dashboard/compose/advanced/add-command";
import { DeleteService } from "@/components/dashboard/compose/delete-service";
import { ShowGeneralCompose } from "@/components/dashboard/compose/general/show";
@@ -57,7 +58,8 @@ type TabState =
| "advanced"
| "deployments"
| "domains"
- | "monitoring";
+ | "monitoring"
+ | "volumeBackups";
const Service = (
props: InferGetServerSidePropsType,
@@ -226,6 +228,9 @@ const Service = (
Deployments
Backups
Schedules
+
+ Volume Backups
+
Logs
{((data?.serverId && isCloud) || !data?.server) && (
Monitoring
@@ -255,7 +260,11 @@ const Service = (
-
+
+
+
+
+
@@ -342,6 +351,7 @@ const Service = (
+