Implantar no Azure

Implante o nostrfy numa VM do Azure ou no Azure Container Apps — passo a passo, com systemd, TLS e as ressalvas dos IPs públicos dinâmicos.

Opções: VM (recomendado) ou Container Apps.

Opção 1: Máquina virtual (recomendado)

  1. Crie uma VM: Ubuntu 24.04 LTS, Standard_B1s (1 GB) ou Standard_B2s (2 GB) para começar. Escolha uma região próxima dos seus usuários.
  2. Grupo de segurança de rede (NSG): adicione uma regra de entrada para TCP 8080 (e 443 para TLS). Restrinja a regra SSH ao seu IP.
  3. Conecte-se via SSH e siga o guia genérico de 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                 # defina 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. Verifique:
sh
curl http://<public-ip>:8080/health
  1. Adicione TLS (wss://) com certbot + nginx (como no guia de VPS) ou com um Application Gateway do Azure com certificado.
O IP público de uma VM do Azure pode mudar ao desalocar
Use um IP público estático para que relay.public_url continue válido.

Opção 2: Azure Container Apps

O Container Apps compila a partir do Dockerfile do repositório (que baixa o binário release pré-compilado):

  1. Crie um Container App a partir do repositório GitHub (ou envie a imagem para o ACR).
  2. Porta: defina a porta do contêiner como 8080.
  3. Memória: pelo menos 1 GB.
  4. Armazenamento persistente: monte um compartilhamento de arquivos do Azure Storage em /data para os dados LMDB.
  5. TLS: o Container Apps fornece https:// na URL do app — defina relay.public_url = "wss://<app>.<region>.azurecontainerapps.io" (ou um domínio personalizado).
Um relay nunca deve escalar para zero
Defina min replicas = 1. O deploy/nostrfy.container.toml embutido pode ser substituído montando o seu próprio nostrfy.toml em /etc/nostrfy/nostrfy.toml.