命令参考
所有 nostrfy 命令:init、start、stop、stats、upgrade 和 migrate-strfry,外加 CLI 访问列表和 inbox/outbox 订阅过滤器。
概览
所有命令都接受 --config <path>(默认 nostrfy.toml)。
| 命令 | 说明 |
|---|---|
nostrfy init | 写入默认 nostrfy.toml 并退出;文件以 0600 权限创建 |
nostrfy genkey | 为 NIP-29 群组生成密钥,写入 relay.private_key,将配置设为 0600 并打印公钥;当文件在读取后发生变化时中止而不写入 |
nostrfy check | 校验配置(启动前运行) |
nostrfy start | 以守护进程方式启动;--foreground 在终端中运行 |
nostrfy stop | 停止正在运行的守护进程 |
nostrfy restart | 停止并重新启动(重新读取配置) |
nostrfy stats | 显示实时统计 |
nostrfy upgrade [version] | 将二进制更新到最新 GitHub 发布版(或指定版本);下载匹配平台的资产,校验其 sha256 校验和并运行 --version 探测,然后原子替换二进制;并发运行通过锁文件串行化;除非指定版本,否则不会降级;--force 重新安装 |
nostrfy migrate-strfry | 从 strfry 中继导入事件 — 可通过 --strfry-db 运行 strfry export,用 --input 读取 JSONL 文件,或通过 stdin 管道输入;可重复运行,支持 --dry-run、--since 和可选的设置合并 |
管理访问列表
中继公钥白名单/黑名单和 Blossom 上传白名单存储在 LMDB 中并立即生效 — 运行中的守护进程会自动重载:
nostrfy relay allow npub1...
nostrfy relay deny npub1...
nostrfy relay list
nostrfy blossom allow npub1...
nostrfy blossom deny npub1...
nostrfy blossom list被拒绝的公钥在发布时始终被拒绝,读取时也永远不会被提供。
nostrfy access unblockip <ip> 从持久化的 NIP-86 被封 IP 列表中移除一个 IP
(自我锁定恢复);重启守护进程以生效。
Inbox/outbox 订阅过滤器
nostrfy 为 inbox/outbox 路由模型扩展了 REQ 过滤器语法,增加了两个便捷键 — 这是 nostrfy
扩展,不属于任何 NIP。"outbox" 展开为 "authors":只包含由该公钥创作的事件。 "inbox" 展开为 "#p":只包含发给该公钥的事件(提及、回复、Zap 和私信)。
值可以是 64 位十六进制或 npub1 编码,也可以是与现有 authors/#p 键合并的数组;无效的公钥会拒绝该订阅:
["REQ", "my-feed", {"outbox": "npub1..."}]
["REQ", "mentions", {"inbox": "npub1...", "kinds": [1, 7]}]端点也有写入限制:/outbox 只接受由连接的 NIP-42 认证公钥创作的事件
(server.outbox_write_policy = "any"),或仅接受中继自身的事件("relay"); /inbox 只接受带有 p 标签的事件。
从 strfry 迁移
用一条命令导入现有 strfry 中继的事件。迁移是离线的(先停止 nostrfy 中继 — 数据库被占用时它会拒绝运行), 读取 strfry 自己的导出格式,且可安全重复运行:重复项被跳过,删除副作用会重新应用。
# 先 dry-run — 验证每个事件,不写入任何内容
nostrfy migrate-strfry --strfry-db /var/lib/strfry-db --dry-run
# 导入(先停止 nostrfy 中继)
nostrfy migrate-strfry --strfry-db /var/lib/strfry-db它还会提议将等效的 strfry 设置合并到 nostrfy.toml,并可在中断后用 --since 续传。NIP-29 群组和 NIP-43 角色会在首次启动时从导入的事件重建。完整操作手册见 迁移指南。