docs/release-notes/0.10.0.md
Rama main · réplica de lectura del repositorio original.
# Nodvard Deck 0.10.0 – Docker-Stacks, Synology DSM (Beta) und Server nach Art
*English version: [below](#english).*
## Deutsch
### 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/dock` erst ab
Version 0.11.0. Mit 0.10.0 kannst du es nur selbst bauen, die Anleitung steht in `deploy/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/dock` from version 0.11.0 on. With 0.10.0 you can only build it yourself, see
`deploy/nodvard-dock/README.md`.