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

Разверните nostrfy на виртуальной машине Azure или в Azure Container Apps — пошагово, с systemd, TLS и особенностями динамических публичных IP.

Варианты: VM (рекомендуется) или Container Apps.

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

  1. Создайте VM: Ubuntu 24.04 LTS, Standard_B1s (1 ГБ) или Standard_B2s (2 ГБ) для начала. Выберите регион ближе к вашим пользователям.
  2. Группа безопасности сети (NSG): добавьте входящее правило для TCP 8080 (и 443 для TLS). Ограничьте правило SSH вашим IP.
  3. Подключитесь по SSH и следуйте общему руководству по VPS:
sh
ssh <user>@<public-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. Проверьте:
sh
curl http://<public-ip>:8080/health
  1. Добавьте TLS (wss://) с certbot + nginx (как в руководстве по VPS) или через Azure Application Gateway с сертификатом.
Публичный IP виртуальной машины Azure может измениться при освобождении
Используйте статический публичный IP, чтобы relay.public_url оставался действительным.

Вариант 2: Azure Container Apps

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

  1. Создайте Container App из репозитория GitHub (или отправьте образ в ACR).
  2. Порт: установите порт контейнера 8080.
  3. Память: не менее 1 ГБ.
  4. Постоянное хранилище: смонтируйте файловый ресурс Azure Storage в /data для данных LMDB.
  5. TLS: Container Apps предоставляет https:// на URL приложения — установите relay.public_url = "wss://<app>.<region>.azurecontainerapps.io" (или собственный домен).
Релей никогда не должен масштабироваться до нуля
Установите min replicas = 1. Встроенный deploy/nostrfy.container.toml можно заменить, смонтировав собственный nostrfy.toml в /etc/nostrfy/nostrfy.toml.