Руководство по установке

Требования, сборка из исходников, установка готового бинарника, проверка контрольных сумм и заметки о запуске nostrfy на FreeBSD.

Требования

  • Свежий стабильный инструментарий Rust (нужен только для сборки релея).
  • Машина с Linux.
  • Рекомендуется 2 GB RAM или больше — для VPS 0.25 vCPU / 512 MB см. заметку о малых ресурсах ниже.

VPS с малыми ресурсами (0.25 vCPU / 512 MB)

nostrfy проверен на стабильную работу даже когда база превышает объём памяти. Карта LMDB — это разреженная виртуальная резервация на 1 TiB — физический диск растёт только с записанными данными — а память процесса остаётся стабильной: релей с базой 252 MB использовал 7.9 MB приватного RSS (остальное — освобождаемый файловый кэш, который ядро вытесняет под давлением).

Для крошечного VPS одна настройка даёт наибольший эффект:

toml
[database]
search_index = false   # вдвое уменьшает размер базы данных и экономит CPU/IO
НастройкаЭффектИзмерено
search_index = falseОтключает индекс слов NIP-50 — поиск продолжает работать (совпадение по словам), но медленнее41.8 MB → 20.5 MB на 10 000 событий
По умолчаниюУже оптимизировано под малый объём памятиДля 512 MB изменений не требуется

Сборка из исходников

sh
git clone https://github.com/iqbqioza/nostrfy.git
cd nostrfy
cargo build --release

После сборки бинарник находится в target/release/nostrfy.

Установка готового бинарника

Релизный процесс прилагает Linux x86_64, Linux aarch64 и FreeBSD x86_64 готовые бинарники. Тот же install.sh работает в обеих ОС — определяет платформу, скачивает подходящий бинарник и проверяет его контрольную сумму:

sh
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh

FreeBSD

nostrfy собирается и работает на FreeBSD 13.x и 14.x (amd64). Установите Rust и соберите:

sh
pkg install -y rust
cargo build --release

Заметки о платформе:

  • Проверка живости процесса, используемая командами start/stop/restart, читает имя процесса через kern.proc.pid.<pid>.comm sysctl (в Linux используется /proc/<pid>/comm), поэтому на обеих платформах обнаруживается устаревший pid-файл, чей pid был переиспользован другой программой.
  • nostrfy start запускается как демон, как в Linux; стандартный демон с двойным fork работает со стандартной rc-интеграцией (service nostrfy start).
  • Проверка Blossom min_free_bytes использует statvfs, которую предоставляют обе системы; другого платформенного кода нет (сам релей — обычный асинхронный Rust на tokio).

Запуск на порту 80

Обычные пользователи не могут занять порт 80. Запустите через sudo или используйте более высокий порт, например 8080.

sh
nostrfy --config nostrfy.toml start

Пример: запуск на порту 8080 (доступно обычным пользователям; сначала измените порт в конфигурации).

Далее
nostrfy установлен. Следуйте быстрому старту.