Развёртывание на AWS

Развёртывание nostrfy на AWS EC2, Lightsail или ECS/Fargate — шаг за шагом: systemd, TLS за обратным прокси и контрольный список для запуска в производство.

Варианты: EC2 (ВМ, рекомендуется), Lightsail (более простая ВМ) или ECS/Fargate (контейнеры).

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

  1. Запустите инстанс: Amazon Linux 2023 или Ubuntu 24.04 LTS, t3.small (2 ГБ ОЗУ) достаточно для начала. Выберите регион ближе к вашим пользователям.
  2. Группа безопасности: разрешите входящий TCP 8080 (и 443 для TLS). Ограничьте правило SSH вашим IP.
  3. Подключитесь по SSH и следуйте общему руководству по VPS:
sh
ssh -i your-key.pem ec2-user@<public-ip>        # для Ubuntu: ubuntu@<public-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                 # задайте 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. Проверьте:
sh
curl http://<public-ip>:8080/health
  1. Добавьте TLS (wss://) с certbot + nginx (как в руководстве по VPS) или с Application/Network Load Balancer и сертификатом ACM — затем задайте relay.public_url и перезапустите.

Вариант 2: Lightsail

Инстансы Lightsail работают точно так же, как в руководстве по EC2 — на вкладке сети находятся правила брандмауэра: откройте TCP 8080.

Вариант 3: ECS / Fargate (контейнер)

Dockerfile в репозитории скачивает готовый релизный бинарник во время сборки:

  1. Отправьте образ в ECR:
    sh
    docker buildx build --platform linux/amd64,linux/arm64 -t <account>.dkr.ecr.<region>.amazonaws.com/nostrfy .
  2. Создайте сервис ECS (Fargate, 1 задача) со смонтированным томом EFS в /data (постоянство LMDB — без него данные теряются при повторных развёртываниях).
  3. Откройте порт 8080; спереди поставьте ALB + сертификат ACM для TLS.
  4. Встроенную конфигурацию deploy/nostrfy.container.toml можно переопределить, смонтировав собственный nostrfy.toml в /etc/nostrfy/nostrfy.toml (например, форк, копирующий его в образ).

Elastic IP

Привяжите Elastic IP к инстансу, если вы его останавливаете/запускаете — иначе публичный IP изменится и public_url сломается.

TLS завершается на вашем прокси или у провайдера
Сам релей обслуживает обычный WebSocket на 8080 и учитывает X-Forwarded-Proto.