Развёртывание в Google Cloud
Развёртывание nostrfy в Google Cloud Compute Engine или Cloud Run — шаг за шагом, с systemd, TLS и особенностями масштабирования до нуля.
Варианты: Compute Engine (ВМ, рекомендуется) или Cloud Run (контейнеры).
Вариант 1: Compute Engine (рекомендуется)
- Создайте ВМ: Ubuntu 24.04 LTS (или Debian),
e2-small(2 ГБ) достаточно для начала. Выберите регион ближе к вашим пользователям. - Правило брандмауэра: разрешите входящий TCP
8080(и443для TLS). В разделе Network → Firewall создайте правило с целевыми тегами, назначенными вашей ВМ. - Подключитесь по 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- Зарезервируйте статический IP (External IP → Reserve), чтобы
public_urlоставался действительным после перезагрузок. - Проверьте:
sh
curl http://<external-ip>:8080/health- Добавьте TLS (
wss://) с certbot + nginx (как в руководстве по VPS) или с балансировщиком нагрузки GCP с управляемым сертификатом.
Вариант 2: Cloud Run (контейнер)
Cloud Run собирается из Dockerfile репозитория (который скачивает заранее
собранный релизный бинарник):
- Создайте сервис из GitHub-репозитория (или отправьте образ в Artifact Registry).
- Порт: установите порт контейнера
8080. - Выделите память: минимум 512 МБ (LMDB + асинхронный рантайм).
- Постоянное хранилище: подключите том Cloud Run (filestore/gcsfuse) в
/data— LMDB нужна файловая система, поэтому монтирование GCS FUSE в/dataподойдёт для сохранения данных. - TLS: Cloud Run предоставляет
https://автоматически — установитеrelay.public_url = "wss://<service>.a.run.app"(или ваш собственный домен).