diff --git a/backend/.env.example b/backend/.env.example index 89d93ec..097ab98 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -1,4 +1,3 @@ -PORTAINER_URL=your_portainer_url_here -PORTAINER_API_KEY=your_api_key_here -PORTAINER_ENDPOINT_ID=Enpoint_ID_from_Portainer - +PORTAINER_URL=Your_Portainer_Server_Adress +PORTAINER_API_KEY=Your_Portainer_API_Key +PORTAINER_ENDPOINT_ID=Your_Portainer_Endpoint_ID diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml deleted file mode 100644 index 4166e72..0000000 --- a/docker-compose.dev.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: '3.8' -services: - app: - build: - context: . - dockerfile: Dockerfile - ports: - - "4001:4001" # Host 5173 → Container 5173 - environment: - PORTAINER_URL: "https://10.10.10.21:9443/" - PORTAINER_API_KEY: "ptr_ce3Wufxf+EKpqxc5ebcQjBkUMUoJmMpY3wGIvkgdxV0=" - ENDPOINT_ID: "1" - restart: unless-stopped diff --git a/docker-compose.yml b/docker-compose.yml index 4b6b0c2..0110094 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,9 +5,9 @@ services: context: . dockerfile: Dockerfile ports: - - "4000:4000" + - "4001:4001" environment: - PORT: 4000 - PORTAINER_URL: "https://your-portainer.example.com" - PORTAINER_API_KEY: "your_api_key_here" + PORTAINER_URL: "Your_Portainer_Server_Address" + PORTAINER_API_KEY: "Your_Portainer_API_Key" + PORTAINER_ENDPOINT_ID: "Your_Portainer_Endpoint_ID" restart: unless-stopped diff --git a/frontend/src/Stacks.jsx.bak b/frontend/src/Stacks.jsx.bak deleted file mode 100644 index e890c62..0000000 --- a/frontend/src/Stacks.jsx.bak +++ /dev/null @@ -1,112 +0,0 @@ -import React, { useEffect, useState } from "react"; -import axios from "axios"; -import { io } from "socket.io-client"; - -export default function Stacks() { - const [stacks, setStacks] = useState([]); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(""); - - // Socket.IO initialisieren (Proxy leitet /socket.io an Backend) - useEffect(() => { - const socket = io("/", { transports: ["websocket"] }); - console.log("🔌 Socket connected"); - - socket.on("redeployStatus", ({ stackId, status }) => { - console.log(`🔄 Stack ${stackId} Redeploy Status: ${status ? "running" : "finished"}`); - setStacks(prevStacks => - prevStacks.map(stack => - stack.Id === stackId - ? { ...stack, redeploying: status, updateStatus: status ? stack.updateStatus : "✅" } - : stack - ) - ); - }); - - return () => socket.disconnect(); - }, []); - - // Stacks initial laden - const fetchStacks = async () => { - setLoading(true); - try { - const res = await axios.get("/api/stacks"); - setStacks( - res.data - .sort((a, b) => a.Name.localeCompare(b.Name)) - .map(stack => ({ ...stack, redeploying: stack.redeploying || false })) - ); - } catch (err) { - console.error("❌ Fehler beim Abrufen der Stacks:", err); - setError("Fehler beim Laden der Stacks"); - } finally { - setLoading(false); - } - }; - - useEffect(() => { - fetchStacks(); - }, []); - - // Redeploy starten - const handleRedeploy = async (stackId) => { - // Sofort UI auf redeploying setzen - setStacks(prev => - prev.map(stack => stack.Id === stackId ? { ...stack, redeploying: true } : stack) - ); - - try { - await axios.put(`/api/stacks/${stackId}/redeploy`); - // Backend sendet Socket-Event → UI aktualisiert automatisch - } catch (err) { - console.error("❌ Fehler beim Redeploy:", err); - setStacks(prev => - prev.map(stack => stack.Id === stackId ? { ...stack, redeploying: false } : stack) - ); - } - }; - - if (loading) return
Lade Stacks...
; - if (error) return{error}
; - - return ( -{stack.Name}
-ID: {stack.Id}
-Keine Stacks gefunden.
} -