Visão geral da implantação

Como o nostrfy é distribuído e como implantá-lo — Fly.io, AWS, Google Cloud, Azure, DigitalOcean ou qualquer VPS, com notas sobre TLS, systemd e contêineres.

Um binário, várias plataformas

O nostrfy oferece binários pré-compilados para x86_64 e aarch64 (artefatos de release do GitHub, verificados por checksum via install.sh), uma imagem de contêiner que baixa esses binários (sem necessidade de compilação) e guias de implantação para as principais plataformas.

Plataformas

PlataformaTipoGuia
Fly.ioPlataforma gerenciada (contêineres, volumes, TLS)fly.md
Digital OceanDroplet (VM) ou App Platformdeploy/digitalocean.md
AWSEC2 (VM), Lightsail ou ECSdeploy/aws.md
Google CloudCompute Engine (VM) ou Cloud Rundeploy/gcp.md
AzureVM ou Container Appsdeploy/azure.md
Qualquer VPSServidor Ubuntu/Debian padrãodeploy/vps.md

O padrão comum para VMs

Todos os guias de VM (Digital Ocean, AWS EC2, GCP, Azure, qualquer VPS) seguem o mesmo padrão:

sh
# 1. Instale o binário da última release (sem sudo para a instalação em si)
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh

# 2. Baixe o modelo de configuração e edite (sem clonar o repositório)
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

# 3. Baixe a unit systemd e inicie o serviço
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. Abra a porta (geralmente 8080) no firewall do provedor e verifique
curl http://localhost:8080/health

Antes de entrar em produção

Cada implantação usa as mesmas opções de nostrfy.toml. Antes de entrar em produção, defina pelo menos:

toml
[relay]
name = "My Relay"
public_url = "wss://relay.example.com"   # obrigatório para NIP-42 AUTH / NIP-62 / NIP-98
private_key = ""                          # execute 'nostrfy genkey' e cole a chave

VM ou contêiner?

  • VM (systemd): mais simples, mais barato, controle total. Recomendado para a maioria das implantações de relay.
  • Contêiner: use o Dockerfile do repositório (baixa o binário de release no momento do build) na Fly.io, Digital Ocean App Platform, AWS ECS, GCP Cloud Run ou Azure Container Apps. É necessário armazenamento persistente para os dados LMDB (/data).

Host de mídia Blossom

Se blossom.host estiver definido, aponte esse nome de host para a mesma porta no proxy TLS também (consulte os blocos nginx/Caddy no guia de VPS).

O TLS é terminado pelo seu proxy ou pelo provedor
O relay em si serve WebSocket simples na porta 8080 e respeita X-Forwarded-Proto.