Implantar na DigitalOcean
Implante o nostrfy em um Droplet da DigitalOcean ou na App Platform — passo a passo, com systemd, TLS e uma configuração pronta para produção.
Duas opções: um Droplet (VM, o mais simples) ou a App Platform (contêineres).
Opção 1: Droplet (recomendado)
- Crie um Droplet: Ubuntu 24.04 LTS, qualquer tamanho (1 GB de RAM é suficiente para começar). Um Droplet em uma região próxima aos seus usuários reduz a latência.
- Acesse via SSH e siga o guia genérico de 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 # 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- Abra a porta no firewall do Droplet (o DigitalOcean Cloud Firewall é recomendado): permita o TCP de entrada
8080(e443se adicionar TLS). - Verifique:
sh
curl http://<droplet-ip>:8080/health- Adicione TLS (
wss://) com certbot + nginx, ou o balanceador de carga gerenciado da DigitalOcean com um certificado — em seguida definarelay.public_url = "wss://relay.example.com"e reinicie.
Opção 2: App Platform (contêiner)
A App Platform compila a partir do Dockerfile do repositório (que baixa o binário de
release pré-compilado):
- Conecte seu repositório do GitHub e crie um app a partir dele.
- Porta: defina a porta HTTP para
8080(o relay escuta nela). - Disco persistente: monte um volume em
/data(os dados LMDB ficam lá — sem ele, os dados são perdidos a cada implantação). - Env: o arquivo
deploy/nostrfy.container.tomlembutido na imagem pode ser substituído montando sua própria configuração em/etc/nostrfy/nostrfy.toml(crie um fork que o copie, ou use umCOPYno Dockerfile do seu próprio repo). - TLS: a App Platform fornece
https://automaticamente para o domínio do app — definarelay.public_urlde acordo.
Ambas as opções
- Atualizações: execute novamente
install.sh+systemctl restart nostrfy(Droplet), ou faça push para o repositório conectado (App Platform). - Toda a configuração está documentada na referência de configuração.