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.0b3.tar.gz (31.9 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.0b3.tar.gz.

File metadata

File hashes

Hashes for eteaching_plone_nostrmetadatasync-1.0.0b3.tar.gz
Algorithm Hash digest
SHA256 fa980a5de5675c8fd7f57a32ca7bccb61c34ed359a48ca021cb4a926302a9cb5
MD5 cead965c0e249ca55094d25ebebd6de4
BLAKE2b-256 df712a0e1115a9a8a21e95c19f0d0fbfee3ddaf14abc3d67e2ac12af4048662c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eteaching_plone_nostrmetadatasync-1.0.0b3-py3-none-any.whl
Algorithm Hash digest
SHA256 8ba70c2bf3f6d87d29a4f5a05e95a8ee0a374f8c0e84cd12479b025979829788
MD5 ac9ccc98b59ded793bfa3e1a98a5f5c8
BLAKE2b-256 e5bcb8fd24ee81cafa2202d3f4c513a1f94cd4b3897089822ca532df27de3911

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