From d99ffc14885233ff3a4089091e0ddb3ebc818043 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 30 Sep 2025 20:58:11 +0000 Subject: [PATCH] Logging fixes, redeploy selection, Logo --- backend/data/stackpulse.db-shm | Bin 32768 -> 32768 bytes backend/data/stackpulse.db-wal | Bin 8272 -> 16512 bytes backend/db/migrate.js | 14 +- backend/db/redeployLogs.js | 28 ++- backend/index.js | 147 ++++++++++++- backend/public/assets/images/stackpulse.png | Bin 0 -> 75913 bytes frontend/src/App.jsx | 11 +- frontend/src/Logs.jsx | 230 ++++++++++++++------ frontend/src/Stacks.jsx | 95 +++++++- frontend/src/assets/images/stackpulse.png | Bin 0 -> 75913 bytes 10 files changed, 428 insertions(+), 97 deletions(-) create mode 100644 backend/public/assets/images/stackpulse.png create mode 100644 frontend/src/assets/images/stackpulse.png diff --git a/backend/data/stackpulse.db-shm b/backend/data/stackpulse.db-shm index 50e066a7fea23e8d411259b916f9392eb600e852..8d1973dc849c6609941d7badf8e077fa16c96cd3 100644 GIT binary patch delta 167 zcmZo@U}|V!s+V}A%K!pQK+MR%Aix5onSq$YCTmU4i+PiUt{q|UUB!J#)-Iq}cBaNn tQq=>E0t1k_|B(Pxcw#*-C&)UG^~@V5rn@pTg6Q8&%uEa{8z(ZG0|28iER6sF delta 154 zcmZo@U}|V!s+V}A%K!pQK+MR%AOND7fq3?f5|=W$y1?aggZ6I}lw#RYa!GzN=VD$` j)dP(J1CY7@kpNV9Vm&V-)5e9-t`j$iFf%d$nT%EdheRt% diff --git a/backend/data/stackpulse.db-wal b/backend/data/stackpulse.db-wal index 49052e616e63ce7734a1c4a9ccada5e498809fae..b99422626b1ad7fac4a6a9ce24e4f544fc2151b4 100644 GIT binary patch literal 16512 zcmeI&ze^io90u_Ba-a#Kr!FlVl5?=NLg4ORQj;S?JH*W)4lSjFUM{c6>Fb@`MM^{{ zb(C(M+b$ja1x|wCRtnt(3+>RMlZ*dD-!n0ZHi04p2|Sl2yc}Pi_j6>(d(Z6Kfo+od z^N^5H5?$jzzLEL;p|kUYpHqvUUq28_vG#TEG%0`i8Y>KoMM*g!%E?Hs{)z6w1px>^ z00Izz00bZa0SG_<0uX2kyc~=ZIyRx&lBt{Nl%7pdT{AKk&00E5XDj|1Ter(B+;AKg zh6}93*12EPo^OP2>3aYSWGIPeexYz5A$E#{V0&MUyG@-C(C!A>+)c zy1v(p6J?l-CxpGK8j{+EZ|asoEkmc~njN@ysaVh5VJC9l^)?yz#5SU>$k*oud%H(7 zlf|89^>cwsqFlC~H@-mt0uX=z1Rwwb2tWV=5P$##AkfDGW0L$>3L57#i`*}Vaj}~l zeSsPJ>(%e$M<1hefta!+`U1)l`T~9Y%n=;|5P$##AOHafKmY;|fItrg&==@hJ!tj? zUL@-8^$Q)|>(i&L_xiUw72UfOjraV$>I)pMGR1Pit^n&UkRTHfGsDEiFJ+ufR+KZ~<=@A^ z$e+W&p93UD!DtAKhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kgR#UT*D#KB-J zC@&qzXk=hys%v1WYh column.name === 'redeploy_type'); + if (!hasRedeployType) { + db.exec('ALTER TABLE redeploy_logs ADD COLUMN redeploy_type TEXT'); + console.log('ℹ️ redeploy_type column hinzugefügt'); + } +} catch (err) { + console.error('⚠️ Konnte redeploy_type Spalte nicht prüfen/erstellen:', err.message); +} + console.log('✅ redeploy_logs table ready'); db.close(); diff --git a/backend/db/redeployLogs.js b/backend/db/redeployLogs.js index 907b240..12ba865 100644 --- a/backend/db/redeployLogs.js +++ b/backend/db/redeployLogs.js @@ -57,6 +57,15 @@ export function buildLogFilter(queryParams = {}) { }); } + const redeployTypes = valueToArray(queryParams.redeployTypes ?? queryParams.redeployType); + if (redeployTypes.length) { + const placeholders = redeployTypes.map((_, idx) => `@redeployType${idx}`); + filters.push(`redeploy_type IN (${placeholders.join(', ')})`); + redeployTypes.forEach((entry, idx) => { + params[`redeployType${idx}`] = entry; + }); + } + const messageQuery = singleValue(queryParams.message); if (messageQuery && String(messageQuery).trim()) { filters.push('message LIKE @message'); @@ -82,18 +91,19 @@ export function buildLogFilter(queryParams = {}) { } const insertRedeployLogStmt = db.prepare(` - INSERT INTO redeploy_logs (stack_id, stack_name, status, message, endpoint) - VALUES (@stackId, @stackName, @status, @message, @endpoint) + INSERT INTO redeploy_logs (stack_id, stack_name, status, message, endpoint, redeploy_type) + VALUES (@stackId, @stackName, @status, @message, @endpoint, @redeployType) `); -export function logRedeployEvent({ stackId, stackName, status, message = null, endpoint = null }) { +export function logRedeployEvent({ stackId, stackName, status, message = null, endpoint = null, redeployType = null }) { try { insertRedeployLogStmt.run({ stackId: String(stackId), stackName: stackName ?? 'Unknown', status, message, - endpoint + endpoint, + redeployType: redeployType ?? null }); } catch (err) { console.error('❌ Fehler beim Speichern des Redeploy-Logs:', err.message); @@ -116,7 +126,7 @@ export function deleteLogsByFilters(queryParams = {}) { export function exportLogsByFilters(queryParams = {}, format = 'txt') { const { whereClause, params } = buildLogFilter(queryParams); const rows = db.prepare(` - SELECT id, timestamp, stack_id AS stackId, stack_name AS stackName, status, message, endpoint + SELECT id, timestamp, stack_id AS stackId, stack_name AS stackName, status, message, endpoint, redeploy_type AS redeployType FROM redeploy_logs ${whereClause} ORDER BY datetime(timestamp) DESC @@ -126,7 +136,7 @@ export function exportLogsByFilters(queryParams = {}, format = 'txt') { if (format === 'sql') { const statements = rows.map((row) => { - const columns = ['id', 'timestamp', 'stack_id', 'stack_name', 'status', 'message', 'endpoint']; + const columns = ['id', 'timestamp', 'stack_id', 'stack_name', 'status', 'message', 'endpoint', 'redeploy_type']; const values = [ row.id, row.timestamp, @@ -134,7 +144,8 @@ export function exportLogsByFilters(queryParams = {}, format = 'txt') { row.stackName, row.status, row.message, - row.endpoint + row.endpoint, + row.redeployType ].map((value) => { if (value === null || value === undefined) return 'NULL'; return `'${String(value).replace(/'/g, "''")}'`; @@ -156,7 +167,8 @@ export function exportLogsByFilters(queryParams = {}, format = 'txt') { `Stack: ${row.stackName ?? 'Unbekannt'} (ID: ${row.stackId})`, `Status: ${row.status}`, `Endpoint: ${row.endpoint ?? '-'}`, - `Nachricht: ${row.message ?? '-'}` + `Nachricht: ${row.message ?? '-'}`, + `Redeploy: ${row.redeployType ?? '-'}` ]; return parts.join(' | '); }); diff --git a/backend/index.js b/backend/index.js index ff6edc7..8de7754 100644 --- a/backend/index.js +++ b/backend/index.js @@ -117,7 +117,8 @@ app.get('/api/logs', (req, res) => { stack_name AS stackName, status, message, - endpoint + endpoint, + redeploy_type AS redeployType FROM redeploy_logs ${whereClause} ORDER BY datetime(timestamp) DESC @@ -224,7 +225,8 @@ app.put('/api/stacks/:id/redeploy', async (req, res) => { stackName: stack.Name, status: 'started', message: 'Redeploy gestartet', - endpoint: stack.EndpointId + endpoint: stack.EndpointId, + redeployType: 'Einzeln' }); if (stack.Type === 1) { @@ -262,7 +264,8 @@ app.put('/api/stacks/:id/redeploy', async (req, res) => { stackName: stack.Name, status: 'success', message: 'Redeploy erfolgreich abgeschlossen', - endpoint: stack.EndpointId + endpoint: stack.EndpointId, + redeployType: 'Einzeln' }); console.log(`✅ PUT /api/stacks/${id}/redeploy: Redeploy erfolgreich abgeschlossen`); res.json({ success: true, message: 'Stack redeployed' }); @@ -274,7 +277,8 @@ app.put('/api/stacks/:id/redeploy', async (req, res) => { stackName: stack?.Name || `Stack ${id}`, status: 'error', message: errorMessage, - endpoint: stack?.EndpointId || ENDPOINT_ID + endpoint: stack?.EndpointId || ENDPOINT_ID, + redeployType: 'Einzeln' }); console.error(`❌ Fehler beim Redeploy von Stack ${id}:`, errorMessage); res.status(500).json({ error: errorMessage }); @@ -292,6 +296,17 @@ app.put('/api/stacks/redeploy-all', async (req, res) => { console.log("📦 Redeploy ALL für folgende Stacks:"); filteredStacks.forEach(s => console.log(` - ${s.Name}`)); + const stackSummaryList = filteredStacks.map((stack) => `${stack.Name} (${stack.Id})`); + const stackSummary = stackSummaryList.length ? stackSummaryList.join(', ') : 'keine Stacks'; + logRedeployEvent({ + stackId: '---', + stackName: '---', + status: 'started', + message: `Redeploy ALL gestartet für: ${stackSummary}`, + endpoint: ENDPOINT_ID, + redeployType: 'Alle' + }); + filteredStacks.forEach(async (stack) => { try { broadcastRedeployStatus(stack.Id, true); @@ -299,8 +314,9 @@ app.put('/api/stacks/redeploy-all', async (req, res) => { stackId: stack.Id, stackName: stack.Name, status: 'started', - message: 'Redeploy über Redeploy ALL gestartet', - endpoint: stack.EndpointId + message: 'Redeploy ALL gestartet', + endpoint: stack.EndpointId, + redeployType: 'Alle' }); if (stack.Type === 1) { @@ -323,8 +339,9 @@ app.put('/api/stacks/redeploy-all', async (req, res) => { stackId: stack.Id, stackName: stack.Name, status: 'success', - message: 'Redeploy über Redeploy ALL abgeschlossen', - endpoint: stack.EndpointId + message: 'Redeploy ALL abgeschlossen', + endpoint: stack.EndpointId, + redeployType: 'Alle' }); console.log(`✅ Redeploy abgeschlossen: ${stack.Name}`); } catch (err) { @@ -335,7 +352,8 @@ app.put('/api/stacks/redeploy-all', async (req, res) => { stackName: stack.Name, status: 'error', message: errorMessage, - endpoint: stack.EndpointId + endpoint: stack.EndpointId, + redeployType: 'Alle' }); console.error(`❌ Fehler beim Redeploy von Stack ${stack.Name}:`, errorMessage); } @@ -344,10 +362,121 @@ app.put('/api/stacks/redeploy-all', async (req, res) => { res.json({ success: true, message: 'Redeploy ALL gestartet' }); } catch (err) { console.error(`❌ Fehler beim Redeploy ALL:`, err.message); + logRedeployEvent({ + stackId: '---', + stackName: '---', + status: 'error', + message: err.message, + endpoint: ENDPOINT_ID, + redeployType: 'Alle' + }); res.status(500).json({ error: err.message }); } }); +app.put('/api/stacks/redeploy-selection', async (req, res) => { + const { stackIds } = req.body || {}; + console.log(`🚀 PUT /api/stacks/redeploy-selection: Redeploy Auswahl gestartet (${Array.isArray(stackIds) ? stackIds.length : 0} Stacks)`); + + if (!Array.isArray(stackIds) || !stackIds.length) { + return res.status(400).json({ error: 'stackIds (array) erforderlich' }); + } + + const normalizedIds = stackIds.map((id) => String(id)); + + try { + const stacksRes = await axiosInstance.get('/api/stacks'); + const endpointStacks = stacksRes.data.filter(stack => stack.EndpointId === ENDPOINT_ID); + const selectedStacks = endpointStacks.filter((stack) => normalizedIds.includes(String(stack.Id))); + + if (!selectedStacks.length) { + return res.status(400).json({ error: 'Keine gültigen Stacks für Redeploy Auswahl gefunden' }); + } + + const missingIds = normalizedIds.filter((id) => !selectedStacks.some((stack) => String(stack.Id) === id)); + if (missingIds.length) { + return res.status(400).json({ error: `Ungültige Stack-IDs: ${missingIds.join(', ')}` }); + } + + const stackSummaryList = selectedStacks.map((stack) => `${stack.Name} (${stack.Id})`); + const stackSummary = stackSummaryList.length ? stackSummaryList.join(', ') : 'keine Stacks'; + logRedeployEvent({ + stackId: '---', + stackName: '---', + status: 'started', + message: `Redeploy Auswahl gestartet für: ${stackSummary}`, + endpoint: ENDPOINT_ID, + redeployType: 'Auswahl' + }); + + selectedStacks.forEach(async (stack) => { + try { + broadcastRedeployStatus(stack.Id, true); + logRedeployEvent({ + stackId: stack.Id, + stackName: stack.Name, + status: 'started', + message: 'Redeploy Auswahl gestartet', + endpoint: stack.EndpointId, + redeployType: 'Auswahl' + }); + + if (stack.Type === 1) { + console.log(`🔄 [Redeploy Auswahl] Git Stack "${stack.Name}" (${stack.Id})`); + await axiosInstance.put(`/api/stacks/${stack.Id}/git/redeploy?endpointId=${stack.EndpointId}`); + } else if (stack.Type === 2) { + console.log(`🔄 [Redeploy Auswahl] Compose Stack "${stack.Name}" (${stack.Id})`); + const fileRes = await axiosInstance.get(`/api/stacks/${stack.Id}/file`); + const stackFileContent = fileRes.data?.StackFileContent; + if (stackFileContent) { + await axiosInstance.put(`/api/stacks/${stack.Id}`, + { StackFileContent: stackFileContent, Prune: false, PullImage: true }, + { params: { endpointId: stack.EndpointId } } + ); + } + } + + broadcastRedeployStatus(stack.Id, false); + logRedeployEvent({ + stackId: stack.Id, + stackName: stack.Name, + status: 'success', + message: 'Redeploy Auswahl erfolgreich abgeschlossen', + endpoint: stack.EndpointId, + redeployType: 'Auswahl' + }); + console.log(`✅ Redeploy Auswahl abgeschlossen: ${stack.Name}`); + } catch (err) { + broadcastRedeployStatus(stack.Id, false); + const errorMessage = err.response?.data?.message || err.message; + logRedeployEvent({ + stackId: stack.Id, + stackName: stack.Name, + status: 'error', + message: errorMessage, + endpoint: stack.EndpointId, + redeployType: 'Auswahl' + }); + console.error(`❌ Fehler beim Redeploy Auswahl für Stack ${stack.Name}:`, errorMessage); + } + }); + + res.json({ success: true, message: 'Redeploy Auswahl gestartet' }); + } catch (err) { + const errorMessage = err.response?.data?.message || err.message; + console.error(`❌ Fehler beim Redeploy Auswahl:`, errorMessage); + logRedeployEvent({ + stackId: '---', + stackName: '---', + status: 'error', + message: errorMessage, + endpoint: ENDPOINT_ID, + redeployType: 'Auswahl' + }); + res.status(500).json({ error: errorMessage }); + } +}); + server.listen(PORT, '0.0.0.0', () => { console.log(`🚀 Backend läuft auf Port ${PORT}`); }); diff --git a/backend/public/assets/images/stackpulse.png b/backend/public/assets/images/stackpulse.png new file mode 100644 index 0000000000000000000000000000000000000000..1df7f911ed8274585387b34d2e2cc007b352c05a GIT binary patch literal 75913 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�QX+s`OJrP@AcJs+q*mA=%JrNvb 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 literal 0 HcmV?d00001 diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index c6db119..5b757af 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -2,6 +2,7 @@ import React from "react"; import { NavLink, Route, Routes } from "react-router-dom"; import Stacks from "./Stacks.jsx"; import Logs from "./Logs.jsx"; +import logo from "./assets/images/stackpulse.png"; const navLinkBase = "px-4 py-2 rounded-md font-medium transition-colors duration-150"; @@ -14,12 +15,12 @@ export default function App() {

-
-
-

StackPulse

-

Verwalte deine Docker Stacks

+
+
+ v0.2 + StackPulse
-