Ini adalah panduan singkat bagi mereka yang ingin menjalankan Nostr Relay. Ada puluhan opsi dan implementasi server relai , tetapi agar semuanya tetap sederhana bagi pendatang baru di jaringan, saya menggunakan ` nostr-ts-relay` ramah yang dibangun di TypeScript dan dikemas sebagai file Docker Compose YML.
Rekap Nostr
nostr - Catatan dan Hal Lain yang Ditransmisikan oleh Relai
Nostr adalah protokol terbuka paling sederhana yang mampu membuat jaringan "sosial" global yang tahan sensor untuk selamanya. Itu tidak bergantung pada server pusat tepercaya, karena itu tangguh; itu didasarkan pada kunci dan tanda tangan kriptografi, sehingga tahan terhadap kerusakan; itu tidak bergantung pada teknik P2P, oleh karena itu berhasil.
Baru-baru ini Jack Dorsey memeriksa protokol Nostr yang pertama kali dirilis oleh fiatjaf pengembang ZEBEDEE dan menyadari bahwa ada BANYAK janji dan nilai pada keputusan desain protokol. Sedemikian rupa sehingga dia mengerahkan ~$250k untuk mendorong komunitas pengembangan Nostr.
Jack :
https://twitter.com/jack/status/1603535971114487816
Andre Neves :
https://twitter.com/andreneves/status/1603833304309956640
Meskipun kami sudah menjalankan relai nostr siap produksi di nostr.zebedee.cloud , saya ingin membuat panduan sederhana untuk pendatang baru yang ingin menjalankan server relai dan mulai berinteraksi dengan jaringan itu sendiri.
FWIW: penyiapan ini berbeda dengan penyiapan infrastruktur untuk `nostr.zebedee.cloud`.
Mari kita mulai!
Siapkan VM
Pilih penyedia VM pilihan Anda - apakah Anda lebih suka Linode, Digital Ocean, AWS, GCP, Azure, dll. Untuk panduan cepat ini, saya menggunakan penyiapan berikut di DigitalOcean:
- Ubuntu 22.10, memori 8GB, SSD NVME 160GB
Saya menggunakan spesifikasi ini untuk relai ini, tetapi belum ada tolok ukur yang cukup untuk menyarankan spesifikasi mana yang harus dipilih.
Setelah Anda semua siap, SSH ke VM itu dan ikuti langkah selanjutnya.
Perintah CLI
sudo apt update
# Install nodejs, npm, nginx, certbot
sudo apt install nodejs npm nginx certbot python3-certbot-nginx
# Setup Docker GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Setup `apt` Docker repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
(if you run into errors here check the permissions on the keyring file --> sudo chmod a+r /etc/apt/keyrings/docker.gpg)
# Check installation is successful by checking verions
docker --version
npm --version
node --version
# Clone `nostr-ts-relay` repo
git clone https://github.com/Cameri/nostr-ts-relay.git
# Set up relay settings
cd nostr-ts-relay && mkdir ~/.nostr
mv settings.sample.json ~/.nostr/settings.json
# Edit this new `~/.nostr/settings.json` to your liking
# Delete the default nginx settings file
rm -rf /etc/nginx/sites-available/default
# Paste in new settings file contents (see heading NGINX SETTINGS below)
sudo nano /etc/nginx/sites-available/default
# Restart nginx
sudo service nginx restart
# Map DNS A record to IP of VM machine (see DNS SETTINGS below)
# Request SSL cert from letsencrypt/certbot
sudo certbot --nginx -d subdomain.mydomain.com
# Open a TMUX session (to be able to detach and maintain process running)
tmux
# Start the relay
npm run docker:compose:start
# To detach from the TMUX session
Ctrl+B + D
# To re-attach to the TMUX session
tmux a
Gunakan konten di bawah ini sebagai konten pengaturan nginx `default`.
server{
server_name subdomain.domain.com;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8008;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Siapkan Catatan DNS A
Untuk memetakan alamat IP VM Anda ke subdomain.mydomain.com , Anda harus memiliki catatan A seperti di bawah ini di pengaturan DNS domain Anda.
Anda mungkin perlu menyiapkan alamat IP statis/yang dicadangkan untuk memetakan data A ke subdomain.mydomain.com .
Periksa Konektivitas Relay Websocket
Untuk memeriksa apakah relai telah diatur dengan benar, buka WebSocketKing dan uji koneksi ke subdomain.domain.com Anda .
Kesimpulan
Itu dia! Anda semua siap. Server nostr ini akan menelan dan menyampaikan setiap dan semua acara yang disiarkan ke sana. Ini belum tentu bagaimana server produksi ingin dijalankan, tetapi ini adalah awal yang baik.
Untuk informasi lebih lanjut seputar batasan dan konfigurasi jenis peristiwa, baca lebih lanjut di repositori GitHub nostr-ts-relay . Perhatikan juga bahwa nostr-ts-relay hanya mendukung NIP (Nostr Improvement Protocol) berikut saat ini:
Selamat datang di Nostr!
Bergabunglah dengan grup Telegram #nostr untuk bergabung dengan komunitas pengembangan di sekitar proyek ini. Anda mungkin ingin menambahkan relai Anda ke nostr.watch agar dapat ditemukan.
cheers 🎉
Comments
Post a Comment