Обзор развёртывания
Как распространяется nostrfy и как его развернуть — Fly.io, AWS, Google Cloud, Azure, DigitalOcean или любой VPS, с заметками о TLS, systemd и контейнерах.
Один бинарник, несколько платформ
nostrfy поставляет готовые бинарники для x86_64 и aarch64 (артефакты
релизов GitHub, проверяемые контрольной суммой через install.sh), образ контейнера, который скачивает эти бинарники (компиляция не нужна), и руководства по развёртыванию для основных
платформ.
Платформы
| Платформа | Тип | Руководство |
|---|---|---|
| Fly.io | Управляемая платформа (контейнеры, тома, TLS) | fly.md |
| Digital Ocean | Droplet (VM) или App Platform | deploy/digitalocean.md |
| AWS | EC2 (VM), Lightsail или ECS | deploy/aws.md |
| Google Cloud | Compute Engine (VM) или Cloud Run | deploy/gcp.md |
| Azure | VM или Container Apps | deploy/azure.md |
| Любой VPS | Обычный сервер Ubuntu/Debian | deploy/vps.md |
Общий шаблон для VM
Все руководства для VM (Digital Ocean, AWS EC2, GCP, Azure, любой VPS) следуют одному шаблону:
# 1. Установите последний релизный бинарник (sudo для самой установки не нужен)
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
# 2. Скачайте шаблон конфигурации и отредактируйте его (клонировать репозиторий не нужно)
sudo mkdir -p /etc/nostrfy
sudo curl -fsSL -o /etc/nostrfy/nostrfy.toml \
https://raw.githubusercontent.com/iqbqioza/nostrfy/main/deploy/nostrfy.toml
sudo nano /etc/nostrfy/nostrfy.toml # задайте name, public_url, private_key
# 3. Скачайте systemd-юнит и запустите сервис
sudo curl -fsSL -o /etc/systemd/system/nostrfy.service \
https://raw.githubusercontent.com/iqbqioza/nostrfy/main/deploy/nostrfy.service
sudo systemctl daemon-reload
sudo systemctl enable --now nostrfy
# 4. Откройте порт (обычно 8080) в брандмауэре провайдера и проверьте
curl http://localhost:8080/healthПеред запуском в производство
Каждое развёртывание использует одни и те же параметры nostrfy.toml. Перед запуском в производство задайте как минимум:
[relay]
name = "My Relay"
public_url = "wss://relay.example.com" # обязательно для NIP-42 AUTH / NIP-62 / NIP-98
private_key = "" # выполните 'nostrfy genkey' и вставьте ключVM или контейнер?
- VM (systemd): проще всего, дешевле, полный контроль. Рекомендуется для большинства развёртываний релея.
- Контейнер: используйте
Dockerfileиз репозитория (скачивает релизный бинарник во время сборки) на Fly.io, Digital Ocean App Platform, AWS ECS, GCP Cloud Run или Azure Container Apps. Для данных LMDB (/data) требуется постоянное хранилище.
Медиа-хост Blossom
Если задан blossom.host, направьте это имя хоста на тот же порт в TLS-прокси (примеры блоков
nginx/Caddy см. в руководстве по VPS).