Sign inSign up

ziomc/chronicle

By ziomc

•Updated 5 months ago

Chronicle a personal nostr relay built on the Khatru framework

Image
Networking
0

268

ziomc/chronicle repository overview

⁠Docker image of chronicle⁠, a relay for the nostr protocol.

Chronicle is a personal relay Nostr, built on the Khatru framework, that stores complete conversations, media included, in which the owner has taken part and nothing else: pure signal. 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.

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.

It also include a Blossom media server, so you can use it to store all your images and attachments; the Blossom server can also optionally backup media for other authors, to create a fallback if the original blobs got lost (the BUD/NIP that manages the retrieval process is in progress).

In this image, you need to define two persistent volumes:

  • Database (db:/app/db)
  • Blossom Files (assets:/app/assets) These store the post database and the files shared via Blossom, respectively.

The only mandatory variable is OWNER_PUBKEY, which restricts posting privileges solely to the specified Nostr key.

Below is an example of the docker-compose:

services:
  chronicle:
    image: ziomc/chronicle:latest
    volumes:
      - db:/app/db
      - assets:/app/assets
    ports:
      - 3334:3334/tcp
    environment:
        OWNER_PUBKEY: "dc2be7fdba0c8a1bf9065cdee45c9484574e780f74694251e9c95d16432655b9"
        RELAY_NAME: "Nostr Relay"
        RELAY_DESCRIPTION: "My Personal Chronicle Relay"
        RELAY_URL: "nostr-relay.mydomain.com"
        RELAY_ICON: ""
        RELAY_CONTACT: "[email protected]"
        REFRESH_INTERVAL: 24
        MIN_FOLLOWERS: 3
        POW_WHITELIST: ""
        POW_DM_WHITELIST: ""
        BLOSSOM_PUBLIC_URL: "http://nostr-relay.mydomain.com:3334"
        BLOSSOM_BACKUP_MEDIA: "TRUE"
        FETCH_ALL_INTERACTIONS: "TRUE"
        SKIP_DELETIONS: "FALSE"
        NEGENTROPY="TRUE"
    restart: always

volumes:
    db:
    assets:

The url will be ws://nostr-relay.mydomain.com:3334

If you want encrypt the data transfer with SSL, you can use products like Caddy/Nginx/Traefik/HAProxy to automatically get a valid certificate.

In this case, the url will be wss://nostr-relay.mydomain.com

Tag summary

Content type

Image

Digest

sha256:9aa0a91db…

Size

292.6 MB

Last updated

5 months ago

docker pull ziomc/chronicle