-
released this
2026-08-18 13:55:52 +00:00 | 2 commits to main since this releaseWiederherstellung von Dateien und Ordnern mit Auswahl statt Textfeld — und die Erklärung, warum vorher gar keine Wiederherstellung funktionierte.
Warum keine Wiederherstellung ging
Nicht die Rechte des Zielverzeichnisses, sondern die Härtung des Dienstes: Er läuft mit
ProtectSystem=strictundReadWritePathsnur auf Repository und Sicherungsordner. Jedes Ziel außerhalb endete mitmkdir: permission denied— und zwar nach der Vorabprüfung, an der unangenehmsten Stelle./tmpscheiterte anders: MitPrivateTmp=yeshat der Dienst ein eigenes/tmp. Was dort landet, ist von außen unsichtbar.Ort Ergebnis /srv/syncova-restore✓ von setup.shangelegt und eingetragenweitere aus --wiederherstellungsziel✓ /tmp/…✗ privater Namensraum, von außen unsichtbar /etc,/usr,/var/lib,/root…✗ vom Zielschutz gesperrt alles andere ✗ schreibgeschützt durch ProtectSystem=strictDer Ort liegt unter
/srv, weil/var/libauf der Sperrliste des Zielschutzes steht — beide Regeln zugleich zu erfüllen lässt genau/srvübrig.Auswahl statt Textfeld
- Ordnerbaum für das Ziel. Er meldet je Verzeichnis, ob der Dienst dort schreiben darf — gemessen durch eine Probedatei, nicht aus den Rechtebits abgeleitet. Unter
ProtectSystem=strictsagen die Bits nichts über den Namensraum aus. Gesperrte Orte werden gezeigt, nicht versteckt: Sonst bliebe offen, warum ein Pfad fehlt. - Browser für den Backup-Inhalt. Ordner und einzelne Dateien lassen sich zurückholen. Der Baum entsteht aus den Pfaden, nicht aus Verzeichniseinträgen — ein Manifest kann eine Datei enthalten, deren Elternordner nicht als eigener Eintrag vorliegt, und wer nur
directory-Einträge auflistet, verliert ganze Teilbäume.
Zwei neue Endpunkte, der eingefrorene Vertrag ist entsprechend erweitert:
GET /filesystem/browseundGET /backups/{id}/contents.Behoben
„can't access property toLocaleString, chunks_checked is undefined" beim Integritätslauf. Die Ergebnisse liegen unter
details, und die Felder heißenmissing_chunks/corrupted_chunks, nicht umgekehrt. Betrifft alle vier Prüfendpunkte — sie tragen dieselbe Hülle.Derselbe Fehler wie zuvor bei
/retention-policies: die Antwortform angenommen statt geprüft. Alle konsumierten Endpunkte sind jetzt gegen den laufenden Dienst abgeglichen.Geist Mono liegt im Paket
Drei Schnitte, 128 KB, OFL-Lizenz dabei. Ausgeliefert vom eigenen Ursprung — das verlangt die CSP, und ein Backup-Server, dessen Oberfläche von der Erreichbarkeit eines CDN abhängt, wäre auch ohne CSP falsch.
font-display: swap, damit der Text sofort steht.Nachgewiesen
Gegen Debian 12 mit echtem PostgreSQL und nginx: Vollwiederherstellung (5 Dateien), nur ein Ordner (2 Dateien), nur eine Datei (1 Datei) — alle drei bitgenau. Der Server nennt
/srv/syncova-restoreals beschreibbar und/etc,/usr,/varals gesperrt.Aktualisieren
sudo /opt/syncova/update.shBei einer bestehenden Installation fehlt die Wiederherstellungsfläche, weil sie erst
setup.shanlegt. Nachholen:sudo install -d -m 0750 -o syncova -g syncova /srv/syncova-restore sudo systemctl edit syncova-api # ReadWritePaths= um /srv/syncova-restore ergänzen sudo systemctl restart syncova-apiBekannte Grenze
Eine Auswahl je Lauf, kein Mehrfachhaken. Eine Liste ausgewählter Pfade kennt die API nicht; mehrere Läufe hintereinander ergäben mehrere Ausgänge, und ein „teilweise fehlgeschlagen" ließe sich dann nicht mehr erklären.
Unverändert offen: Windows-Dienst, systemd-Einheit des Agenten und der Proxmox-Bootmeilenstein sind gebaut, aber nie auf echter Hardware gefahren.
Downloads
- Ordnerbaum für das Ziel. Er meldet je Verzeichnis, ob der Dienst dort schreiben darf — gemessen durch eine Probedatei, nicht aus den Rechtebits abgeleitet. Unter