Deployed 9b25cb8 with MkDocs version: 1.6.1

This commit is contained in:
2025-11-23 19:21:02 +00:00
parent 0fff01730e
commit b8e12bcdb5
15 changed files with 13425 additions and 23 deletions
+557 -22
View File
@@ -10,6 +10,8 @@
<link rel="next" href="user-guide/">
@@ -60,7 +62,7 @@
<div data-md-component="skip">
<a href="#welcome-to-mkdocs" class="md-skip">
<a href="#stackpulse" class="md-skip">
Skip to content
</a>
@@ -252,10 +254,10 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#commands" class="md-nav__link">
<a href="#warum-stackpulse" class="md-nav__link">
<span class="md-ellipsis">
Commands
Warum StackPulse?
</span>
</a>
@@ -263,10 +265,32 @@
</li>
<li class="md-nav__item">
<a href="#project-layout" class="md-nav__link">
<a href="#technische-eckdaten" class="md-nav__link">
<span class="md-ellipsis">
Project layout
Technische Eckdaten
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#release-status" class="md-nav__link">
<span class="md-ellipsis">
Release-Status
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#wie-geht-es-weiter" class="md-nav__link">
<span class="md-ellipsis">
Wie geht es weiter?
</span>
</a>
@@ -281,6 +305,450 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-ellipsis">
Benutzerhandbuch
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Benutzerhandbuch
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="user-guide/" class="md-nav__link">
<span class="md-ellipsis">
Überblick
</span>
</a>
</li>
<li class="md-nav__item">
<a href="user-guide/setup/" class="md-nav__link">
<span class="md-ellipsis">
Setup
</span>
</a>
</li>
<li class="md-nav__item">
<a href="user-guide/stacks/" class="md-nav__link">
<span class="md-ellipsis">
Stacks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="user-guide/logs/" class="md-nav__link">
<span class="md-ellipsis">
Logs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="user-guide/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Wartung
</span>
</a>
</li>
<li class="md-nav__item">
<a href="user-guide/users/" class="md-nav__link">
<span class="md-ellipsis">
Benutzer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="user-guide/groups/" class="md-nav__link">
<span class="md-ellipsis">
Benutzergruppen & Rechte
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
Technik
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Technik
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="architecture/" class="md-nav__link">
<span class="md-ellipsis">
Architektur
</span>
</a>
</li>
<li class="md-nav__item">
<a href="backend/" class="md-nav__link">
<span class="md-ellipsis">
Backend & API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="frontend/" class="md-nav__link">
<span class="md-ellipsis">
Frontend
</span>
</a>
</li>
<li class="md-nav__item">
<a href="operations/" class="md-nav__link">
<span class="md-ellipsis">
Operations & Wartung
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
@@ -308,10 +776,10 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#commands" class="md-nav__link">
<a href="#warum-stackpulse" class="md-nav__link">
<span class="md-ellipsis">
Commands
Warum StackPulse?
</span>
</a>
@@ -319,10 +787,32 @@
</li>
<li class="md-nav__item">
<a href="#project-layout" class="md-nav__link">
<a href="#technische-eckdaten" class="md-nav__link">
<span class="md-ellipsis">
Project layout
Technische Eckdaten
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#release-status" class="md-nav__link">
<span class="md-ellipsis">
Release-Status
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#wie-geht-es-weiter" class="md-nav__link">
<span class="md-ellipsis">
Wie geht es weiter?
</span>
</a>
@@ -346,21 +836,66 @@
<h1 id="welcome-to-mkdocs">Welcome to MkDocs</h1>
<p>For full documentation visit <a href="https://www.mkdocs.org">mkdocs.org</a>.</p>
<h2 id="commands">Commands</h2>
<h1 id="stackpulse">StackPulse</h1>
<p>StackPulse ist eine eigenständige Web-Anwendung, die die Portainer Business Edition über deren API steuert und dadurch Redeploys, Wartungsskripte sowie das Berechtigungs- und Logging-Konzept zentralisiert. Die Lösung besteht aus einem Node.js/Express Backend, einem React-Frontend auf Basis von Material Tailwind sowie einer eingebetteten SQLite-Datenbank, die ohne zusätzliche Infrastruktur betrieben werden kann.</p>
<h2 id="warum-stackpulse">Warum StackPulse?</h2>
<ul>
<li><code>mkdocs new [dir-name]</code> - Create a new project.</li>
<li><code>mkdocs serve</code> - Start the live-reloading docs server.</li>
<li><code>mkdocs build</code> - Build the documentation site.</li>
<li><code>mkdocs -h</code> - Print help message and exit.</li>
<li><strong>Schneller Überblick</strong> über sämtliche Stacks einer Portainer-Instanz inkl. Status, Filter und Suche</li>
<li><strong>Redeploy-Orchestrierung</strong> aus einem UI heraus einzelne Stacks, Auswahlen oder komplette Umgebungen</li>
<li><strong>Auditierbare Historie</strong> durch strukturierte Event-Logs mit Export-, Lösch- und Filterfunktionen</li>
<li><strong>Feingranulare Rechteverwaltung</strong> mit Gruppenrechten, Superuser-Handling und Sicherheitsphrasen</li>
<li><strong>Wartungsautomatisierung</strong> (SSH Update-Skripte, Maintenance-Mode) ohne direkten Portainer-Zugang</li>
<li><strong>Bereitstellung als Docker-Image</strong> sowie als lokale Dev-Umgebung via <code>scripts/start-dev.sh</code></li>
</ul>
<h2 id="technische-eckdaten">Technische Eckdaten</h2>
<table>
<thead>
<tr>
<th>Baustein</th>
<th>Technologie</th>
<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td>Backend</td>
<td>Node.js 20, Express, Axios, Socket.IO, better-sqlite3</td>
<td>Stellt REST-API, Authentifizierung, Rechte, Logging, Redeploy-Queue und Portainer-Proxy bereit.</td>
</tr>
<tr>
<td>Datenhaltung</td>
<td>SQLite (Datei <code>backend/data/stackpulse.db</code>)</td>
<td>Persistente Speicherung von Benutzern, Gruppen, Servern, API-Keys, Logs und Einstellungen.</td>
</tr>
<tr>
<td>Frontend</td>
<td>React 18, Vite, Material Tailwind Dashboard</td>
<td>Dashboard mit Auth-Flow, Stacks, Logs, Benutzer- und Wartungsansichten.</td>
</tr>
<tr>
<td>Container</td>
<td>Dockerfile + Compose</td>
<td>Multi-Stage Build für Frontend + Backend, Datenvolumen für SQLite.</td>
</tr>
</tbody>
</table>
<h2 id="release-status">Release-Status</h2>
<ul>
<li><strong>v0.5 (aktuell)</strong> vollständiges Auth/Berechtigungssystem, Benutzer- &amp; Gruppenverwaltung, erweiterte Logs</li>
<li><strong>v0.4</strong> neues UI auf Basis des Material Tailwind Dashboards</li>
<li><strong>v0.3</strong> Such- &amp; Filterfunktionen, Konfliktbehandlung für Stack-IDs, UI-Benachrichtigungen</li>
<li><strong>v0.2</strong> SQLite-Logging inkl. Export/Pagination, Redeploy-Selektor</li>
<li><strong>v0.1</strong> Grundstruktur, API-Anbindung, erstes Redeploy</li>
</ul>
<p>Weitere geplante Features (Notifications, Monitoring, Multi-Server, Portainer CE) findest du in der <a href="../README.md">Roadmap im README</a>.</p>
<h2 id="wie-geht-es-weiter">Wie geht es weiter?</h2>
<ul>
<li><a href="getting-started/">Getting Started</a> erläutert Installation, Konfiguration und erste Schritte.</li>
<li><a href="architecture/">Architektur</a> beschreibt Aufbau, Verzeichnisse und Datenflüsse.</li>
<li><a href="backend/">Backend</a> fasst API, Datenbank und Sicherheitsschichten zusammen.</li>
<li><a href="frontend/">Frontend</a> dokumentiert Layout, Routen und Komponenten.</li>
<li><a href="operations/">Operations &amp; Wartung</a> enthält Betriebshinweise und Troubleshooting.</li>
</ul>
<h2 id="project-layout">Project layout</h2>
<pre><code>mkdocs.yml # The configuration file.
docs/
index.md # The documentation homepage.
... # Other markdown pages, images and other files.
</code></pre>