Pioneer Rekordbox Sync ohne Cloud

Vorwort

Wichtige Hinweise

In diesem Beispiel wird die Synchronisation zwischen Geräten gezeigt, hierbei darf die Rekordbox nicht geöffnet sein,
weil die Datenbank im geöffneten Zustand nicht korrekt synchronisiert werden kann.

Zusätzlich kann es bei Änderungen auf mehreren Geräten zu Problemen bei der Zusammenführung der Daten kommen.

Es kann also von einem Gerät zu mehreren Geräten synchronsiert werden.

Software

Wir verwenden für die Synchronisation Syncthing.
Mit dieser Anwendung können Ordner und Dateien verschlüsselt übertragen werden, es sichert die Vertrauenswürdigkeit zwischen Geräten und kann auch auf nicht vertrauenswürdigen Geräten Dateien verschlüsselt ablegen.
Es ist nicht notwendig Ports zu öffnen, da es eine NAT-Durchdringung beherrscht und über globale Indexserver können Geräte sich gegenseitig finden (sofern man die ID hat).
Die Warscheinlichkeit ein Gerät durch Zufall zu finden ist sehr unwarscheinlich. Weitere Informationen finden sich hier: https://docs.syncthing.net/dev/device-ids.html

Der Vorteil der Anwendung liegt in der Peer2Peer Fähigkeit, denn jedes Gerät, dass Dateien bereits hält, kann diese weitersenden.
Es handelt sich somit um kein klassisches Client / Server Verhältnis, sondern jedes Gerät ist eigenständig und als Datenquelle verwendbar.

Welchem Gerät welche Dateien zur Verfügung gestellt werden, ob diese nur empfangen oder auch gesendet werden dürfen, lässt sich genau einstellen…

Download der Software

https://syncthing.net/downloads/

Synthing installieren / portale herunterladen und starten. Danach sollte sich ein Browserfenster öffnen, denn Syncthing wird über eine lokal gebundene Webseite konfiguriert.
Es stehen für alle gängigen Systeme Pakete bereit (auch Android, IOS).

Konfiguration

weitere Geräte hinzufügen

Unten rechts befindet sich der Knopf Gerät hinzufügen, hier muss die ID des zu verbindenen Geräts hinterlegt werden.
Diese findet man indem man oben rechts auf Aktionen -> eigene Kennung oder auf die Kennung in der rechten Tabelle drückt…

Pioneer Ordner hinzufügen

Sollte Syncthing die Webseite nicht bereits geöffnet haben, kann diese hierüber aufgerufen werden: http://127.0.0.1:8384/
Auf dem ersten Gerät, das die Rekordbox Library hält, wird der Ordner nun eingebunden:

Ordner hinzufügen:

Einstellung Wert
Allgemein
Ordnerbezeichnung Pioneer
Ordnerkennung wird automatisch gewürfelt, muss nicht geändert werden
Ordnerpfad ~\AppData\Roaming\Pioneer
Teilen
Geräte anhaken, die den Ordner zur Verfügung gestellt bekommen sollen -
Ignoriermuster
Ignoriermuster hinzufügen anhaken

Nach absenden des Formulars wird nach dem Ignoriermuster gefragt, hier werden paar Dateien ignoriert (Log Dateien, Crash Reports, Datenbank-Tempdateien)

rekordbox\Crashes\**
rekordbox\*.db-wal
rekordbox\*.db-shm
rekordboxAgent\log
rekordboxAgent\Session Storage\LOG*
Freigabe annehmen

Alle Geräte denen die Freigabe erteilt wurde, sollte nun im Webinterface eine Anfrage erhalten, diese kann akzeptiert werden.
Der zu speichernde Pfad hängt nun vom gewünschten Anwendungsfall ab.
soll auf den Geräten auch Rekordbox laufen, muss der zu speichernde Pfad wieder ~\AppData\Roaming\Pioneer lauten.
Am besten existiert dieser noch nicht, falls doch umbenennen (Pioneer.orig), damit Syncthing die Daten vom Quellgerät komplett neu synchronisiert.

unterschiedliche Windows Benutzernamen
Wichtige Hinweise

FALLS auf den Geräten unterschiedliche Benutzernamen verwendet werden, muss noch eine Verknüpfung angelegt werden, denn Rekordbox erwartet die Datenbank im Ordnerpfad des Quellgeräts.

Beispiel:

| Gerät | Benutzername | Pfad | | PC-A | Karl | c:\Users\Karl\AppData\Roaming\Pioneer | | Laptop | djsuperduper | c:\Users\djsuperduper\AppData\Roaming\Pioneer | | Laptop-B | djkarl | c:\Users\djkarl\AppData\Roaming\Pioneer |

Rekordbox erwartet die Library nun im jeweiligen Ordner, bzw. wenn die Daten von PC-A synchronisiert wurden auf allen Geräten unter c:\Users\Karl\AppData\Roaming\Pioneer.
Damit es keine Probleme beim Lesen gibt, legen wir einen Link an (Laptop):

STRG + X
Terminal (Administrator) ODER Powershell (Administrator)

FALLS Powershell:
cmd + ENTER

# in der CMD eingeben
mklink /D c:\\Users\\Karl c:\Users\djsuperduper

Dadurch wird eine Verknüpfung angelegt die c:\Users\Karl auf c:\Users\djsuperduper zeigen lässt.
Rekordbox kann die Dateien nun finden.

Falls man bisschen mehr Details möchte…: AppData\Roaming\Pioneer\rekordboxAgent\storage\options.json

Rekordbox öffnen / synchronisieren

Mit Hinzufügen des Ordners in Syncthing wird dieser automatisch synchronisiert.
Wichtig dabei ist, dass dieser nur synchronisiert wird, wenn Rekordbox geschlossen ist.
Vergisst man dies mal, schließt man Rekordbox und lässt Syncthing noch die Änderungen schreiben.
Das Beenden von Rekordbox kann gerne länger dauern, als die Fenster angezeigt werden, denn im Hintergrund wird noch der RekordboxAgent geschlossen…

Möchte man seine Bibliothek nicht gefährden, kann man die Synchronisationsrichtung festlegen.

Beispielsweise könnte man seinen Pioneer Ordner nur vom PC zu den Laptops synchronisieren.

Dies wird erreicht, indem bei Syncthing der Ordnertyp angepasst wird (Ordner anklicken -> bearbeiten -> Erweitert). Der PC kann dann auf “senden” gestellt werden und nimmt keine Änderungen an, während die Laptops “empfangen” als Ordnertyp eingetragen bekommen.
Jegliche Änderungen auf den Laptops durch Rekordbox sind dann lokale Änderungen die nicht in den globalen Stand eingefügt werden und zurückgesetzt werden können. Im Syncthing Interface wird dann “lokale Änderungen zurücksetzen” angeboten. Drückt man darauf, werden lokale Änderungen gelöscht und der globale Stand (vom PC) synchronisiert (falls Änderungen bestehen).

Möchte man zwischen mehreren Geräten kreuz und quer synchronisieren, sollte immer erst der Stand des zuletzt verwendeten Geräts synchronisiert werden!

Abschließender Hinweis

Mit Syncthing kann auch eine Server / Client Struktur gebaut werden, indem z.B. ein Homeserver / NAS Syncthing ausführt und “empfangen” als Ordnertyp verwendet.
Alle anderen Geräte nutzen “senden und empfangen” und können ihren Stand auf den Server pushen und abschließend abholen.
So müssen die Geräte untereinander nicht vorweg erst miteinander Synchronisiert werden, da der Server diesen stets bereitstellt…