Руководство по установке
Требования, сборка из исходников, установка готового бинарника, проверка контрольных сумм и заметки о запуске 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 одна настройка даёт наибольший эффект:
[database]
search_index = false # вдвое уменьшает размер базы данных и экономит CPU/IO| Настройка | Эффект | Измерено |
|---|---|---|
search_index = false | Отключает индекс слов NIP-50 — поиск продолжает работать (совпадение по словам), но медленнее | 41.8 MB → 20.5 MB на 10 000 событий |
| По умолчанию | Уже оптимизировано под малый объём памяти | Для 512 MB изменений не требуется |
Сборка из исходников
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 работает в обеих ОС — определяет платформу, скачивает подходящий бинарник и проверяет его контрольную сумму:
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | shFreeBSD
nostrfy собирается и работает на FreeBSD 13.x и 14.x (amd64). Установите Rust и соберите:
pkg install -y rust
cargo build --releaseЗаметки о платформе:
- Проверка живости процесса, используемая командами
start/stop/restart, читает имя процесса черезkern.proc.pid.<pid>.commsysctl (в 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.
nostrfy --config nostrfy.toml startПример: запуск на порту 8080 (доступно обычным пользователям; сначала измените порт в конфигурации).