Posted in: 折腾记录

另外两个 Nostr Relay 程序

之前介绍过 最小化部署自己的 Nostr Relay 和 Blossom 媒体上传服务,又发现两个 Relay 程序,都可以用 Docker Compose 很方便的一键部署:

rnostr

rnostr 是 rust 写的一个 Nostr 中继器程序,支持的 NIPs 非常多。

docker-compose.yml

services:
  rnostr:
    image: rnostr/rnostr:latest
    container_name: rnostr
    user: "0:0"
    ports:
      - "8080:8080"
    volumes:
      - ./data:/rnostr/data
      - ./config:/rnostr/config
    restart: unless-stopped

我是使用 Root 运行,指定了 user:"0:0"。你也可以不写这行,或者换为 user:"1000:1000"

这是配置示例,放在 ./config/rnostr.toml 我只修改了以下部分,其他的按需修改或保持默认的注释掉。

# 修改你的 Relay 基本信息
[information]
name = "rnostr"
description = "A high-performance and scalable nostr relay written in Rust."
software = "https://github.com/rnostr/rnostr"
# 管理员公钥 hex
pubkey = ""
# 联系方式,可注释掉不写
contact = ""

# 其他的省略...

# 开启认证,防止 SPAM
[auth]
enabled = true

# 方式一:NIP‑42 验证客户端身份,并限定客户端 pubkey
pubkey_whitelist = ["PUBKEY1","PUBKEY2"]
pubkey_blacklist = ["PUBKEY_BAD"]

# 方式二:仅过滤事件作者,不要求客户端认证
event_pubkey_whitelist = ["AUTHOR_PUBKEY_ALLOWED"]
event_pubkey_blacklist = ["AUTHOR_PUBKEY_BANNED"]

allow_mentioning_whitelisted_pubkeys = true

这只是部分示例,请从官方示例获得完整配置,方法一是依赖 NIP-42 来验证,不过有的客户端还不支持,或者自己用脚本自动发布,不支持 NIP-42 的话用方法二认证。

目录结构如下,在 docker-compose.yml 所在文件夹执行 docker compose up -d 即可启动

.
├── data/
├── config/
│   └── rnostr.toml
└── docker-compose.yml

Khatru Pyramid

Khatru Pyramid 是一个邀请制的中继器,除了管理员外,其余的白名单账户必须由另一个白名单账户邀请。默认一个账户可以邀请另外的3个,不过这个可以在配置里改。

docker-compose.yml

services:
  khatru-pyramid:
    image: tijlxyz/khatru-pyramid:latest
    container_name: khatru-pyramid
    ports:
      - "3334:3334"
    environment:
      DOMAIN: "nostr.com"
      RELAY_NAME: "Nostr Relay"
      RELAY_PUBKEY: "PUBKEY"
      RELAY_CONTACT: ""
      RELAY_ICON: ""
      MAX_INVITES_PER_PERSON: "3"
    volumes:
      - ./users.json:/app/users.json
      - ./db:/app/db
    restart: unless-stopped

users.json 是允许的用户列表

{
  "AdminPUBKEY": "",
  "PUBKEY1": "AdminPUBKEY",
  "PUBKEY2": "AdminPUBKEY" 
}

第一行的是管理员账户,无需被邀请,其余的需要在后面写明邀请者公钥。

这个很简洁,也不用怎么配置,将这两个文件放在同一个文件夹然后执行 docker compose up -d 即可启动 Docker 容器在后台运行,使用 Nginx 反代 3334 端口即可。

注: 其中需要填写 PUBKEY 部分都必须是十六进制格式的公钥而非 npub1...,可以通过这个网站转换: https://damus.io/key/

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Back to Top