แพ็กเกจอย่างเป็นทางการ · ระบบอัตโนมัติและโครงสร้างพื้นฐาน

เปลี่ยนฟีด RSS และ RSSHub เป็นอีเวนต์แบบเรียลไทม์

ส่งทุกรายการใหม่ของฟีด RSS, Atom หรือ JSON Feed (รวมถึงทุกเส้นทางของ RSSHub) ไปยังเบราว์เซอร์และแอปที่เปิดอยู่ทันทีที่มีรายการใหม่ feed-relay เป็นบริการ Go โอเพนซอร์สขนาดเล็กที่รันคู่กับ RSSHub ของคุณ

  • แต่ละรายการใหม่จะกลายเป็นอีเวนต์บนแชนเนล การแจ้งเตือนแบบพุช หรือการแจ้งเตือนในกล่องข้อความ และส่งเพียงครั้งเดียวแม้จะรีสตาร์ต
  • ฟีดที่มี WebSub hub เช่น ช่อง YouTube จะมาถึงภายในไม่กี่วินาที ฟีดอื่นใช้การโพลด้วย ETag และ Last-Modified ฟีดที่ไม่เปลี่ยนจึงแทบไม่มีต้นทุน
  • การรันครั้งแรกจะจดจำรายการที่มีอยู่แล้วในฟีดเท่านั้น จึงไม่ส่งการแจ้งเตือนจำนวนมากให้ผู้ใช้ตอนเริ่มต้น
  • มีเว็บคอนโซลสำหรับเพิ่ม ดูตัวอย่าง หยุดชั่วคราว และทดสอบฟีด และเซิร์ฟเวอร์ MCP ให้เอเจนต์ AI จัดการฟีดได้ ทุกการเปลี่ยนแปลงไปถึงคอนโซลที่เปิดอยู่ทันทีผ่านแอป Hibira ของคุณ
คอนโซลของ feed relay: วาง github.com/vercel/next.js/releases แล้วระบบจะหาเส้นทาง RSSHub ที่ตรงกัน และแสดงตัวอย่างรีลีสล่าสุดก่อนเพิ่มฟีด
คอนโซลของ feed relay: วาง github.com/vercel/next.js/releases แล้วระบบจะหาเส้นทาง RSSHub ที่ตรงกัน และแสดงตัวอย่างรีลีสล่าสุดก่อนเพิ่มฟีด

ลงชื่อเข้าใช้เพื่อดูโค้ดตัวอย่างเหล่านี้พร้อมโฮสต์คลัสเตอร์ของคุณเอง ลงชื่อเข้าใช้

  1. ติดตั้ง

    # docker-compose.yml, with HIBIRA_APP_ID, HIBIRA_APP_KEY and HIBIRA_APP_SECRET in .env
    services:
      rsshub:
        image: diygod/rsshub:latest
      feed-relay:
        image: ghcr.io/hibira-io/feed-relay:latest
        env_file: .env   # also ADMIN_PASSWORD for the console, MCP_TOKEN for /mcp
        environment:
          RSSHUB_URL: http://rsshub:1200
        ports:
          - "8080:8080"
        volumes:
          - ./feed-relay.yaml:/config/feed-relay.yaml:ro
          - relay-data:/data
    volumes:
      relay-data:
  2. ตั้งค่า

    # feed-relay.yaml
    hibira:
      url: https://ws.hibira.io
      app_id: ${HIBIRA_APP_ID}
      key: ${HIBIRA_APP_KEY}
      secret: ${HIBIRA_APP_SECRET}
    feeds:
      - name: releases
        url: /github/release/hibira-io/pusher-server   # an RSSHub route
        channel: releases
      - name: go blog
        url: https://go.dev/blog/feed.atom
        channel: news
        interval: 10m
  3. ใช้งาน

    import Pusher from 'pusher-js';
    
    const pusher = new Pusher('YOUR_APP_KEY', {
      cluster: 'hkg',
      wsHost: 'ws.hibira.io',
      enabledTransports: ['ws', 'wss'],
    });
    
    // { feed: { name, title }, id, title, link, summary, author, image, published }
    pusher.subscribe('releases').bind('new-item', (item) => {
      console.log(item.feed.title, item.title, item.link);
    });

ก่อนเริ่ม

  • ซีเคร็ตของแอปจะแสดงเพียงครั้งเดียว ตอนสร้างแอปหรือตอนหมุนเวียนซีเคร็ต เก็บไว้บนเซิร์ฟเวอร์เท่านั้น ห้ามใส่ในเบราว์เซอร์หรือไฟล์บิลด์ของเกม
  • แต่ละอีเวนต์มีขนาดไม่เกิน 3,500 ไบต์เพื่อให้อยู่ในขีดจำกัด 4 KB ของแพ็กเกจ Free โดยจะย่อสรุปก่อน ดึงบทความเต็มได้จาก item.link
  • ไม่อยากรันเซิร์ฟเวอร์เอง? ใช้ทริกเกอร์ RSS ใน n8n, Make, Activepieces หรือ Node-RED ต่อด้วยโหนด Hibira ของเราก็ทำได้เหมือนกัน โดยเวิร์กโฟลว์จะเป็นผู้โพล
  • ส่งต่อเฉพาะฟีดที่คุณได้รับอนุญาตให้ใช้ และปฏิบัติตามข้อกำหนดของแต่ละเว็บไซต์ต้นทาง
  • หากต้องการให้คอนโซลอัปเดตแบบเรียลไทม์บนแพ็กเกจ Free ให้เพิ่มที่อยู่ของคอนโซล (เช่น http://localhost:8080) ลงในต้นทางที่อนุญาตของแอป
  • ในแพ็กเกจ Free ให้ใส่ทุก origin ที่หน้าเว็บโหลดมาใน Origin ที่อนุญาตของแอป (http://localhost:3000 ระหว่างพัฒนา แล้วตามด้วยโดเมนของคุณ) ส่วน "*" ต้องใช้แพ็กเกจแบบชำระเงิน

ใช้ app key จากแดชบอร์ดของคุณ ส่วน secret ให้เก็บไว้บนเซิร์ฟเวอร์เท่านั้น ช่อง อีเวนต์ และ endpoint การยืนยันสิทธิ์ทำงานเหมือนกับที่ใช้กับ Pusher ทุกประการ สร้างบัญชีฟรีของคุณ →