Skip to main content

Nostr integration for Plone 6.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eteaching_plone_nostrmetadatasync-1.0.0b2.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file eteaching_plone_nostrmetadatasync-1.0.0b2.tar.gz.

File metadata

File hashes

Hashes for eteaching_plone_nostrmetadatasync-1.0.0b2.tar.gz
Algorithm Hash digest
SHA256 c4042828eb29a5a6d9020908af50b14c60a901390f8b6e66714f897df4e7015c
MD5 f55a81d525b7a0a4b2ffe4138ca5bfae
BLAKE2b-256 05760b0d606e6df13af8b781eba8bb8f935e3c484e0a86c64af94ee7fb43b990

See more details on using hashes here.

File details

Details for the file eteaching_plone_nostrmetadatasync-1.0.0b2-py3-none-any.whl.

File metadata

File hashes

Hashes for eteaching_plone_nostrmetadatasync-1.0.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 91dba97bef4b911f7788ff96a86dac5a76bd2b08bb7c329ce3cac3d7874ae848
MD5 44b02935f5e12c9d3219c1aa6fd6eb3d
BLAKE2b-256 cd70f0cc2bd3b23584f55753afab93c0ccc41c272c2370b28f19be3ef2ad20d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page