Repository navigation
Nodvard Deck 0.10.0
·
6 commits
to main
since this release
Kurz gesagt: Docker kann jetzt Stacks: anlegen, als Text oder Formular bearbeiten, als Ganzes aktualisieren mit automatischem Rückweg und Volume-Sicherung, Stacks aus Portainer übernehmen. Dazu Synology DSM als Beta, Server getrennt nach physisch, VM und LXC, eine aufgeräumte Startseite und mehrere Korrekturen in Nodvard Shield.
Aktualisieren: in Deck unter Einstellungen bei „Updates“ auf „Jetzt aktualisieren“, oder mit docker compose pull && docker compose up -d.
Neu
Docker-Stacks
- Neuer Reiter „Stacks“: Er zeigt alle Gruppen von Containern, die zusammen aus einer Compose-Datei laufen, auch die von Hand oder mit Portainer angelegten, mit Zustand und Verbrauch. Die Compose-Datei lässt sich ansehen, und es steht dabei, wenn sie geändert, aber noch nicht angewendet wurde. Bei „Datei ansehen“ stehen auch die Namen der Variablen aus der .env, die Werte nicht, weil darin oft Passwörter stehen.
- Vorhandene Stacks lassen sich übernehmen. Deck prüft vorher, ob die Compose-Datei lesbar ist, und nennt sonst den Grund; am Server ändert sich dabei nichts. Ein übernommener Stack bleibt in der Liste, auch wenn gerade keiner seiner Container existiert.
- Übernommene Stacks lassen sich anwenden, stoppen, herunterfahren und ihre Images neu holen, jeweils mit Freigabe. Nach dem Anwenden prüft Deck, ob alle Dienste laufen.
- Die Compose-Datei lässt sich direkt in Deck bearbeiten, als Text oder als Formular (Image, Ports, Ordner, Umgebungsvariablen, Neustart-Regel je Dienst). Compose prüft sie vor dem Speichern, der Editor zeigt Zeile für Zeile, was sich ändert, gespeichert wird nur mit Freigabe, und die letzten 20 Fassungen bleiben im Verlauf. Riskante Einstellungen (volle Rechte, Netz des Servers, Systemordner, Zugriff auf Docker selbst) nennt Deck vorher; kommt so eine neu dazu, braucht die Freigabe die hohe Stufe.
- Neue Stacks lassen sich anlegen, aus einem Beispiel, eingefügtem Text, einer hochgeladenen Datei oder einer Vorlage (Uptime Kuma, Vaultwarden, Nginx Proxy Manager, Gitea, jede mit fester Version). Deck legt dafür nach der Freigabe einen eigenen Ordner an (Vorgabe /opt/stacks, je Server änderbar) und überschreibt nie einen bestehenden.
- Stacks lassen sich als Ganzes aktualisieren: Deck holt die neuen Images, behält die alten als Sicherung und prüft danach, ob die neue Version läuft; startet ein Dienst nicht, geht es von selbst zurück, außer bei Datenbanken. Auf Wunsch sichert Deck vorher die Volumes. „Zurück zur vorigen Version“ setzt die Dienste auf die Images vor dem letzten Update zurück, solange die Sicherung noch passt.
- Übernommene Stacks lassen sich löschen. Deck fährt sie herunter (die Volumes bleiben); den Ordner löscht es nur, wenn du das ausdrücklich anhakst und nichts dagegen spricht.
- Stacks aus Portainer lassen sich übernehmen: Deck holt Datei und Variablen in einen eigenen Ordner und rollt den Stack dort unter demselben Namen neu aus, die Volumes mit den Daten bleiben. Passt etwas nicht, zieht Deck nicht um und nennt den Grund.
- Ein Container, der ohne Compose gestartet wurde, lässt sich in einen Stack umwandeln. Deck zeigt die erzeugte Compose-Datei vorher, startet daraus neu und startet den alten wieder, wenn der neue nicht läuft. Was Deck nicht sicher übersetzen kann, nennt es, statt es wegzulassen.
- Logs lassen sich auf einen Zeitraum begrenzen, durchsuchen und als Textdatei herunterladen. Die Container-Liste lässt sich nach Server, Stack und Zustand filtern und zeigt, wie oft Docker einen Container von selbst neu starten musste; sind es drei oder mehr und liegt der letzte keine Stunde zurück, zählt er zu „Mit Problemen“.
Synology DSM (Beta, nur lesend)
- Neues Modul: Modell, DSM-Version, Auslastung, Volumes, Speicherpools, Festplatten, Updates und die Sicherungen aus Hyper Backup (letzter Lauf, Ergebnis, nächster Lauf), auf einer Seite und in drei Kacheln.
- Es meldet sich von selbst, wenn ein Speicherpool, eine Festplatte, die Temperatur oder eine Sicherung nicht stimmt; ein neues DSM-Update kommt als ruhiger Hinweis.
- Am besten legst du in DSM ein eigenes Konto ohne Zwei-Faktor für Deck an; für Speicher und Updates muss es in der Gruppe „administrators“ sein. Das Passwort liegt im Tresor.
Übersicht und Server
- Server sind nach Art getrennt: physische Server, virtuelle Maschinen und LXC-Container stehen in eigenen Gruppen, jede mit einer Plakette wie „LXC auf pve1“.
- Eine in Proxmox gelöschte VM oder ein gelöschter LXC steht nicht mehr stumm in der Liste: Deck zeigt „nicht mehr vorhanden“ und bietet an, den Eintrag mit einem Klick zu entfernen.
- Die Übersicht zeigt dezent, wenn ein Server neu eingerichtet werden sollte, damit Nodvard Shield und Server-Zustand dort mit engen Rechten laufen. Der Hinweis führt direkt zur Einrichtung und lässt sich je Server wegklicken.
- Unter „Über Nodvard Deck“ gibt es den Abschnitt „Community und Credits“ mit Discord, GitHub und den Lizenzen der verwendeten Bibliotheken.
Für Entwickler von Erweiterungen
- Befehle an einen Server lassen sich als Liste übergeben. Deck setzt die Befehlszeile dann selbst zusammen, ein Wert wird nie zu Shell-Syntax.
Sicherheit
- App-Kacheln, Suche, Widgets und Modulseiten öffnen nur noch echte Webadressen. Eine manipulierte Adresse aus einem Modul kann so kein Skript im Dashboard starten.
- Docker: Ist eine .env-Datei kaputt, zitiert Docker Compose in seiner Fehlermeldung oft einen Teil der Datei, und das kann ein Passwort sein. Deck nennt davon nur noch Datei und Grund, auch in Aktionen, Meldungen und Protokoll; Namen nicht gesetzter Variablen zeigt es aus demselben Grund nicht mehr.
Verbessert
- Widgets auf der Übersicht sind so hoch wie ihr Inhalt; lange Listen enden sauber mit „+ x weitere“. Ein Klick auf den Kopf öffnet die Seite des Moduls, verschoben wird am Griff daneben. Widgets nicht eingerichteter Module verschwinden von der Übersicht und stehen unter „Widgets verwalten“ mit einem Link zum Einrichten. Die Widgets sind ruhiger: Symbole grau, „alles gut“ nur als grüner Punkt; die Vorfälle-Kachel zeigt nur offene und vorgeschlagene Vorfälle.
- Die Übersicht zählt die physischen Server und nennt VMs und LXC dahinter, etwa „3/3 + 4 VMs · 5 LXC“.
- Docker: Läuft Docker in einem LXC oder einer VM, steht das beim Server, samt Grenze für CPU und Arbeitsspeicher. An einem Stack läuft immer nur eine Änderung zur Zeit; wer dazwischen kommt, erfährt, was gerade läuft.
- Synology DSM läuft mit älteren und neueren DSM-Versionen und lässt sich auf das Zertifikat deiner Synology festlegen.
- Richtet Deck einen Server mit Passwort ein, schlägt der Datei-Wächter von Nodvard Shield deswegen keinen Alarm mehr; er übernimmt genau das, was die Einrichtung gemeldet hat, und meldet alles andere weiter.
- Passt bei einer Aktion auf der Server-Seite eine Angabe nicht, sagt Deck das sofort und verständlich, statt die Aktion erst fehlschlagen zu lassen.
- „Verbindung prüfen“ weist darauf hin, wenn ein Hilfsskript fehlt, obwohl Root-Rechte eingerichtet sind, und die Einrichtung nennt den Grund. Warnungen über unbekannte Einträge in den Benutzer-Einstellungen des Servers erscheinen nicht mehr.
- Die Terminal-Seite erklärt den Unterschied zwischen Terminal und Konsole und blendet die Knöpfe nicht erreichbarer Server ab.
- Übernimmt ein Modul Tresor-Einträge eines alten Moduls und darf einige davon nicht lesen, nennt das Protokoll nur noch ihre Anzahl, nicht ihre Namen.
- Die Installationsanleitung beschreibt viele weitere Wege Schritt für Schritt: einen einzelnen Docker-Befehl, Podman, Dockge, Synology, UGREEN, QNAP, Unraid, TrueNAS, OpenMediaVault, ZimaOS/CasaOS, Proxmox und Docker Desktop.
Behoben
- Eine in Proxmox ausgeschaltete VM oder ein ausgeschalteter LXC steht grau als „aus“ da und gilt nicht mehr als Störung.
- Bei halber Bildschirmbreite läuft keine Seite mehr seitlich aus dem Fenster; die Übersicht stapelt ihre Kacheln dann in zwei Spalten.
- Auf der Apps-Seite stehen erkannte Dienste nicht mehr zusätzlich unter „Vorschläge“, du übernimmst sie direkt an ihrer Kachel. Pi-hole, Nginx Proxy Manager, Nextcloud, Uptime Kuma, Jellyfin, Plex, qBittorrent, Home Assistant und Vaultwarden funktionieren auch mit einer aus dem Browser kopierten Unterseite wie /dashboard in der Adresse.
- Docker: Eine abgerissene Verbindung gilt nicht mehr als fehlende Datei oder freier Ordner, fehlende Rechte nennt Deck schon beim Prüfen. Das Image-Update erkennt auch mit aktuellem Docker Compose Variablen ohne Wert und bricht dann vorher ab. Wird ein Stack-Update während der Sicherung abgebrochen, bleibt kein leerer Sicherungsordner zurück.
- Synology DSM (Beta): Die Entwarnung zu einem Speicherpool oder Volume kommt erst, wenn es wieder „Normal“ ist, auch bei einem unbekannten Zustand. Während ein Pool repariert wird, meldet sein Volume nichts doppelt, und viele Hyper-Backup-Aufgaben halten die Seite nicht mehr auf.
- Nodvard Shield, Updates: Automatische Updates starten einen Server nicht mehr neu, wenn das letzte Update dort fehlgeschlagen ist, abgebrochen wurde oder noch läuft. Die Zusammenfassung sagt dann, dass der Neustart ausgelassen wurde, und der Server steht unter „Braucht Aufmerksamkeit“, bis ein Update wieder klappt.
- Nodvard Shield, Datei-Wächter: „Ist in Ordnung“ geht nicht mehr verloren, wenn zwei Bestätigungen oder eine Prüfung gleichzeitig laufen, und antwortet ein Server dabei nicht, bleibt das Ereignis offen. Eine abgeschnittene Antwort löst keinen falschen Alarm mehr aus.
- Nodvard Shield, Quarantäne: Dauert das Verschieben länger als fünf Minuten, sieht Deck noch bis zu 20 Minuten nach, ob die Datei angekommen ist. Antwortet der Server dabei nicht mehr, steht am Fund „ließ sich nicht feststellen“ statt „nicht angekommen“.
- Nodvard Shield, Viren-Wächter: Startet der Echtzeit-Wächter nicht, räumt Shield auf und merkt ihn als ausgeschaltet; läuft er nicht mehr, meldet die Schnittstelle das richtig.
- Die Meldung zu einem veralteten oder veränderten Hilfsskript wird nicht mehr abgeschnitten, und kann Deck das Skript nicht lesen, sagt sie das. Der Einrichtungsbefehl scheitert nicht mehr an einer fremden sudo-Datei mit falschen Rechten, sondern nennt sie und sagt, wie man sie repariert.
- Diagramme stürzen bei sehr vielen Werten nicht mehr ab und bleiben bei ungültigen Zahlen nicht leer.
- Neue Kennungen in der Datenbank sind echte UUIDs mit 36 Zeichen.
Gut zu wissen
- Keine Umstellung der Datenbank: 0.10.0 bringt keine neue Migration mit.
- Synology DSM ist Beta und liest nur. Es ändert an deiner Synology nichts.
- Nodvard Dock (Nodvard Deck nur mit dem Modul Docker) gibt es als fertiges Image
ghcr.io/nodvard/dockerst ab Version 0.11.0. Mit 0.10.0 kannst du es nur selbst bauen, die Anleitung steht indeploy/nodvard-dock/README.md.
English
New
Docker stacks
- New “Stacks” tab: every group of containers that runs from one Compose file, including those created by hand or with Portainer, with state and resource use. You can view the Compose file and see whether it was changed but not yet applied; the names of the .env variables are shown, their values are not, since they often hold passwords.
- Existing stacks can be adopted. Deck checks first that the Compose file is readable and tells you why if not; nothing changes on the server.
- Adopted stacks can be applied, stopped, taken down and have their images pulled again, each with approval; after applying, Deck checks that all services run.
- Edit the Compose file in Deck as text or as a form (image, ports, folders, environment variables, restart policy per service). Compose validates it, the editor shows a line-by-line diff, saving needs approval, and the last 20 versions are kept. Risky settings (privileged, host network, system folders, access to Docker itself) are named up front; adding one requires the high approval level.
- Create new stacks from an example, pasted text, an uploaded file or a template (Uptime Kuma, Vaultwarden, Nginx Proxy Manager, Gitea, each pinned to a version). Deck creates its own folder after approval (default /opt/stacks, configurable per server) and never overwrites an existing one.
- Update a stack as a whole: Deck pulls the new images, keeps the old ones as a fallback and checks that the new version runs; if a service fails to start it rolls back on its own, except for databases. Optionally back up the volumes first. “Back to previous version” restores the images from before the last update while the backup still matches.
- Delete adopted stacks: Deck takes them down (volumes stay); the folder is only removed if you tick that box and nothing speaks against it.
- Move stacks over from Portainer: Deck copies file and variables into its own folder and redeploys under the same name, keeping the data volumes. If something doesn’t fit, it doesn’t move and tells you why.
- Turn a container started without Compose into a stack. Deck shows the generated Compose file first, restarts from it and brings the old container back if the new one fails. Whatever it can’t translate safely is named rather than dropped.
- Logs can be limited to a time range, searched and downloaded as text. The container list filters by server, stack and state and shows how often Docker restarted a container on its own; three or more, with the last one less than an hour ago, count as “with problems”.
Synology DSM (beta, read-only)
- New module: model, DSM version, load, volumes, storage pools, disks, updates and Hyper Backup tasks (last run, result, next run), on one page and in three widgets.
- It alerts you when a storage pool, a disk, the temperature or a backup is not okay; a new DSM update shows up as a quiet notice.
- Best create a dedicated DSM account without two-factor for Deck; for storage and updates it has to be in the “administrators” group. The password is stored in the vault.
Overview and servers
- Servers are grouped by type: physical servers, virtual machines and LXC containers, each with a badge such as “LXC on pve1”.
- A VM or LXC deleted in Proxmox no longer lingers silently: Deck shows “no longer exists” and offers to remove the entry with one click.
- The overview quietly points out when a server should be set up again so that Nodvard Shield and Server Health run with narrow permissions there; the hint links straight to the setup and can be dismissed per server.
- “About Nodvard Deck” has a new “Community and credits” section with Discord, GitHub and the licenses of the libraries used.
For extension developers
- Commands to a server can be passed as a list; Deck builds the command line itself, so a value never turns into shell syntax.
Security
- App tiles, search, widgets and module pages only open real web addresses, so a manipulated address from a module cannot run a script in the dashboard.
- Docker: when a .env file is broken, Docker Compose often quotes part of it in its error, which can be a password. Deck now only names the file and the reason, also in actions, notifications and the audit log, and no longer shows names of unset variables.
Improved
- Widgets on the overview are as tall as their content; long lists end cleanly with “+ x more”. Clicking the header opens the module page, moving uses the handle next to it. Widgets of modules that aren’t set up yet are hidden and listed under “Manage widgets” with a setup link. Calmer look: grey icons, “all good” as a green dot, the incidents widget only shows open and proposed incidents.
- The overview counts physical servers and adds VMs and LXC, e.g. “3/3 + 4 VMs · 5 LXC”.
- Docker: when Docker runs in an LXC or VM, the server shows it along with its CPU and memory limits. Only one change runs on a stack at a time; whoever comes in between is told what is running.
- Synology DSM works with older and newer DSM versions and can be pinned to your Synology’s certificate.
- When Deck sets up a server with a password, the Nodvard Shield file watcher no longer raises an alarm for it; it accepts exactly what the setup reported and keeps reporting everything else.
- If a value doesn’t fit for an action on a server page, Deck says so right away instead of letting the action fail.
- “Check connection” points out a missing helper script although root rights are set up, and the setup explains why. Warnings about unknown entries in the server’s user settings no longer appear.
- The terminal page explains the difference between terminal and console and hides buttons of unreachable servers.
- When a module takes over vault entries from an old module and may not read some of them, the log only gives their number, not their names.
- The installation guide covers many more ways step by step: a single Docker command, Podman, Dockge, Synology, UGREEN, QNAP, Unraid, TrueNAS, OpenMediaVault, ZimaOS/CasaOS, Proxmox and Docker Desktop.
Fixed
- A VM or LXC switched off in Proxmox shows as grey “off” and no longer counts as a fault.
- At half screen width no page overflows sideways; the overview stacks its tiles in two columns.
- On the apps page, detected services no longer appear again under “Suggestions”; adopt them right on their tile. Pi-hole, Nginx Proxy Manager, Nextcloud, Uptime Kuma, Jellyfin, Plex, qBittorrent, Home Assistant and Vaultwarden also work with a sub-page like /dashboard copied from the browser.
- Docker: a dropped connection no longer counts as a missing file or free folder, missing permissions are named during the check, the image update recognises variables without a value with current Docker Compose, and a stack update cancelled during the backup leaves no empty backup folder.
- Synology DSM (beta): the all-clear for a storage pool or volume only comes once it is “Normal” again, also after an unknown state. While a pool is being repaired its volume doesn’t report twice, and many Hyper Backup tasks no longer hold up the page.
- Nodvard Shield, updates: automatic updates no longer reboot a server whose last update failed, was cancelled or is still running. The summary says the reboot was skipped, and the server is listed under “Needs attention” until an update succeeds again.
- Nodvard Shield, file watcher: “This is fine” is no longer lost when two confirmations or a check run at the same time, and the event stays open if the server doesn’t answer. A truncated reply no longer raises a false alarm.
- Nodvard Shield, quarantine: if moving a file takes longer than five minutes, Deck keeps checking for up to 20 minutes whether it arrived. If the server stops answering, the finding says “could not be determined” instead of “did not arrive”.
- Nodvard Shield, virus watcher: if the real-time watcher fails to start, Shield cleans up and marks it off; if it stops, the API reports that correctly.
- The message about an outdated or changed helper script is no longer cut off and says so when the script can’t be read. The setup command no longer fails on a foreign sudo file with wrong permissions but names it and explains the fix.
- Charts no longer crash with very many values and no longer stay empty with invalid numbers.
- New database IDs are real 36-character UUIDs.
Good to know
- No database change: 0.10.0 brings no new migration.
- Synology DSM is a beta and read-only. It changes nothing on your Synology.
- Nodvard Dock (Nodvard Deck with only the Docker module) is published as a ready-made image
ghcr.io/nodvard/dockfrom version 0.11.0 on. With 0.10.0 you can only build it yourself, seedeploy/nodvard-dock/README.md.