Add Create Container UI and Templates (Unraid XML) feature
Lets users create containers from the WebUI (image/name/ports/volumes/ env/network mode/restart policy/privileged) instead of only managing existing ones, and adds a Templates panel to save/reuse those configs as Unraid-Docker-compatible template XML, including browsing and importing the host's own existing Docker Manager templates directly. Also fixes bugs found via live testing along the way: container names with spaces/invalid characters now get a clear client- and server-side error with a suggested fix instead of podman's raw API error, the New Container modal's backdrop no longer renders transparent (was being appended outside the .podman-plugin CSS scope), and modal buttons now have real visual hierarchy (ghost/primary/danger) after Unraid's own site-wide button theme was found to override plain single-class rules. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,354 @@
|
||||
# Unraid Podman Plugin – Anforderungen an die WebUI
|
||||
|
||||
Du bist ein Senior UX Designer und Senior Full-Stack Entwickler mit Erfahrung in Unraid, Podman und Self-Hosting.
|
||||
|
||||
Entwirf eine moderne, performante und vollständig in Unraid integrierte WebUI für ein natives Podman-Plugin.
|
||||
|
||||
Die Oberfläche soll sich optisch und funktional wie ein offizieller Bestandteil von Unraid anfühlen und keine Fremdanwendung darstellen.
|
||||
|
||||
## Ziel
|
||||
|
||||
Die WebUI soll alle Funktionen bieten, die Administratoren für die Verwaltung von Podman benötigen, ohne auf die Kommandozeile angewiesen zu sein.
|
||||
|
||||
Die Bedienung soll sowohl für Einsteiger als auch für erfahrene Nutzer geeignet sein.
|
||||
|
||||
---
|
||||
|
||||
# Allgemeine Anforderungen
|
||||
|
||||
* Responsives Design
|
||||
* Dark-Mode kompatibel
|
||||
* Passend zum Unraid-Design
|
||||
* Sehr schnelle Ladezeiten
|
||||
* Modular aufgebaut
|
||||
* Erweiterbar
|
||||
* AJAX/WebSocket statt kompletter Seitenreloads
|
||||
* Suchfunktion auf allen Listen
|
||||
* Sortierung aller Tabellen
|
||||
* Filtermöglichkeiten
|
||||
* Mehrfachauswahl
|
||||
* Kontextmenüs
|
||||
* Bestätigungsdialoge
|
||||
* Benachrichtigungen (Success, Warning, Error)
|
||||
* Ladeanimationen
|
||||
* Fortschrittsanzeigen
|
||||
* Automatische Aktualisierung wichtiger Statusinformationen
|
||||
* Mehrsprachigkeit vorbereiten
|
||||
|
||||
---
|
||||
|
||||
# Dashboard
|
||||
|
||||
Das Dashboard soll auf einen Blick den Zustand der gesamten Podman-Umgebung zeigen.
|
||||
|
||||
Anzeigen:
|
||||
|
||||
* Anzahl Container
|
||||
* Laufende Container
|
||||
* Gestoppte Container
|
||||
* Pods
|
||||
* Images
|
||||
* Netzwerke
|
||||
* Volumes
|
||||
* CPU-Auslastung
|
||||
* RAM-Auslastung
|
||||
* Storage-Auslastung
|
||||
* Schreib-/Lese-I/O
|
||||
* Netzwerkdurchsatz
|
||||
* Podman-Version
|
||||
* Conmon-Version
|
||||
* crun-Version
|
||||
* Netavark-Version
|
||||
* Plugin-Version
|
||||
|
||||
Zusätzlich:
|
||||
|
||||
* Letzte Ereignisse
|
||||
* Fehler
|
||||
* Warnungen
|
||||
* Updates verfügbar
|
||||
* Container mit Problemen
|
||||
* Container ohne Healthcheck
|
||||
* Nicht verwendete Images
|
||||
* Nicht verwendete Volumes
|
||||
* Nicht verwendete Netzwerke
|
||||
|
||||
---
|
||||
|
||||
# Containerverwaltung
|
||||
|
||||
Für jeden Container:
|
||||
|
||||
* Start
|
||||
* Stop
|
||||
* Restart
|
||||
* Pause
|
||||
* Resume
|
||||
* Kill
|
||||
* Löschen
|
||||
* Umbenennen
|
||||
* Duplizieren
|
||||
* Exportieren
|
||||
* Commit als Image
|
||||
* Snapshot (falls unterstützt)
|
||||
|
||||
Informationen:
|
||||
|
||||
* Name
|
||||
* Image
|
||||
* Status
|
||||
* Uptime
|
||||
* CPU
|
||||
* RAM
|
||||
* PID
|
||||
* IP-Adresse
|
||||
* Netzwerk
|
||||
* Ports
|
||||
* Volumes
|
||||
* Labels
|
||||
* Environment
|
||||
* Health Status
|
||||
* Restart Policy
|
||||
|
||||
Tabs:
|
||||
|
||||
* Übersicht
|
||||
* Logs
|
||||
* Konsole (TTY)
|
||||
* Ressourcen
|
||||
* Netzwerke
|
||||
* Volumes
|
||||
* Environment
|
||||
* Mounts
|
||||
* Labels
|
||||
* Events
|
||||
* Inspect (JSON)
|
||||
* Healthcheck-Verlauf
|
||||
|
||||
---
|
||||
|
||||
# Pod-Verwaltung
|
||||
|
||||
* Pod erstellen
|
||||
* Pod löschen
|
||||
* Container hinzufügen
|
||||
* Container entfernen
|
||||
* Pod starten
|
||||
* Pod stoppen
|
||||
* Neustarten
|
||||
* Logs
|
||||
* Portübersicht
|
||||
* Netzwerkübersicht
|
||||
|
||||
---
|
||||
|
||||
# Image-Verwaltung
|
||||
|
||||
* Images anzeigen
|
||||
* Pull
|
||||
* Push
|
||||
* Taggen
|
||||
* Löschen
|
||||
* Prune
|
||||
* Registry auswählen
|
||||
* Größe anzeigen
|
||||
* Erstellungsdatum
|
||||
* Layer anzeigen
|
||||
* Historie anzeigen
|
||||
* Sicherheitsinformationen (wenn verfügbar)
|
||||
|
||||
---
|
||||
|
||||
# Registry-Unterstützung
|
||||
|
||||
Unterstützung für:
|
||||
|
||||
* Docker Hub
|
||||
* GitHub Container Registry
|
||||
* Quay.io
|
||||
* GitLab Registry
|
||||
* Harbor
|
||||
* Eigene Registries
|
||||
|
||||
Funktionen:
|
||||
|
||||
* Login
|
||||
* Logout
|
||||
* Zugangsdaten speichern
|
||||
* TLS-Konfiguration
|
||||
* Unsichere Registry optional aktivieren
|
||||
|
||||
---
|
||||
|
||||
# Netzwerke
|
||||
|
||||
* Netzwerke erstellen
|
||||
* Löschen
|
||||
* Bearbeiten
|
||||
* Verbundene Container anzeigen
|
||||
* Treiber anzeigen
|
||||
* Subnetz
|
||||
* Gateway
|
||||
* DNS
|
||||
* MTU
|
||||
* VLAN (falls unterstützt)
|
||||
|
||||
---
|
||||
|
||||
# Volumes
|
||||
|
||||
* Erstellen
|
||||
* Löschen
|
||||
* Mountpunkte anzeigen
|
||||
* Speicherverbrauch
|
||||
* Zugeordnete Container
|
||||
* Backup starten
|
||||
* Wiederherstellen
|
||||
* Exportieren
|
||||
|
||||
---
|
||||
|
||||
# Compose-Unterstützung
|
||||
|
||||
Unterstützung für:
|
||||
|
||||
* podman compose
|
||||
|
||||
Funktionen:
|
||||
|
||||
* Compose-Datei importieren
|
||||
* Stack erstellen
|
||||
* Start
|
||||
* Stop
|
||||
* Neustart
|
||||
* Logs
|
||||
* Bearbeiten
|
||||
* Aktualisieren
|
||||
* Löschen
|
||||
* YAML-Editor mit Syntax-Highlighting
|
||||
* Validierung vor dem Speichern
|
||||
|
||||
---
|
||||
|
||||
# Template-Unterstützung
|
||||
|
||||
Kompatibilität mit Unraid-Templates.
|
||||
|
||||
Unterstützung für:
|
||||
|
||||
* XML importieren
|
||||
* XML exportieren
|
||||
* Template erstellen
|
||||
* Template bearbeiten
|
||||
* Icons
|
||||
* Kategorien
|
||||
* Repository-Links
|
||||
|
||||
---
|
||||
|
||||
# Container-Erstellung
|
||||
|
||||
Wizard mit mehreren Schritten:
|
||||
|
||||
* Name
|
||||
* Image auswählen
|
||||
* Registry auswählen
|
||||
* Ports
|
||||
* Volumes
|
||||
* Environment
|
||||
* Labels
|
||||
* Geräte
|
||||
* GPU
|
||||
* USB
|
||||
* Netzwerk
|
||||
* Ressourcen
|
||||
* Healthcheck
|
||||
* Restart Policy
|
||||
* Zusammenfassung
|
||||
* Validierung
|
||||
* Container erzeugen
|
||||
|
||||
---
|
||||
|
||||
# Logs
|
||||
|
||||
* Live-Logs
|
||||
* Suchfunktion
|
||||
* Filter
|
||||
* Zeitfilter
|
||||
* Auto-Scroll
|
||||
* Download
|
||||
* Kopieren
|
||||
* ANSI-Farben korrekt darstellen
|
||||
|
||||
---
|
||||
|
||||
# Konsole
|
||||
|
||||
Browser-Terminal mit:
|
||||
|
||||
* Vollbildmodus
|
||||
* Kopieren/Einfügen
|
||||
* Mehrere Sitzungen
|
||||
* Größenanpassung
|
||||
* UTF-8-Unterstützung
|
||||
|
||||
---
|
||||
|
||||
# Ressourcenverwaltung
|
||||
|
||||
Container-Limits bearbeiten:
|
||||
|
||||
* CPU
|
||||
* RAM
|
||||
* Swap
|
||||
* PIDs
|
||||
* Block-I/O
|
||||
* Geräte
|
||||
* HugePages (falls unterstützt)
|
||||
|
||||
Visualisierung:
|
||||
|
||||
* CPU
|
||||
* RAM
|
||||
* Netzwerk
|
||||
* Festplatten-I/O
|
||||
|
||||
---
|
||||
|
||||
# Ereignisse
|
||||
|
||||
Live-Event-Ansicht:
|
||||
|
||||
* Container gestartet
|
||||
* Container gestoppt
|
||||
* Image geladen
|
||||
* Fehler
|
||||
* Netzwerkänderungen
|
||||
* Volumeänderungen
|
||||
|
||||
Filter nach:
|
||||
|
||||
* Container
|
||||
* Typ
|
||||
* Zeitraum
|
||||
* Schweregrad
|
||||
|
||||
---
|
||||
|
||||
# Einstellungen
|
||||
|
||||
Plugin-Einstellungen:
|
||||
|
||||
* Storage-Pfad
|
||||
* API
|
||||
* Socket
|
||||
* Registry-Einstellungen
|
||||
* Standardnetzwerk
|
||||
* Standard-Runtime
|
||||
* Logging
|
||||
* Autostart
|
||||
* Updates
|
||||
* Debugmodus
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user