mirror of
https://github.com/Terranom674/Piwigo_Bratonien_Tools.git
synced 2026-09-19 23:24:36 +00:00
123 lines
6.5 KiB
Markdown
123 lines
6.5 KiB
Markdown
# Aktueller Entwicklungsstand
|
||
|
||
Stand: 17.08.2026
|
||
|
||
## Plugin
|
||
|
||
- Aktuelle Plugin-Version: **0.9.3.17**
|
||
- Aktueller Entwicklungsblock: **NC Connector – Verbindungsverwaltung / laufende Optimierung**
|
||
- NC Connector ist Feature 10 und noch nicht vollständig abgeschlossen.
|
||
- Solange dieser Optimierungsblock läuft, bleibt die Version im Bereich `0.9.3.x`.
|
||
|
||
## Aktueller GitHub-Stand
|
||
|
||
Der lokale NC Connector ist für den aktuellen Bratonien-Einsatz im bisherigen Login-Weg End-to-End funktionsfähig. Mit `0.9.3.17` beginnt der Umbau auf API-first für die Piwigo-Synchronisierung.
|
||
|
||
Bereits erfolgreich umgesetzt und getestet:
|
||
|
||
- Nextcloud-Freigaben vom Typ `folder` und `file` werden aus der Source-View gelesen.
|
||
- Ordnerfreigaben werden als Verzeichnisbaum im Shadow Tree gespiegelt.
|
||
- Einzeldateifreigaben werden als Symlink direkt im Galerie-Root angelegt und als echte Piwigo-Orphans ohne Albumzuordnung registriert.
|
||
- Entfernte Einzeldateifreigaben werden beim normalen Connector-Lauf aus Shadow Tree und Piwigo entfernt.
|
||
- Das Nextcloud-Original bleibt bei Löschvorgängen unangetastet.
|
||
- Connector-getriggerte neue physische Alben werden standardmäßig privat angelegt.
|
||
- Der gemeinsame systemd-Timer `bratonien-nc-connector.timer` läuft produktiv.
|
||
|
||
Neu in `0.9.3.17`:
|
||
|
||
- die Piwigo-API ist als bevorzugter Synchronisierungsweg vorgesehen;
|
||
- ein erfolgreich geprüfter API-Key wird verschlüsselt in der Piwigo-Konfiguration gespeichert;
|
||
- produktive API-Synchronisierung ist ausdrücklich an die freigegebene Piwigo-Version **16.4.0** gebunden;
|
||
- neuer Webservice `bratonien.nc.syncProductive` delegiert den freigegebenen produktiven Dateisync an Piwigos Core-Synchronisierung;
|
||
- `runtime/lib/piwigo-sync.php` versucht zuerst die API und fällt nur bei nicht nutzbarer API auf Benutzername/Passwort zurück;
|
||
- der bisherige Benutzername/Passwort-Zugang kann als verschlüsselter Fallback gespeichert oder gelöscht werden;
|
||
- ein Benutzername/Passwort-Fallback kann außerdem einmalig manuell ausgeführt werden, ohne die Zugangsdaten zu speichern;
|
||
- neue lokale Verbindungen werden intern als `api-first` angelegt; ein dauerhaft gespeicherter Login-Fallback ist technisch nicht mehr zwingend, sofern ein API-Zugang vorhanden ist.
|
||
|
||
## Architektur NC Connector
|
||
|
||
- Nextcloud bleibt die einzige dauerhafte Quelle der Originalbilder.
|
||
- Piwigo erhält nur die benötigte Verzeichnis-/Symlink-Struktur und erzeugt daraus seine Derivate und Cache-Dateien.
|
||
- Der Connector arbeitet mit einem PostgreSQL-Leser und den Views `piwigo_showcase_sources` und `piwigo_showcase_activity`.
|
||
- Laufzeitdaten liegen unter `/var/lib/bratonien-tools/nc-connector/...`.
|
||
- Verbindungs-Konfigurationen liegen unter `/etc/bratonien-tools/nc-connector/connection-*.conf`.
|
||
- Der Shadow Tree enthält Verzeichnisse und Symlinks, keine Kopien der Originaldateien.
|
||
- Alle aktivierten Verbindungen werden über `runtime/run-all.sh` gemeinsam verarbeitet.
|
||
|
||
## Nextcloud-Freigabemodell
|
||
|
||
Der Connector unterstützt komplette Ordner und einzelne Bilder.
|
||
|
||
- `folder` -> Verzeichnisstruktur spiegeln und über Piwigos Dateisynchronisierung als physische Albumstruktur einlesen;
|
||
- `file` -> Symlink direkt im Galerie-Root und anschließende Registrierung als Piwigo-Orphan.
|
||
|
||
Für einzelne Dateien wird kein künstlicher Unterordner erzeugt.
|
||
|
||
## Activity-Gate
|
||
|
||
Das Activity-Gate berücksichtigt neben dem Nextcloud-Aktivitätsstand auch die Signatur der aktuell sichtbaren Freigaben. Weiterhin vorhanden sind Quiet-Time, maximale Wartezeit, periodischer Full-Sync und verbindungsspezifischer State.
|
||
|
||
## Piwigo-Synchronisation
|
||
|
||
### API-first
|
||
|
||
Der normale Runtime-Lauf verwendet ab `0.9.3.17` folgende Priorität:
|
||
|
||
1. gespeicherter Piwigo-API-Key;
|
||
2. bei API-Fehler, fehlender Freigabe für die installierte Piwigo-Version oder nicht vorhandener API: gespeicherter Benutzername/Passwort-Fallback;
|
||
3. ohne nutzbaren API- und Fallback-Zugang wird der Piwigo-Sync mit einer klaren Fehlermeldung abgebrochen.
|
||
|
||
Nach einem Piwigo-Update wird die produktive API nicht automatisch für die neue Version freigeschaltet. Erst nach einem Kompatibilitätstest wird die Versionsfreigabe im Plugin angehoben. Bis dahin bleibt nur der Login-Fallback zulässig.
|
||
|
||
### Physische Alben
|
||
|
||
`bratonien.nc.syncProductive` ist aktuell nur für Piwigo **16.4.0** freigegeben. Der Endpoint läuft als Administrator-Webservice und verwendet für den eigentlichen Dateisync Piwigos Core-Synchronisierung. Neue Connector-Alben werden dabei privat angelegt.
|
||
|
||
### Root-Dateien / Orphans
|
||
|
||
`bratonien.nc.syncOrphans` verarbeitet direkte Dateien im Galerie-Root separat. Neue Root-Dateien werden als Piwigo-Orphans ohne Albumzuordnung registriert. Entfernte Root-Dateien werden nur aus Piwigo entfernt; das Nextcloud-Original bleibt unberührt.
|
||
|
||
## Erfolgreiche Live-Tests bis 0.9.3.16
|
||
|
||
Bestätigt wurden:
|
||
|
||
- Ordnerfreigaben werden korrekt eingelesen;
|
||
- Einzeldateifreigaben werden als `file` erkannt und im Galerie-Root verlinkt;
|
||
- Orphan-Anlage und Orphan-Löschung funktionieren;
|
||
- physische neue Connector-Alben werden privat angelegt;
|
||
- der automatische Timer kann regulär laufen.
|
||
|
||
## Offener Test für 0.9.3.17
|
||
|
||
Vor Abschluss des API-first-Blocks muss noch live geprüft werden:
|
||
|
||
1. Plugin-Update auf `0.9.3.17`;
|
||
2. API-Key im NC Connector prüfen und speichern;
|
||
3. produktiver Lauf verwendet `bratonien.nc.syncProductive` erfolgreich;
|
||
4. Ordner- und Orphan-Sync bleiben unverändert korrekt;
|
||
5. gespeicherter Login-Fallback übernimmt bei absichtlich nicht nutzbarer API;
|
||
6. einmaliger Fallback funktioniert ohne Speicherung;
|
||
7. gelöschter Fallback wird vom Runtime-Lauf nicht mehr verwendet.
|
||
|
||
## Sicherheit / Betriebsmodell
|
||
|
||
- Nextcloud bleibt Eigentümer der Originaldateien.
|
||
- Der Connector löscht keine Originaldateien aus den Storage-Mounts.
|
||
- API- und Login-Zugangsdaten werden verschlüsselt gespeichert und nicht in das Repository geschrieben.
|
||
- Die API hat Vorrang, ist aber streng versionsgebunden.
|
||
- Benutzername/Passwort ist nur Fallback und kann dauerhaft, einmalig oder gar nicht verwendet werden.
|
||
- Neue Connector-Alben werden privat angelegt.
|
||
|
||
## Bekannte offene Punkte
|
||
|
||
Der NC Connector bleibt im Entwicklungsblock `0.9.3.x`. Nach erfolgreichem API-first-Livetest folgen insbesondere:
|
||
|
||
- Bereinigung und Vereinfachung der Verbindungsverwaltung im Admin-UI;
|
||
- Remote-Nextcloud-Adapter;
|
||
- Entscheidung über verbleibende Legacy-/Migrationshilfen;
|
||
- weitere Komfortfunktionen für Status, Diagnose und Administration.
|
||
|
||
## Repository-Fallback
|
||
|
||
Während der Entwicklung bleibt GitHub das führende Repository. Zusätzlich existiert auf dem privaten Gitea-System ein Pull-Mirror als Ausfall-/Fallback-Ebene.
|