Развёртывание в DigitalOcean
Развёртывание nostrfy на DigitalOcean Droplet или App Platform — пошагово, с systemd, TLS и готовой к промышленной эксплуатации конфигурацией.
Два варианта: Droplet (ВМ, самый простой) или App Platform (контейнеры).
Вариант 1: Droplet (рекомендуется)
- Создайте Droplet: Ubuntu 24.04 LTS, любой размер (для начала достаточно 1 ГБ ОЗУ). Droplet в регионе рядом с вашими пользователями снижает задержку.
- Подключитесь по SSH и следуйте общему руководству по VPS:
sh
ssh root@<droplet-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- Откройте порт в брандмауэре Droplet (рекомендуется DigitalOcean Cloud Firewall): разрешите входящий TCP
8080(и443, если добавляете TLS). - Проверьте:
sh
curl http://<droplet-ip>:8080/health- Добавьте TLS (
wss://) с помощью certbot + nginx или управляемого балансировщика нагрузки DigitalOcean с сертификатом — затем установитеrelay.public_url = "wss://relay.example.com"и перезапустите.
Вариант 2: App Platform (контейнер)
App Platform собирается из Dockerfile репозитория (который скачивает заранее собранный
релизный бинарник):
- Подключите ваш GitHub-репозиторий и создайте из него приложение.
- Порт: установите HTTP-порт
8080(релей слушает именно там). - Постоянный диск: смонтируйте том в
/data(данные LMDB хранятся там — без него данные теряются при каждом развёртывании). - Окружение: встроенный в образ
deploy/nostrfy.container.tomlможно заменить, смонтировав собственную конфигурацию в/etc/nostrfy/nostrfy.toml(создайте форк, который его копирует, или используйтеCOPYв Dockerfile в собственном репозитории). - TLS: App Platform автоматически предоставляет
https://для домена приложения — установитеrelay.public_urlсоответственно.
Оба варианта
- Обновления: повторно запустите
install.sh+systemctl restart nostrfy(Droplet) или сделайте push в подключённый репозиторий (App Platform). - Вся конфигурация описана в справочнике по конфигурации.