diff --git a/apps/canvas/back/index.ts b/apps/canvas/back/index.ts
index d10a4a6..8b22348 100644
--- a/apps/canvas/back/index.ts
+++ b/apps/canvas/back/index.ts
@@ -110,6 +110,41 @@
     }
 };
 
+const handleDelete: express.Handler = async (req, resp) => {
+    try {
+        const projectId = Number(req.params["projectId"]);
+        const p = await db.project.findUnique({
+            where: {
+                id: projectId,
+            },
+            select: {
+                instanceId: true,
+            },
+        });
+        if (p === null) {
+            resp.status(404);
+            return;
+        }
+        const r = await axios.request({
+            url: `http://appmanager.hgrz-appmanager.svc.cluster.local/api/instance/${p.instanceId}/remove`,
+            method: "post",
+        });
+        if (r.status === 200) {
+            await db.project.delete({
+                where: {
+                    id: projectId,
+                },
+            });    
+        }
+        resp.status(200);
+    } catch (e) {
+        console.log(e);
+        resp.status(500);
+    } finally {
+        resp.end();
+    }
+};
+
 const handleDeploy: express.Handler = async (req, resp) => {
     try {
         const projectId = Number(req.params["projectId"]);
@@ -228,6 +263,7 @@
     app.get("/api/project/:projectId/saved", handleSavedGet);
     app.post("/api/project/:projectId/deploy", handleDeploy);
     app.get("/api/project/:projectId/status", handleStatus);
+    app.delete("/api/project/:projectId", handleDelete);
     app.get("/api/project", handleProjectAll);
     app.post("/api/project", handleProjectCreate);
     app.use("/", express.static("../front/dist"));
