diff --git a/webui/src/states/Root/pages/Overview/components/Server/components/ServerMenu/dialogs/ConfirmDeleteDialog.jsx b/webui/src/states/Root/pages/Overview/components/Server/components/ServerMenu/dialogs/ConfirmDeleteDialog.jsx
new file mode 100644
index 0000000..108e465
--- /dev/null
+++ b/webui/src/states/Root/pages/Overview/components/Server/components/ServerMenu/dialogs/ConfirmDeleteDialog.jsx
@@ -0,0 +1,40 @@
+import {
+    Alert,
+    Button,
+    Dialog,
+    DialogActions,
+    DialogContent,
+    DialogTitle,
+    InputAdornment,
+    Stack,
+    TextField
+} from "@mui/material";
+import {t} from "i18next";
+import {deleteRequest, patchRequest} from "@/common/utils/RequestUtil.js";
+import {useContext, useState} from "react";
+import {ServerContext} from "@/common/contexts/Server";
+
+export default ({open, setOpen, uuid, setAlert}) => {
+
+    const {updateServer} = useContext(ServerContext);
+
+    const deleteServer = async () => {
+        setOpen(false);
+        await deleteRequest("server/", {uuid});
+        updateServer();
+        setAlert({severity: "success", message: t("server.dialog.delete.success")});
+    }
+
+    return (
+        <Dialog open={open} onClose={() => setOpen(false)}>
+            <DialogTitle>{t("server.dialog.delete.title")}</DialogTitle>
+            <DialogContent>
+                <Alert severity="warning" sx={{width: "20rem"}}>{t("server.dialog.delete.warning")}</Alert>
+            </DialogContent>
+            <DialogActions>
+                <Button onClick={() => setOpen(false)}>{t("common.cancel")}</Button>
+                <Button onClick={deleteServer} color="error">{t("server.dialog.delete.button")}</Button>
+            </DialogActions>
+        </Dialog>
+    );
+}
\ No newline at end of file