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.
Откройте файл конфигурации экземпляра nostream с помощью любимого текстового редактора:
nano ./.nostr/settings.yaml
Замените значение переменных relay_url: и name: на доменное имя экземпляра.
Замените значение переменной pubkey: на открытый ключ вашего основного аккаунта Nostr.
Измените адрес электронной почты в переменной contact: на рабочий, который вы используете в данный момент.
Откройте файл «docker-compose.yml» вашего экземпляра:
nano ./docker-compose.yml
Перейдите к категории «environment:», затем замените значение переменной окружения «SECRET:» на случайную строку символов.
Примечание: Для генерации случайной строки символов можно выполнить следующую команду: 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, щелкните категорию «Релеи» на левой боковой панели программы.
Нажмите кнопку Add Relay в категории «Relays».
В результате появится небольшое текстовое поле, в котором можно написать адрес вашего экземпляра nostream. Укажите адрес нового ретранслятора вместе с заголовком протокола WebSocket «wss://».
Нажмите кнопку «Check», затем «Configure» для настройки нового ретранслятора.
Gossip загрузит страницу настроек, где вы сможете определить, как новый ретранслятор будет вести себя с вашим клиентом. Чтобы отправлять и получать сообщения от своего экземпляра, переключите переключатели «Чтение» и «Запись» на странице настроек.
Для связи с другими реле переключите переключатели «Входящие», «Исходящие» и «Рекламировать».
Проверьте работоспособность своего реле, отправив новую заметку Nostr.
Связь nostream с Nostr-клиентом Amethyst
Помимо Gossip, вы можете связать ваш новый экземпляр nostream с другими Nostr-клиентами, например Amethyst. Для этого щелкните значок пользователя в левом верхнем углу приложения.
На боковой панели выберите опцию «Relays».
Выберите текстовое поле «Добавить ретранслятор» и введите адрес нового ретранслятора без заголовка протокола.
Нажмите кнопку «Добавить», чтобы применить новый экземпляр nostream к вашему клиенту.
Проверьте, правильно ли ваш новый экземпляр передает сообщения, отправив образец записки Nostr.
Размещение ретранслятора Nostr – это лишь один из способов вернуть контроль над своей цифровой жизнью.
Комментарии (0)