eteaching.plone.nostrmetadatasync
Nostr integration für Plone 6.
eteaching.plone.nostrmetadatasync synchronisiert Metadaten von Plone-Inhalten mit Nostr. Dies geschieht auf der Grundlage von subscribers (event handlers). Wenn Inhalte auf der Plone-Website erstellt, gelöscht oder geändert werden, werden entsprechende Nostr-Ereignisse erstellt, signiert und an vordefinierte Relias im Nostr-Netzwerk gesendet. Dazu stehen zwei Konfigurationsoberflächen zur Verfügung. Die eine dient dazu um Einstellungen vorzunehmen. Hier kann festgelegt werden, welche Inhaltstypen und Filter zur Auswahl der von der Synchronisation betroffenen Inhalte verwendet werden sollen. Die zweite Konfigurationsoberfläche kann verwendet werden, um alle Ereignisse in den Nostr-Relays für den gesamten Inhalt zu erstellen, der über die Einstellungen ausgewählt wurde, oder um Löschereignisse zu senden.
Features
- Echtzeit-Synchronisation zwischen Metadaten für Terminbasierte Plone-Objekte (z. B. plone.app.event) und zeitbasierten Nostr-Kalenderereignissen (NIP-52).
- Echtzeit-Synchronisation zwischen Metadaten für Lehrmaterialien und Nostr-AMB-Ereignissen (NIP-AMB)
- Erstellung von Nostr-Ereignissen für die Metadaten aller unterstützten Objekte
- Spezifische Konfigurationsoptionen, bei denen Portaltypen und zusätzliche Einschränkungen für die Synchronisation ausgewählt werden können
Installation
Voraussetzungen
- Ein Betriebssystem auf dem sich alles benötigten Pakete installieren lassen
- Python 3.10, 3.11, 3.12, or 3.13
- uv
- Make
- Git
Installation von eteaching.plone.nostrmetadatasync mit git
Dies ist keine Installation für den produktiven Einsatz, sondern dient vielmehr zu Test- und Entwicklungszwecken.
Repository klonen und anschließend ins Arbeitsverzeichnis wechseln
git clone [email protected]:e-teachingorg/eteaching.plone.nostrmetadatasync.git cd eteaching.plone.nostrmetadatasyncVirtuelle Python-Umgebung erstellen und uv installieren
python3 -m venv . bin/pip install uv source bin/activate.env Datei erstellen
vi .envum NOST_KEY als Umgebungsvariable zu setzen:
NOSTR_KEY=MyPrivateNostrKeyCode-Basis installieren
make installLeere Plone-Seite erstellen (user:admin, password:admin)
make create-sitePlone starten
make start
Installation von eteaching.plone.nostrmetadatasync via buildout
Benutze zc.buildout >=5, e.g. z.B. so:
horse-with-no-namespace==20251105.1 packaging==25.0 pip==25.3 setuptools==80.9.0 wheel==0.45.1 zc.buildout==5.1.1Virtuelle Python-Umgebung erstellen und Versionen aus der requirements.txt installieren:
bin/python3 -m venv . bin/pip install -r requirements.txt.env Datei erstellen
vi .envto set NOST_KEY as an environment variable:
NOSTR_KEY=MyPrivateNostrKeyFolgendes zur buildout.cfg hinzufügen:
[buildout] eggs = eteaching.plone.nostrmetadatasync ... [instance] environment-vars = NOSTR_KEY ${env:NOSTR_KEY} ...Buildout starten
bin/buildoutPlone starten
bin/instance fg
Beispiel: Synchronisierung für Termine einrichten
Öffnen der Plone-Website (z. B. http://localhost:8080/Plone zu Testzwecken) im Browser
Login
Klicke “admin” ➔ “Site Setup”
Unter “Add-ons” prüfen, ob das Add-on „Nostr Metadata Sync“ installiert ist. Falls nicht, installieren.
Gehen Sie dann zurück zu “Site-Einrichtung” ➔ “Add-on-Konfiguration” ➔ “Verwaltung der Nostr-Metadaten-Synchronisierung”
Klicken Sie auf “Dieses Add-on konfigurieren”
„nostr relays“ angeben. (Falls Nak mit dem Befehl
nak serveauf demselben Computer gestartet wurde, folgendes eingeben: ws://localhost:10547)“Termin” unter “Inhaltstypen für den Kalender-Adapter” auswählen
Zusätzliche Suchfilter und ein Community-Schlüssel kann angegeben werden, wenn die Synchronisierung mit einer bestimmten Community durchführt werden soll.
“Sichern” klicken
Wenn nun im Portal Nachrichten erstellt und veröffentlicht werden, sollten diese mit den eingegebenen Relays synchronisiert werden.
Beteiligen
Lizenz
Das Projekt unterliegt der GPLv2.