Skip to content

Repository files navigation

Tangle

A Nostr relay for collaborative farming and local food communities.

What it does: Tangle is a multi-tenant Nostr relay that routes requests to tenants by hostname. Each tenant has its own relay URL, Pocket store, resource and rate limits, and optional NIP-29 groups.

Getting started | Docs | Config | Releases | License

Getting started

Install Rust and Git. The repository uses the toolchain pinned in rust-toolchain.toml.

git clone https://radroots.dev/git/tangle.git && cd tangle

cargo check --workspace --locked

Copy the host and tenant config files:

mkdir -p runtime/tenants

cp config/tangle.host.example.json runtime/tangle.host.json
cp config/tenants/farmers_market.example.json runtime/tenants/farmers-market.json

Run the relay:

cargo run -p tangle -- config validate --config "runtime/tangle.host.json"
cargo run -p tangle -- tenant list --config "runtime/tangle.host.json"
cargo run -p tangle -- run --config "runtime/tangle.host.json"

Check readiness and the tenant's NIP-11 document:

curl http://localhost:7070/.well-known/tangle/ready

curl --header 'Accept: application/nostr+json' --header 'Host: relay.radroots.test' http://localhost:7000/

Protocol support

Status

Tangle is under active development. Interfaces and configuration may change.

Acknowledgements 👋

Tangle is a mashup of:

Thanks to Mike and Jon for creating and open-sourcing these projects.

License

This repository is licensed under AGPL-3.0-or-later. See LICENSE.

About

A mulit-tenant Nostr relay for local food networks

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages