Nostr – это инновационный протокол, создающий децентрализованную платформу социальных сетей, которая отличается легкостью и гибкостью. Здесь мы расскажем вам о том, как создать узел Nostr Relay с помощью Nostream на Ubuntu Мы также покажем, как подключиться к новому узлу на клиентах Gossip и Amethyst.
Зачем использовать Nostream?
Nostream – это ретранслятор nostr, написанный на языке Typescript. Основное преимущество использования nostream заключается в том, что он дает вам контроль над данными в социальных сетях. Как и в случае с pleroma, размещение собственного узла ретрансляции Nostr означает, что вы владеете своей платформой и данными, передаваемыми по сети.
Кроме того, Nostream поддерживает полностью Docker-ориентированную установку. Это означает, что вы можете легко развернуть его на любом существующем серверном стеке.
Установка Nostream
Получение Docker Compose
В этой статье предполагается, что у вас есть VPS с оперативной памятью не менее 8 Гбайт, а также доменное имя с A- и PTR-записями, указывающей на IP-адрес вашего сервера. Также предполагается, что у вас уже есть учетная запись Nostr с рабочей парой ключей.
Для начала получите ключ подписи для репозитория бинарных пакетов проекта Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg
Создайте новый файл репозитория для Docker в файле «/etc/apt/sources.list.d»:
sudo nano /etc/apt/sources.list.d/docker.list
Вставьте следующий блок кода в новый файл репозитория и сохраните его:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable
Обновите и модернизируйте систему Ubuntu выполнив следующую команду:
sudo apt update && sudo apt upgrade
Установите бинарный файл Docker вместе с плагином Docker Compose и зависимостями:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx git nodejs npm
Последнее, добавьте текущего пользователя в системную группу Docker:
sudo usermod -aG docker ramces
Получение и установка nostream
Получите git-репозиторий nostream и перейдите в папку репозитория:
git clone https://github.com/Cameri/nostream.git && cd ./nostream
Запустите скрипт nostream bootstrap для сборки и развертывания демона сервера nostream в качестве контейнера Docker на вашей системе:
./scripts/start
Дождитесь, пока Docker-контейнер nostream напечатает логотип «nostream», затем нажмите Ctrl + C.
![](https://itshaman.ru/images/x10287_800.webp.pagespeed.ic.I9wKtCOFQ1.webp)
Откройте файл конфигурации экземпляра nostream с помощью любимого текстового редактора:
nano ./.nostr/settings.yaml
Замените значение переменных relay_url: и name: на доменное имя экземпляра.
![](https://itshaman.ru/images/x10288_800.webp.pagespeed.ic.C6dmVgiD54.webp)
Замените значение переменной pubkey: на открытый ключ вашего основного аккаунта Nostr.
![](https://itshaman.ru/images/x10289_800.webp.pagespeed.ic.WS9cNGRJUV.webp)
Измените адрес электронной почты в переменной contact: на рабочий, который вы используете в данный момент.
![](https://itshaman.ru/images/x10290_800.webp.pagespeed.ic.XCAxYTZD2L.webp)
Откройте файл «docker-compose.yml» вашего экземпляра:
nano ./docker-compose.yml
Перейдите к категории «environment:», затем замените значение переменной окружения «SECRET:» на случайную строку символов.
![](https://itshaman.ru/images/x10291_800.webp.pagespeed.ic.qXxCek-sPy.webp)
Примечание: Для генерации случайной строки символов можно выполнить следующую команду: cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 64 | head -n 1
После этого перезапустите ваш экземпляр nostream:
./scripts/start
Доступ к Nostream публично
Чтобы получить доступ к nostream на вашем доменном имени, нам необходимо создать Обратный прокси-сервер Nginx для маршрутизации трафика к экземпляру Docker
Создайте новый файл конфигурации сайта для экземпляра nostream:
sudo nano /etc/nginx/sites-available/nostream
Вставьте следующий блок кода в новый файл конфигурации сайта:
server { server_name nostr.myvpsserver.top; location / { proxy_pass http://127.0.0.1:8008; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; } }
Создайте символическую ссылку для нового файла конфигурации сайта в файле «/etc/nginx/sites-enabled/»:
sudo ln -s /etc/nginx/sites-available/nostream /etc/nginx/sites-enabled
Тестируйте настройки Nginx:
sudo nginx -t
Если все в порядке, примените новые настройки, перезапустив демон сервера Nginx:
sudo systemctl restart nginx
Защита Nostream с помощью SSL-сертификата
Убедитесь, что на вашем VPS запущен основной пакет snap:
sudo snap install core
Установите пакет certbot snap от Electronic Frontier Foundation (EFF):
sudo snap install certbot --classic
Зарегистрируйте свою установку certbot в EFF, выполнив следующую команду:
sudo certbot register --agree-tos -m you@your-email.invalid
Запросите новый SSL-сертификат для обратного прокси-сервера nostream:
sudo certbot --nginx -d nostr.myvpsserver.top
Проверьте, работает ли ваш новый релей nostream, открыв браузер и перейдя на его веб-адрес.
Подключение nostream к Gossip Nostr Client
Чтобы подключить новый ретранслятор nostream к Gossip, щелкните категорию «Релеи» на левой боковой панели программы.
![](https://itshaman.ru/images/x10292_800.webp.pagespeed.ic.2mUpmO-ZJu.webp)
Нажмите кнопку Add Relay в категории «Relays».
![](https://itshaman.ru/images/x10293_250.webp.pagespeed.ic.mcrN0wZGHI.webp)
В результате появится небольшое текстовое поле, в котором можно написать адрес вашего экземпляра nostream. Укажите адрес нового ретранслятора вместе с заголовком протокола WebSocket «wss://».
![](https://itshaman.ru/images/x10294_800.webp.pagespeed.ic.78Qpgl4coz.webp)
Нажмите кнопку «Check», затем «Configure» для настройки нового ретранслятора.
Gossip загрузит страницу настроек, где вы сможете определить, как новый ретранслятор будет вести себя с вашим клиентом. Чтобы отправлять и получать сообщения от своего экземпляра, переключите переключатели «Чтение» и «Запись» на странице настроек.
Для связи с другими реле переключите переключатели «Входящие», «Исходящие» и «Рекламировать».
![](https://itshaman.ru/images/x10295_800.webp.pagespeed.ic.Dywsvd52c9.webp)
Проверьте работоспособность своего реле, отправив новую заметку Nostr.
![](https://itshaman.ru/images/x10296_800.webp.pagespeed.ic.l5CNmN-ly1.webp)
Связь nostream с Nostr-клиентом Amethyst
Помимо Gossip, вы можете связать ваш новый экземпляр nostream с другими Nostr-клиентами, например Amethyst. Для этого щелкните значок пользователя в левом верхнем углу приложения.
![](https://itshaman.ru/images/x10297_500.webp.pagespeed.ic.LpMFJNOMEo.webp)
На боковой панели выберите опцию «Relays».
![](https://itshaman.ru/images/x10298_500.webp.pagespeed.ic.CDzkmCbxip.webp)
Выберите текстовое поле «Добавить ретранслятор» и введите адрес нового ретранслятора без заголовка протокола.
![](https://itshaman.ru/images/x10299_500.webp.pagespeed.ic.R17QMzOUTv.webp)
Нажмите кнопку «Добавить», чтобы применить новый экземпляр nostream к вашему клиенту.
Проверьте, правильно ли ваш новый экземпляр передает сообщения, отправив образец записки Nostr.
![](https://itshaman.ru/images/x10300_800.webp.pagespeed.ic.1KT3aCu_MQ.webp)
Размещение ретранслятора Nostr – это лишь один из способов вернуть контроль над своей цифровой жизнью.
Комментарии (0)