Справочник команд
Все команды 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, либо читает файл JSONL через --input, либо принимает данные через 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> Удаляет IP из сохранённого списка заблокированных NIP-86 (восстановление после самоблокировки); для применения перезапустите демон.
Фильтры подписок inbox/outbox
nostrfy расширяет синтаксис фильтров REQ для модели маршрутизации inbox/outbox двумя удобными ключами — это расширение nostrfy, а не часть какого-либо NIP. "outbox" раскрывается в "authors": только события, созданные этим ключом. "inbox" раскрывается в "#p": только события, адресованные этому ключу (упоминания, ответы, Zap и личные сообщения). Значения могут быть 64-значным hex или в кодировке 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 восстанавливаются из импортированных событий при первом запуске. Полное руководство — см. руководство по миграции.