Deployed 9b25cb8 with MkDocs version: 1.6.1
This commit is contained in:
+557
-22
@@ -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- & Gruppenverwaltung, erweiterte Logs</li>
|
||||
<li><strong>v0.4</strong> – neues UI auf Basis des Material Tailwind Dashboards</li>
|
||||
<li><strong>v0.3</strong> – Such- & 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 & 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>
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user