diff --git a/backend/agent-socket-handlers/docker-socket-handler.ts b/backend/agent-socket-handlers/docker-socket-handler.ts
index 8174601..02a5351 100644
--- a/backend/agent-socket-handlers/docker-socket-handler.ts
+++ b/backend/agent-socket-handlers/docker-socket-handler.ts
@@ -187,7 +187,7 @@ export class DockerSocketHandler extends AgentSocketHandler {
                 await stack.update(socket);
                 callbackResult({
                     ok: true,
-                    msg: "Updated",
+                    msg: `Updated ${stackName}`,
                     msgi18n: true,
                 }, callback);
                 server.sendStackList();
diff --git a/frontend/src/components/StackList.vue b/frontend/src/components/StackList.vue
index 6b00cb2..122047a 100644
--- a/frontend/src/components/StackList.vue
+++ b/frontend/src/components/StackList.vue
@@ -19,6 +19,12 @@
                         <input v-model="searchText" class="form-control search-input" autocomplete="off" />
                     </form>
                 </div>
+                <div class="update-all-wrapper">
+                    <button class="btn btn-primary" :disabled="processing || Object.keys(sortedStackList).length === 0" @click="updateAll">
+                        <font-awesome-icon icon="fa-cloud-arrow-down me-1" />
+                        {{ $t("updateAll") }}
+                    </button>
+                </div>
             </div>
 
             <!-- TODO -->
@@ -346,6 +352,17 @@ export default {
 
             this.cancelSelectMode();
         },
+        updateAll() {
+            console.log("updateAll");
+            console.log(this.sortedStackList);
+            for (let stack of this.sortedStackList) {
+                console.log(stack);
+                this.$root.emitAgent(stack.endpoint, "updateStack", stack.name, (res) => {
+                    this.processing = false;
+                    this.$root.toastRes(res);
+                });
+            }
+        },
     },
 };
 </script>
@@ -417,7 +434,7 @@ export default {
 }
 
 .search-input {
-    max-width: 15em;
+    max-width: 10em;
 }
 
 .stack-item {
diff --git a/frontend/src/lang/en.json b/frontend/src/lang/en.json
index 0636226..bc564c1 100644
--- a/frontend/src/lang/en.json
+++ b/frontend/src/lang/en.json
@@ -128,5 +128,6 @@
     "New Container Name...": "New Container Name...",
     "Network name...": "Network name...",
     "Select a network...": "Select a network...",
-    "NoNetworksAvailable": "No networks available. You need to add internal networks or enable external networks in the right side first."
+    "NoNetworksAvailable": "No networks available. You need to add internal networks or enable external networks in the right side first.",
+    "updateAll": "Update All"
 }