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)
- 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. - Regra de firewall: permita TCP de entrada
8080(e443para TLS). Em Rede → Firewall, crie uma regra com as tags de destino que você atribuiu à VM. - 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- Reserve um IP estático (IP externo → Reservar) para que o
public_urlcontinue válido após reinicializações. - Verifique:
sh
curl http://<external-ip>:8080/health- 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):
- Crie um serviço a partir do repo do GitHub (ou envie a imagem para o Artifact Registry).
- Porta: defina a porta do contêiner como
8080. - Aloque memória: pelo menos 512 MB (LMDB + o runtime assíncrono).
- 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/datafunciona para persistência. - TLS: o Cloud Run fornece
https://automaticamente — definarelay.public_url = "wss://<service>.a.run.app"(ou seu domínio personalizado).