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
| Plataforma | Tipo | Guia |
|---|---|---|
| Fly.io | Plataforma gerenciada (contêineres, volumes, TLS) | fly.md |
| Digital Ocean | Droplet (VM) ou App Platform | deploy/digitalocean.md |
| AWS | EC2 (VM), Lightsail ou ECS | deploy/aws.md |
| Google Cloud | Compute Engine (VM) ou Cloud Run | deploy/gcp.md |
| Azure | VM ou Container Apps | deploy/azure.md |
| Qualquer VPS | Servidor Ubuntu/Debian padrão | deploy/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:
# 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/healthAntes 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:
[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 chaveVM ou contêiner?
- VM (systemd): mais simples, mais barato, controle total. Recomendado para a maioria das implantações de relay.
- Contêiner: use o
Dockerfiledo 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).