Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

eteaching.plone.nostrmetadatasync

Nostr integration for Plone 6.

eteaching.plone.nostrmetadatasync synchronises metadata of Plone contents with Nostr. This is done on the basis of subscribers (event handlers). When content is created, deleted or modified on the Plone website, corresponding Nostr events are created, signed and sent to predefined relias in the Nostr network. Two control panels are also provided. One is for settings, where you can specify which content types and filters should be used to select the content affected by synchronization. The second control panel can be used to create all events in the Nostre relays for the entire content selected using the settings, or to send delete events.

Features

  • Real-time synchronization between metadata for event-based plone objects (e.g. plone.app.event) and Nostr time-based calendar events (NIP-52).
  • Real-time synchronization between metadata for educational materials and Nostr AMB events (NIP-AMB)
  • Initial creation of Nostr events for the metadata of all supported objects.
  • Specific configuration options where portal types and additional restrictions for synchronization can be selected

Installation

Prerequisites ✅

Install eteaching.plone.nostrmetadatasync from source with git 🔧

  1. Clone this repository, then change your working directory

    git clone git@github.com:e-teachingorg/eteaching.plone.nostrmetadatasync.git
    cd eteaching.plone.nostrmetadatasync
    
  2. Create environment and install uv

    python3 -m venv .
    bin/pip install uv
    source bin/activate
    
  3. Create an .env file

    vi .env
    

    to set NOST_KEY as an environment variable:

    NOSTR_KEY=MyPrivateNostrKey
    
  4. Install the code base

    make install
    
  5. Create the Plone site

    make create-site
    
  6. Start

    make start
    

Install eteaching.plone.nostrmetadatasync via buildout

  1. Use zc.buildout >=5, e.g. using the following requirements.txt:

    horse-with-no-namespace==20251105.1
    packaging==25.0
    pip==25.3
    setuptools==80.9.0
    wheel==0.45.1
    zc.buildout==5.1.1
    
  2. Install Python venv and requirements:

    bin/python3 -m venv .
    bin/pip install -r requirements.txt
    
  3. Create an .env file

    vi .env
    

    to set NOST_KEY as an environment variable:

    NOSTR_KEY=MyPrivateNostrKey
    
  4. Add the following to buildout.cfg:

    [buildout]
    
    eggs =
        eteaching.plone.nostrmetadatasync
    ...
    
    [instance]
    
    environment-vars =
    	NOSTR_KEY ${env:NOSTR_KEY}
    ...
    
  5. Run buildout

    bin/buildout	
    
  6. Start

    bin/instance fg
    

Contribute

License

The project is licensed under the GPLv2.

Metadata

Release files for eteaching.plone.nostrmetadatasync 1.0.0b4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eteaching.plone.nostrmetadatasync 1.0.0b4
File Size Uploaded
eteaching_plone_nostrmetadatasync-1.0.0b4.tar.gz 32.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eteaching.plone.nostrmetadatasync 1.0.0b4
File Interpreter ABI Platform
eteaching_plone_nostrmetadatasync-1.0.0b4-py3-none-any.whl Python 3 none any Details

Total release size: 77.8 kB

Release files / eteaching_plone_nostrmetadatasync-1.0.0b4.tar.gz

Download URL eteaching_plone_nostrmetadatasync-1.0.0b4.tar.gz
Size 32.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7f42887bad25b59df20a44f09eb2e8c70584150007cdcac30aa37c286a47ff8e
BLAKE2b-256 checksum
How to use checksums
9d8675594b7ebec442f496a0dc00ab04322ebf45b40d99adf08199166818363f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.8

Release files / eteaching_plone_nostrmetadatasync-1.0.0b4-py3-none-any.whl

Download URL eteaching_plone_nostrmetadatasync-1.0.0b4-py3-none-any.whl
Size 45.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a79c04f234b4e1b52ec8ac8b40be8a67cb41920661712b61ea0e3cb44c97ab54
BLAKE2b-256 checksum
How to use checksums
8327670fc82b4eae8387e2a020dc2f6aa884c0bcf413f6170aafcc612f149198
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.8
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page