master
📦 StackPulse 
StackPulse ist eine kleine Web-App, die über die Portainer-API deine Docker-Stacks verwaltet und aktualisiert.
Aktuell funktioniert StackPulse nur mit der Business-Edition von Portainer. Die Communitiy-Edition wird in einem späteren Release implementiert!
Sie besteht aus einem Backend (Node.js/Express) und einem Frontend (React/Tailwind).
Ziel:
- Übersicht über alle Stacks in deiner Portainer-Instanz
- Später: Updates, Deployments und Monitoring
- Bereitstellung als Docker Image, nutzbar über docker-compose
🚀 Features & Roadmap
✅ v0.1 – Initial Release
- Projektstruktur mit Frontend & Backend
- Lokales Startskript (
scripts/start-dev.sh) - Frontend zeigt Stacks an (über Backend)
- API-Verbindung zu Portainer
- Stack Redeploy
- Bereitstellung eines Docker Images über GHCR
✅ v0.2 – Release
Backend
- Anbindung einer SQLite-Datenbank
- Logging der Redeploy-Aktionen in SQLite speichern
- API-Endpunkte für Log-Abfragen
- Funktionen für Pagination, Löschen und Export
Frontend
- Anzeige der Logs (inkl. Statusfarben)
- UI-Komponenten für Log-Details
- Filterfunktionen für die Logs
- Pagination, Lösch- und Exportanzeigen
Features
- Selektive Auswahl: einzelne Stacks oder Services neu deployen
✅ v0.3 – Release
Backend
- Automatische Datenbereinigung: Duplikate bei Stack-IDs erkennen & entfernen
- Erweiterung der Logs
- API für Filter & Suche (Stacks nach Name/Status abrufen)
Frontend
- Filter: Stacks nach Name oder Status durchsuchen
- Benachrichtigungen im UI: erfolgreicher/fehlgeschlagener Redeploy (Toast)
- Visualisierung der Datenbereinigung (Konflikt/Auto-Fix Meldungen)
Features
- Frontend-Filter für schnellere Navigation bei vielen Stacks
- Echtzeit-Feedback im UI (Notifications)
- Datenkonsistenz sichern: keine doppelten Stack-IDs mehr
✅ v0.4 – Release
Backend
- keine Änderungen
Frontend
- GUI komplett überarbeitet
- Umstellung auf Material Tailwind
- Dashboard von Creative Tim als neues Frontend
Features
- Neue, übersichtliche Oberfläche im Material Design
- leicht erweiterbar durch vorgefertigte Komponenten
- kleine Bugfixes
✅ v0.5 – Release
🛠️ Backend
- Neue API-Endpunkte für Logging, Benutzer- und Gruppenverwaltung sowie Superuser-Registrierung
- Authentifizierung und Log-In
- Erweiterte Protokollierung und Datenbank-Migration
- Präzisere Steuerung der globalen Benutzerrechte
💻 Frontend
- Neue Log-In-Seite
- Benutzer- und Gruppenverwaltung mit granularen Rechteeinstellungen
- Erweiterte Log-Ausgabe mit Filtern und Suchoptionen
- Konsolidierte und vereinheitlichte Ansichten im Dashboard
✨ Features
- Vollständiges Authentifizierungs- und Berechtigungssystem
- Erweiterte Logs in allen Bereichen
- Speicherung von Server- und Superuser-Einstellungen in der Datenbank
🟡 v0.6 – In Entwicklung
Backend
Frontend
Features
🔮 Geplante Features (v0.6+)
- Notifications (z. B. via Webhooks oder Mail)
- Monitoring (Status, CPU/RAM)
- Verbesserte UI/UX
- Erweiterte Filterungen udn Sortierungen
- Multi-Server Verwaltung
- Integration Community Edition
🗂️ Projektstruktur
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
├── Dockerfile # Multi-Stage Build für Frontend + Backend
├── docker-compose.yml
└── README.md
🔧 Lokaler Start
1. Dev-Server starten (Frontend + Backend)
./scripts/start-dev.sh
➡️ Danach:
- Frontend → http://Deine-Server-IP:5173
🐳 Docker-Setup
Mit Compose starten
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "4001:4001"
volumes:
- stackpulse_data:/app/backend/data
restart: unless-stopped
environment:
- PORTAINER_URL=Your_Portainer_Server_Adress (optional)
- PORTAINER_API_KEY=Your_Portainer_API_Key (optional)
- SUPERUSER_USERNAME=Your_Superuser_Username (optional)
- SUPERUSER_EMAIL=Your_Superuser_Email (optional)
- SUPERUSER_PASSWORD=Your_Superuser_Password (optional)
- SELF_STACK_ID=Your_StackPulse_Stack_ID (optional)
volumes:
stackpulse_data:
📋 Voraussetzungen
- Node.js >= 20
- Docker & Docker Compose
- Zugang zu einer Portainer-Instanz (API-Key erforderlich)
🤝 Mitmachen
- Repo forken
- Feature-Branch erstellen
- PR gegen
devöffnen
Description
