Развёртывание на AWS
Развёртывание nostrfy на AWS EC2, Lightsail или ECS/Fargate — шаг за шагом: systemd, TLS за обратным прокси и контрольный список для запуска в производство.
Варианты: EC2 (ВМ, рекомендуется), Lightsail (более простая ВМ) или ECS/Fargate (контейнеры).
Вариант 1: EC2 (рекомендуется)
- Запустите инстанс: Amazon Linux 2023 или Ubuntu 24.04 LTS,
t3.small(2 ГБ ОЗУ) достаточно для начала. Выберите регион ближе к вашим пользователям. - Группа безопасности: разрешите входящий TCP
8080(и443для TLS). Ограничьте правило SSH вашим IP. - Подключитесь по 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- Проверьте:
sh
curl http://<public-ip>:8080/health- Добавьте TLS (
wss://) с certbot + nginx (как в руководстве по VPS) или с Application/Network Load Balancer и сертификатом ACM — затем задайтеrelay.public_urlи перезапустите.
Вариант 2: Lightsail
Инстансы Lightsail работают точно так же, как в руководстве по EC2 — на вкладке сети находятся
правила брандмауэра: откройте TCP 8080.
Вариант 3: ECS / Fargate (контейнер)
Dockerfile в репозитории скачивает готовый релизный бинарник во время сборки:
- Отправьте образ в ECR: sh
docker buildx build --platform linux/amd64,linux/arm64 -t <account>.dkr.ecr.<region>.amazonaws.com/nostrfy . - Создайте сервис ECS (Fargate, 1 задача) со смонтированным томом EFS в
/data(постоянство LMDB — без него данные теряются при повторных развёртываниях). - Откройте порт
8080; спереди поставьте ALB + сертификат ACM для TLS. - Встроенную конфигурацию
deploy/nostrfy.container.tomlможно переопределить, смонтировав собственныйnostrfy.tomlв/etc/nostrfy/nostrfy.toml(например, форк, копирующий его в образ).
Elastic IP
Привяжите Elastic IP к инстансу, если вы его останавливаете/запускаете — иначе публичный
IP изменится и public_url сломается.