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 ✅
- An operating system that runs all the requirements mentioned.
- Python 3.10, 3.11, 3.12, or 3.13
- uv
- Make
- Git
Install eteaching.plone.nostrmetadatasync from source with git 🔧
-
Clone this repository, then change your working directory
git clone git@github.com:e-teachingorg/eteaching.plone.nostrmetadatasync.git cd eteaching.plone.nostrmetadatasync
-
Create environment and install uv
python3 -m venv . bin/pip install uv source bin/activate
-
Create an .env file
vi .envto set NOST_KEY as an environment variable:
NOSTR_KEY=MyPrivateNostrKey
-
Install the code base
make install -
Create the Plone site
make create-site -
Start
make start
Install eteaching.plone.nostrmetadatasync via buildout
-
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
-
Install Python venv and requirements:
bin/python3 -m venv . bin/pip install -r requirements.txt
-
Create an .env file
vi .envto set NOST_KEY as an environment variable:
NOSTR_KEY=MyPrivateNostrKey
-
Add the following to buildout.cfg:
[buildout] eggs = eteaching.plone.nostrmetadatasync ... [instance] environment-vars = NOSTR_KEY ${env:NOSTR_KEY} ...
-
Run buildout
bin/buildout -
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)
| File | Size | Uploaded | |
|---|---|---|---|
| eteaching_plone_nostrmetadatasync-1.0.0b4.tar.gz | 32.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|