commit 661d42d051a46dea0baa367ca48fa1e8d1695814
parent cc61bd2488ac1c4341bd02bdf1488fb3064a0c8d
Author: triesap <tyson@radroots.org>
Date: Wed, 5 Aug 2026 21:00:51 +0000
docs: update README.md
Diffstat:
| M | README.md | | | 67 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- |
1 file changed, 60 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
@@ -1,14 +1,67 @@
-# tangle
+# Tangle
-This is the README for `tangle` which is a Nostr relay designed for
-collaborative farming and local food communities.
+A Nostr relay for collaborative farming and local food communities.
-## Copyright
+**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.
-Except as otherwise noted, all files in the `tangle` distribution are
+**[Getting started](#getting-started)**
+| [Docs](https://radroots.dev/docs)
+| [Config](config/)
+| [Releases](https://radroots.dev/downloads/)
+| [License](#license)
- Copyright (c) 2026 Tyson Lupul
+## Getting started
+
+Install [Rust](https://rustup.rs/) and Git. The repository uses the toolchain pinned in [`rust-toolchain.toml`](rust-toolchain.toml).
+
+```sh
+git clone https://radroots.dev/git/tangle.git && cd tangle
+
+cargo check --workspace --locked
+```
+
+Copy the host and tenant config files:
+
+```sh
+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:
+
+```sh
+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:
+
+```sh
+curl http://localhost:7070/.well-known/tangle/ready
+
+curl --header 'Accept: application/nostr+json' --header 'Host: relay.radroots.test' http://localhost:7000/
+```
+
+## Protocol support
+
+- **All tenants:** [NIP-01](https://github.com/nostr-protocol/nips/blob/master/01.md), [NIP-11](https://github.com/nostr-protocol/nips/blob/master/11.md), [NIP-42](https://github.com/nostr-protocol/nips/blob/master/42.md), [NIP-45](https://github.com/nostr-protocol/nips/blob/master/45.md), and [NIP-70](https://github.com/nostr-protocol/nips/blob/master/70.md)
+- **Group-enabled tenants:** [NIP-29](https://github.com/nostr-protocol/nips/blob/master/29.md)
+
+## Status
+
+Tangle is under active development. Interfaces and configuration may change.
+
+## Acknowledgements 👋
+
+Tangle is a _mashup_ of:
+- `chorus` https://github.com/mikedilger/chorus
+- `zooid` https://gitea.coracle.social/coracle/zooid
+
+Thanks to [Mike](https://github.com/mikedilger) and [Jon](https://github.com/staab) for creating and open-sourcing these projects.
## License
-This repository is licensed under AGPL-3.0-or-later. See LICENSE.
+This repository is licensed under `AGPL-3.0-or-later`. See [LICENSE](LICENSE).