Implantar no Google Cloud

Implante o nostrfy no Google Cloud Compute Engine ou Cloud Run — passo a passo, com systemd, TLS e as ressalvas de escala a zero.

Opções: Compute Engine (VM, recomendado) ou Cloud Run (contêineres).

Opção 1: Compute Engine (recomendado)

  1. Crie uma VM: Ubuntu 24.04 LTS (ou Debian), e2-small (2 GB) é suficiente para começar. Escolha uma região próxima aos seus usuários.
  2. Regra de firewall: permita TCP de entrada 8080 (e 443 para TLS). Em Rede → Firewall, crie uma regra com as tags de destino que você atribuiu à VM.
  3. Acesse via SSH (o botão SSH do console funciona) e siga o guia genérico de VPS:
sh
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. Reserve um IP estático (IP externo → Reservar) para que o public_url continue válido após reinicializações.
  2. Verifique:
sh
curl http://<external-ip>:8080/health
  1. Adicione TLS (wss://) com certbot + nginx (como no guia de VPS) ou um balanceador de carga GCP com um certificado gerenciado.

Opção 2: Cloud Run (contêiner)

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

  1. Crie um serviço a partir do repo do GitHub (ou envie a imagem para o Artifact Registry).
  2. Porta: defina a porta do contêiner como 8080.
  3. Aloque memória: pelo menos 512 MB (LMDB + o runtime assíncrono).
  4. Armazenamento persistente: anexe um volume do Cloud Run (filestore/gcsfuse) em /data — o LMDB precisa de um sistema de arquivos, portanto uma montagem GCS FUSE em /data funciona para persistência.
  5. TLS: o Cloud Run fornece https:// automaticamente — defina relay.public_url = "wss://<service>.a.run.app" (ou seu domínio personalizado).
O Cloud Run escala para zero por padrão
Para um relay, defina min instances = 1 para que ele nunca esfrie. O deploy/nostrfy.container.toml embutido na imagem pode ser substituído montando seu próprio nostrfy.toml em /etc/nostrfy/nostrfy.toml.