Skip to content

rushmi0/Fenrir-s

Repository files navigation

Fenrir-s logo


Fenrir-s เป็น Nostr Relay ที่ปฏิบัติตามข้อกำหนดของ Nostr Protocol ซึ่งพัฒนาด้วย Kotlin

โปรเจคนี้มุ่งเน้นสำหรับการใช้งานส่วนตัวหรือในกลุ่มเพื่อน สามารถกำหนดค่านโยบาย Relay ตามความต้องการ และติดตั้งได้ง่าย

📋 สารบัญ

🚀 คุณสมบัติที่รองรับ (NIPs)

  • ✅ NIP-01 Basic protocol flow
  • ✅ NIP-02 Follow List
  • ✅ NIP-04 Encrypted Direct Message
  • ✅ NIP-09 Event Deletion
  • ✅ NIP-11 Relay Information
  • ✅ NIP-13 Proof of Work
  • ✅ NIP-15 Marketplace
  • ✅ NIP-28 Public Chat
  • ⬜ NIP-40 Expiration Timestamp
  • ⬜ NIP-42 Authentication of clients to relays
  • ✅ NIP-50 Search Capability

⚙️ การกำหนดค่า Relay

1. กำหนดค่าข้อมูลรายละเอียดของ Relay เบื้องต้น

ไฟล์กำหนดค่าอยู่ที่ .env

NAME=lnwza007
DESCRIPTION=นึกแล้ว มึงต้องอ่าน
NPUB=npub1ujevvncwfe22hv6d2cjv6pqwqhkvwlcvge7vgm3vcn2max9tu03sgze8ry
CONTACT=[email protected]
พารามิเตอร์ คำอธิบาย
NAME ชื่อของ Relay
DESCRIPTION คำอธิบายเกี่ยวกับ Relay
NPUB npub ของเจ้าของ Relay
CONTACT ที่อยู่อีเมลที่สามารถติดต่อได้

2. กำหนดนโยบาย

หากไม่ได้กำหนดค่าใดๆ ค่าเริ่มต้นจะเป็น Public Relay ที่เปิดให้ทุกคนใช้งานได้

ALL_PASS=true
FOLLOWS_PASS=false

POW_ENABLED=false
MIN_DIFFICULTY=32
พารามิเตอร์ คำอธิบาย ค่าเริ่มต้น ลำดับความสำคัญ
ALL_PASS รับ Event จากทุกคน true รองลงมา
FOLLOWS_PASS รับ Event เฉพาะจากคนที่เจ้าของ Relay ติดตาม (NIP-02) false สูง
POW_ENABLED เปิดใช้งานการตรวจสอบ Proof of Work false สูง
MIN_DIFFICULTY ค่าความยากขั้นต่ำสำหรับ Proof of Work 32 -

Warning

ค่าความยากระดับ 32 ค่อนข้างสูง หากต้องการลดความเข้มงวด แนะนำให้ตั้งค่าที่ น้อยลง หรือปิดไปเลยก็ได้

3. ตัวเลือกกำหนดค่าบริการพิเศษของ Relay

BACKUP_ENABLED=false
SYNC=wss://relay.rushmi0.win, wss://relay.plebstr.com
พารามิเตอร์ คำอธิบาย ค่าเริ่มต้น
BACKUP_ENABLED เปิดใช้งานการดึงข้อมูลผู้ติดตามของเจ้าของ Relay (NIP-02) จาก Relay อื่น false
SYNC รายการ Relay อื่นๆ ที่จะดึงข้อมูลมา -

🛠 ขั้นตอนการติดตั้งและใช้งาน

Important

ต้องติดตั้ง Docker ให้เสร็จเรียบร้อยก่อนนะครับ และแน่ใจว่าเปิดใช้งานอยู่

การติดตั้ง

  1. โคลนโปรเจคและเข้าสู่ไดเรกทอรี:
git clone https://github.com/rushmi0/Fenrir-s.git
cd Fenrir-s
  1. ปรับแต่งไฟล์ application.toml ตามต้องการ

  2. รัน Docker Compose:

docker compose up relay-db relay-app-jvm
  • relay-app-jvm : JVM 21
  • relay-app-native : Native Binaries

การตั้งค่า Cloudflare Tunnel (Optional)

  1. สร้าง Cloudflare Tunnel และรับ Token
  2. แก้ไขไฟล์ docker-compose.yml และใส่ Token ในส่วนของ cloudflared-tunnel service

การเข้าถึง Relay

หลังจากรัน Docker สำเร็จ คุณสามารถเข้าถึง Relay ได้ที่:

  • ws://localhost:6724 (ภายในเครื่อง)
  • wss://your-domain.com (ผ่าน Cloudflare Tunnel, หากตั้งค่าไว้)

Web-page.mp4

🔧 การแก้ไขปัญหาเบื้องต้น

  • ปัญหา: Docker ไม่สามารถรันได้
    วิธีแก้: ตรวจสอบว่า Docker ทำงานอยู่และมีสิทธิ์เพียงพอ

  • ปัญหา: ไม่สามารถเชื่อมต่อกับ Relay ได้
    วิธีแก้: ตรวจสอบการตั้งค่า firewall และพอร์ตที่ใช้

🔄 การอัปเดต

เมื่อมีเวอร์ชันใหม่ของ Fenrir-s:

  1. หยุดการทำงานของ Docker containers
  2. Pull โค้ดล่าสุดจาก GitHub
  3. รีบิวด์และรีสตาร์ท containers
git pull
docker compose down
docker compose up --build -d

👥 การมีส่วนร่วมในโปรเจค

  1. รายงานปัญหา -> Open Issue บน GitHub
  2. ส่ง Pull Request พร้อมคำอธิบายการปรับปรุงเปลี่ยนแปลง

📚 เอกสารเพิ่มเติม

💬 ติดต่อและสนับสนุน


หากมีคำถามหรือข้อเสนอแนะเพิ่มเติม Open Issue ได้เลย!