diff --git a/README.md b/README.md
index a78bb32..afb5aab 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# 📦 StackPulse
+# 📦 StackPulse 
**StackPulse** ist eine kleine Web-App, die über die Portainer-API deine Docker-Stacks verwaltet und aktualisiert.
Sie besteht aus einem **Backend (Node.js/Express)** und einem **Frontend (React/Tailwind)**.
@@ -25,7 +25,7 @@ Ziel:
- ^|^e v0.2.0 – In Entwicklung
+ ✅ v0.2.0 – Release
### Backend
- [x] Anbindung einer SQLite-Datenbank
@@ -54,7 +54,6 @@ Ziel:
-
---
## 🗂️ Projektstruktur
@@ -62,6 +61,8 @@ Ziel:
```bash
stackpulse/
├── backend/ # Node.js Backend mit Express
+│ └── data # SQlite Datenbank
+│ └── db # Datenbank-Integration
├── frontend/ # React Frontend mit Tailwind
├── scripts/ # Lokale Hilfsskripte (nicht Teil des Images)
│ └── start-dev.sh #Skript für den lokalen Start
@@ -99,9 +100,21 @@ services:
- PORTAINER_URL=Deine_Portainer_Adresse/
- PORTAINER_API_KEY=Dein_Portainer_API_Key
- PORTAINER_ENDPOINT_ID=Deine_Portainer_Endpoint_ID
- - STACK_SELF_ID=ID_deiner_stackpulse_ID
+ - SELF_STACK_ID=ID_deiner_stackpulse_ID
```
+Die PORTAINER_ENDPOINT_ID erhältst du, wenn du die die URL im Browser ansiehst, wenn du das Dashboard in Portainer öffnest:
+
+
+
+Die 3 wäre in diesem Fall Endpoint-ID.
+
+Die STACK_SELF_ID findest du, wenn du das Frontend von StackPulse öffnest:
+
+
+
+Diese ID kann erst nach dem Deploy von Stackpulse ausgelesen werden. Vergiss daher nicht, nach dem Hinterlegen der ID in den Variablen das Stack noch einmal zu redeployen!
+
---
## 📋 Voraussetzungen
diff --git a/assets/images/ENDPOINT_ID.png b/assets/images/ENDPOINT_ID.png
new file mode 100644
index 0000000..fea20e6
Binary files /dev/null and b/assets/images/ENDPOINT_ID.png differ
diff --git a/assets/images/SELF_STACK_ID.png b/assets/images/SELF_STACK_ID.png
new file mode 100644
index 0000000..24978de
Binary files /dev/null and b/assets/images/SELF_STACK_ID.png differ
diff --git a/frontend/src/Stacks.jsx b/frontend/src/Stacks.jsx
index d96e3fe..ff7f9f6 100644
--- a/frontend/src/Stacks.jsx
+++ b/frontend/src/Stacks.jsx
@@ -17,7 +17,8 @@ export default function Stacks() {
return {
...stack,
redeploying: previous?.redeploying || stack.redeploying || false,
- redeployDisabled: stack.redeployDisabled ?? previous?.redeployDisabled ?? false
+ redeployDisabled: stack.redeployDisabled ?? previous?.redeployDisabled ?? false,
+ duplicateName: stack.duplicateName ?? previous?.duplicateName ?? false
};
});
};
@@ -94,9 +95,6 @@ export default function Stacks() {
};
const handleRedeploy = async (stackId) => {
- const targetStack = stacks.find((stack) => stack.Id === stackId);
- if (targetStack?.redeployDisabled) return;
-
setSelectedStackIds((prev) => prev.filter((id) => id !== stackId));
setStacks((prev) =>
prev.map((stack) =>
@@ -254,6 +252,9 @@ export default function Stacks() {
{stack.Name}
ID: {stack.Id}
+ {stack.duplicateName && (
+
⚠️ Doppelter Name erkannt
+ )}
@@ -275,8 +276,6 @@ export default function Stacks() {
>
) : (
<>
- Status
- Veraltet