Развёртывание в Google Cloud

Развёртывание nostrfy в Google Cloud Compute Engine или Cloud Run — шаг за шагом, с systemd, TLS и особенностями масштабирования до нуля.

Варианты: Compute Engine (ВМ, рекомендуется) или Cloud Run (контейнеры).

Вариант 1: Compute Engine (рекомендуется)

  1. Создайте ВМ: Ubuntu 24.04 LTS (или Debian), e2-small (2 ГБ) достаточно для начала. Выберите регион ближе к вашим пользователям.
  2. Правило брандмауэра: разрешите входящий TCP 8080 (и 443 для TLS). В разделе Network → Firewall создайте правило с целевыми тегами, назначенными вашей ВМ.
  3. Подключитесь по SSH (подойдёт кнопка SSH в консоли) и следуйте общему руководству по 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                 # задайте 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. Зарезервируйте статический IP (External IP → Reserve), чтобы public_url оставался действительным после перезагрузок.
  2. Проверьте:
sh
curl http://<external-ip>:8080/health
  1. Добавьте TLS (wss://) с certbot + nginx (как в руководстве по VPS) или с балансировщиком нагрузки GCP с управляемым сертификатом.

Вариант 2: Cloud Run (контейнер)

Cloud Run собирается из Dockerfile репозитория (который скачивает заранее собранный релизный бинарник):

  1. Создайте сервис из GitHub-репозитория (или отправьте образ в Artifact Registry).
  2. Порт: установите порт контейнера 8080.
  3. Выделите память: минимум 512 МБ (LMDB + асинхронный рантайм).
  4. Постоянное хранилище: подключите том Cloud Run (filestore/gcsfuse) в /data — LMDB нужна файловая система, поэтому монтирование GCS FUSE в /data подойдёт для сохранения данных.
  5. TLS: Cloud Run предоставляет https:// автоматически — установите relay.public_url = "wss://<service>.a.run.app" (или ваш собственный домен).
Cloud Run по умолчанию масштабируется до нуля
Для релея установите min instances = 1, чтобы он никогда не «остывал». Файл deploy/nostrfy.container.toml, встроенный в образ, можно заменить, смонтировав собственный nostrfy.toml в /etc/nostrfy/nostrfy.toml.