Развёртывание в DigitalOcean

Развёртывание nostrfy на DigitalOcean Droplet или App Platform — пошагово, с systemd, TLS и готовой к промышленной эксплуатации конфигурацией.

Два варианта: Droplet (ВМ, самый простой) или App Platform (контейнеры).

Вариант 1: Droplet (рекомендуется)

  1. Создайте Droplet: Ubuntu 24.04 LTS, любой размер (для начала достаточно 1 ГБ ОЗУ). Droplet в регионе рядом с вашими пользователями снижает задержку.
  2. Подключитесь по SSH и следуйте общему руководству по VPS:
sh
ssh root@<droplet-ip>
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
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
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
  1. Откройте порт в брандмауэре Droplet (рекомендуется DigitalOcean Cloud Firewall): разрешите входящий TCP 8080 (и 443, если добавляете TLS).
  2. Проверьте:
sh
curl http://<droplet-ip>:8080/health
  1. Добавьте TLS (wss://) с помощью certbot + nginx или управляемого балансировщика нагрузки DigitalOcean с сертификатом — затем установите relay.public_url = "wss://relay.example.com" и перезапустите.

Вариант 2: App Platform (контейнер)

App Platform собирается из Dockerfile репозитория (который скачивает заранее собранный релизный бинарник):

  1. Подключите ваш GitHub-репозиторий и создайте из него приложение.
  2. Порт: установите HTTP-порт 8080 (релей слушает именно там).
  3. Постоянный диск: смонтируйте том в /data (данные LMDB хранятся там — без него данные теряются при каждом развёртывании).
  4. Окружение: встроенный в образ deploy/nostrfy.container.toml можно заменить, смонтировав собственную конфигурацию в /etc/nostrfy/nostrfy.toml (создайте форк, который его копирует, или используйте COPY в Dockerfile в собственном репозитории).
  5. TLS: App Platform автоматически предоставляет https:// для домена приложения — установите relay.public_url соответственно.

Оба варианта

  • Обновления: повторно запустите install.sh + systemctl restart nostrfy (Droplet) или сделайте push в подключённый репозиторий (App Platform).
  • Вся конфигурация описана в справочнике по конфигурации.