Skip to content

Commit 8467dbe

Browse files
committed
Add README
1 parent 74f5f7a commit 8467dbe

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed

README.md

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
![image](logo.png)
2+
3+
Chronicle is a personal relay [Nostr](https://njump.me), built on the [Khatru](https://khatru.nostr.technology) framework, that stores complete conversations in which the owner has taken part and nothing else: pure signal.
4+
This is possible since writing is limited to the threads in which the owner has partecipated (either as an original poster or with a reply/zap/reaction), and only to his trusted network (WoT), to protect against spam.
5+
6+
Chronicle fits well in the Outbox model, so you can use it as your read/write relay, and it also automatically becomes a space-efficient backup relay.
7+
8+
## How it works
9+
10+
Every incoming event is verified against some simple rules.
11+
If it's signed by the relay owner, it is automatically accepted.
12+
If it is posted by someone else it is checked if it is part of in a conversation in which the owner participated *and* if the author is in the owner's social graph (to the 2nd degree), then it is accepted, otherwise it is rejected.
13+
14+
If an event published by the owner refers to a conversation that is not yet known by the relay, it tries to fetch it.
15+
16+
## How to run
17+
18+
After cloning the repo create an `.env` file based on the example provided in the repository and personalize it:
19+
20+
21+
```bash
22+
# Your pubkey, in hex format
23+
OWNER_PUBKEY="xxxxxxxxxxxxxxxxxxxxxxxxxxx...xxx"
24+
25+
# Relay info, for NIP-11
26+
RELAY_NAME="YourRelayName"
27+
RELAY_DESCRIPTION="Your relay description"
28+
RELAY_URL="wss://chronicle.xxxxxxxx.com"
29+
RELAY_ICON="https://chronicle.xxxxxxxx.com/web/icon.png"
30+
RELAY_CONTACT="your_email_or_website"
31+
32+
# The relay pubkey, in hex format
33+
RELAY_PUBKEY="RelayPublicKey"
34+
35+
# The path you would like the database to be saved
36+
# The path can be relative to the binary, or absolute
37+
DB_PATH="db/"
38+
39+
# Where we should store the index.html and static files
40+
# The path can be relative to the binary, or absolute
41+
WEB_PATH="web/"
42+
43+
# Interval in hours to refresh the web of trust
44+
REFRESH_INTERVAL_HOURS=24
45+
46+
# How many followers before they're allowed in the WoT
47+
MINIMUM_FOLLOWERS=3
48+
49+
# Periodically try fetch notes from other relays
50+
FETCH_SYNC="FALSE"
51+
```
52+
53+
Build it with `go install` or `go build`, then run it.
54+
55+
## Credits
56+
57+
Chronicle uses some code from the great [wot-relay](https://github.com/bitvora/wot-relay).
58+
59+
## License
60+
61+
This project is licensed under the MIT License.

logo.png

7.54 KB
Loading

0 commit comments

Comments
 (0)