FreshRSS: คืออะไรและติดตั้งบน VPS อย่างไร

1 อ่านขั้นต่ำแล้ว
Tropic
FreshRSS: คืออะไรและติดตั้งบน VPS อย่างไร

Language: th

FreshRSS: ฟีดข่าวของคุณเองโดยไม่มีอัลกอริทึม

โซเชียลเน็ตเวิร์กเป็นผู้ตัดสินใจว่าโพสต์ใดจะแสดงก่อน ผลคืออัปเดตสำคัญของโปรเจกต์อาจถูกมองข้ามได้ง่าย ขณะที่คำแนะนำมากมายเข้ามาแทนที่ FreshRSS ทำงานต่างออกไป: คุณเลือกแหล่งข้อมูลเอง แล้วเนื้อหาใหม่จะปรากฏในฟีดเดียวตามลำดับเวลา

คุณสามารถติดตั้ง FreshRSS บนเซิร์ฟเวอร์ของตนเองและใช้เป็นกล่องขาเข้ารวมสำหรับบล็อก เว็บไซต์ข่าว อัปเดตซอฟต์แวร์ ฟอรัม พอดแคสต์ และแหล่งข้อมูลอื่นที่มีฟีด RSS หรือ Atom คู่มือนี้อธิบายฟีเจอร์ของแอป ความต้องการของเซิร์ฟเวอร์ และการติดตั้งบน VPS ด้วย Docker และ HTTPS

FreshRSS ในห้าขั้นตอน

  1. สร้าง Linux VPS และชี้ซับโดเมนไปที่ VPS เช่น rss.example.com
  2. ติดตั้ง Docker และ Docker Compose
  3. รัน FreshRSS พร้อม Caddy เพื่อใช้ HTTPS อัตโนมัติ
  4. เปิดซับโดเมน เลือก SQLite และสร้างบัญชี
  5. นำเข้าการสมัครจาก OPML หรือเพิ่มเว็บไซต์ด้วยตนเอง

หลังจากนั้น VPS จะตรวจสอบแหล่งข้อมูลตามกำหนดเวลา แม้คอมพิวเตอร์ของผู้ใช้จะปิดอยู่ก็ตาม

FreshRSS คืออะไร

FreshRSS คือ RSS และ Atom aggregator แบบฟรีที่โฮสต์ด้วยตนเอง คำว่าโฮสต์ด้วยตนเองหมายถึงแอปและฐานข้อมูลทำงานบนเซิร์ฟเวอร์ที่คุณควบคุม ไม่ใช่บนโครงสร้างพื้นฐานของบริการคลาวด์

ฟีด RSS คือไฟล์พิเศษที่เว็บไซต์อัปเดตทุกครั้งที่เผยแพร่เนื้อหาใหม่ FreshRSS จะดึงไฟล์เหล่านี้จากแหล่งที่เลือกเป็นระยะและรวมรายการไว้ในอินเทอร์เฟซเดียว บทความที่ยังไม่ได้อ่าน รายการโปรด และประวัติการอ่านจะซิงโครไนซ์ข้ามอุปกรณ์

แนวคิดหลักเรียบง่าย: ผู้ใช้ตัดสินใจเองว่าจะติดตามใครและจะดูสิ่งพิมพ์ตามลำดับใด FreshRSS ไม่จัดอันดับรายการตามการมีส่วนร่วม และไม่แทรกเนื้อหาที่แนะนำระหว่างการสมัครสมาชิก

ฟีเจอร์ของ FreshRSS

ฟีเจอร์ใช้ทำอะไร
หมวดหมู่ สถานะ และรายการโปรดแยกแหล่งข้อมูลด้านงาน เทคนิค และส่วนตัว
การค้นหา ตัวกรอง และคำค้นที่บันทึกไว้แสดงเฉพาะสิ่งพิมพ์ในหัวข้อที่เลือก
นำเข้าและส่งออก OPMLย้ายรายการสมัครสมาชิกได้อย่างรวดเร็ว
Google Reader API และ Fever APIเชื่อมต่อแอปมือถือและเดสก์ท็อปที่รองรับ
WebSubรับรายการทันทีหลังเผยแพร่จากแหล่งที่รองรับ
ผู้ใช้หลายคนสร้างบัญชีแยกสำหรับครอบครัวหรือทีม
ธีมและส่วนขยายเปลี่ยนอินเทอร์เฟซและเพิ่มฟีเจอร์
XPath และ JSON Feedสมัครแหล่งข้อมูลบางแห่งที่ไม่มีฟีด RSS หรือ Atom มาตรฐาน

คำค้นที่บันทึกไว้สามารถกลายเป็นฟีดแยกตามหัวข้อได้ เช่น ฟีดที่มีเฉพาะสิ่งพิมพ์ด้านความปลอดภัยหรืออัปเดตของผลิตภัณฑ์ใดผลิตภัณฑ์หนึ่ง ผลลัพธ์สามารถเปิดใน FreshRSS หรือเผยแพร่เป็น HTML หรือ RSS และยังมี OPML สำหรับรายการฟีดด้วย

WebSub ช่วยให้เว็บไซต์ที่รองรับแจ้ง FreshRSS เมื่อมีรายการใหม่ แทนที่จะรอการตรวจสอบตามกำหนดเวลาครั้งถัดไป การทำงานนี้ต้องให้ FreshRSS เข้าถึงได้จากอินเทอร์เน็ตผ่านที่อยู่สาธารณะที่ถูกต้อง

FreshRSS มีประโยชน์เป็นพิเศษสำหรับนักพัฒนาและผู้ดูแลระบบ: บล็อกโปรเจกต์ รีลีส รายงานเหตุขัดข้อง และประกาศความปลอดภัยสามารถรวบรวมไว้ในฟีดเดียว สำหรับการอ่านประจำวัน มันแทนที่แท็บที่เปิดอยู่หลายสิบแท็บและซิงโครไนซ์สถานะการอ่านที่แน่นอนในทุกอุปกรณ์

ความต้องการของระบบ FreshRSS

FreshRSS ใช้ทรัพยากรไม่มาก รองรับ SQLite, PostgreSQL, MariaDB และ MySQL ส่วนการติดตั้งด้วยตนเองต้องมีเว็บเซิร์ฟเวอร์และ PHP 8.1 ขึ้นไป คำอธิบายอย่างเป็นทางการยังมีการทดสอบบน Raspberry Pi 1 ที่มี 150 ฟีดและ 22,000 บทความด้วย

การกำหนดค่าเริ่มต้นที่ใช้งานได้จริง:

สถานการณ์CPURAMพื้นที่เก็บข้อมูลฐานข้อมูล
ฟีดส่วนตัว1 vCPU1 GBSSD 10–20 GBSQLite
ครอบครัวหรือทีมขนาดเล็ก1–2 vCPU2 GBSSD 20–40 GBSQLite หรือฐานข้อมูลภายนอก
ผู้ใช้จำนวนมากและคลังข้อมูลขนาดใหญ่ตั้งแต่ 2 vCPUตั้งแต่ 4 GBSSD ตั้งแต่ 40 GBPostgreSQL หรือ MariaDB

ตัวเลขเหล่านี้เป็นแนวทาง ไม่ใช่ขั้นต่ำที่ตายตัว การใช้พื้นที่ขึ้นอยู่กับจำนวนแหล่งข้อมูล ความถี่ในการเผยแพร่ และระยะเวลาที่เก็บประวัติ VPS สะดวกกว่าคอมพิวเตอร์ที่บ้านเมื่อคุณต้องการอัปเดตตลอดเวลา การเข้าถึงจากภายนอก การซิงโครไนซ์มือถือ และ WebSub

วิธีติดตั้ง FreshRSS บน VPS ด้วย Docker

ในการกำหนดค่าด้านล่าง FreshRSS ทำงานอยู่หลัง Caddy โดย Caddy รับคำขอจากภายนอกและขอใบรับรอง TLS ให้อัตโนมัติ

คุณจะต้องมี Linux VPS, Docker ที่ติดตั้งคำสั่ง docker compose, ซับโดเมนที่มีระเบียน A ชี้ไปยังที่อยู่ IP ของเซิร์ฟเวอร์ และเปิดพอร์ต 80 กับ 443

ขั้นตอนที่ 1 สร้างไดเรกทอรี

sudo mkdir -p /opt/freshrss
sudo chown "$USER":"$USER" /opt/freshrss
cd /opt/freshrss

ขั้นตอนที่ 2 สร้าง compose.yaml

services:
  freshrss:
    image: freshrss/freshrss:latest
    container_name: freshrss
    restart: unless-stopped
    logging:
      options:
        max-size: 10m
    environment:
      TZ: Etc/UTC
      CRON_MIN: '3,33'
      FRESHRSS_ENV: production
      TRUSTED_PROXY: 172.16.0.0/12
    volumes:
      - freshrss_data:/var/www/FreshRSS/data
      - freshrss_extensions:/var/www/FreshRSS/extensions

  caddy:
    image: caddy:2
    container_name: freshrss-caddy
    restart: unless-stopped
    depends_on:
      - freshrss
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy_data:/data
      - caddy_config:/config

volumes:
  freshrss_data:
  freshrss_extensions:
  caddy_data:
  caddy_config:

CRON_MIN: '3,33' จะเริ่มตรวจสอบฟีดในนาทีที่ 3 และ 33 ของทุกชั่วโมง FreshRSS จะไม่อัปเดตฟีดเดียวบ่อยกว่าประมาณทุก 20 นาที ดังนั้นการรันงานถี่กว่านี้มักไม่จำเป็น

ขั้นตอนที่ 3 สร้าง Caddyfile

rss.example.com {
    reverse_proxy freshrss:80
}

เปลี่ยนโดเมนเป็นโดเมนของคุณเอง เมื่อระเบียน DNS เผยแพร่แล้วและพอร์ตเข้าถึงได้ Caddy จะขอและต่ออายุใบรับรองโดยอัตโนมัติ

ขั้นตอนที่ 4 เริ่ม FreshRSS

docker compose up -d
docker compose ps

คุณสามารถดูล็อกด้วยคำสั่งนี้:

docker compose logs -f --tail=100

เปิด https://rss.example.com ตัวช่วยติดตั้งจะตรวจสอบสภาพแวดล้อม ให้คุณเลือกฐานข้อมูล และสร้างผู้ใช้คนแรก SQLite เป็นตัวเลือกที่ง่ายที่สุดสำหรับเซิร์ฟเวอร์ส่วนตัว เพราะไม่ต้องมีคอนเทนเนอร์ฐานข้อมูลแยกต่างหาก

การกำหนดค่าเริ่มต้น

FreshRSS มักค้นหาฟีด RSS หรือ Atom จากที่อยู่ปกติของเว็บไซต์ได้ หากค้นหาอัตโนมัติไม่สำเร็จ ให้ป้อน URL โดยตรงของฟีด การสมัครจาก Feedly, Inoreader และโปรแกรมอ่านอื่นสามารถย้ายผ่าน OPML ได้สะดวก

จัดแหล่งข้อมูลเข้าหมวดหมู่ทันที เช่น “ต้องอ่าน” “งาน” “ความปลอดภัย” “อ่านยาว” และ “อ่านประกอบ” เว็บไซต์ข่าวที่มีปริมาณมากไม่ควรดันอัปเดตสำคัญจริง ๆ ออกจากฟีดหลัก

หากต้องการเชื่อมต่อแอป ให้เปิดใช้ API ในการตั้งค่าการยืนยันตัวตนและตั้งรหัสผ่าน API แยกในโปรไฟล์ ที่อยู่ Google Reader API มีลักษณะดังนี้:

https://rss.example.com/api/greader.php

ไม่ควรใช้รหัสผ่านเดียวกันสำหรับบัญชีหลักและ API

วิธีไม่ให้บทความที่ยังไม่ได้อ่านท่วมท้น

FreshRSS จะมีประโยชน์มากขึ้นหลังการตั้งค่าเล็กน้อย:

  • เก็บเฉพาะแหล่งข้อมูลสำคัญไว้ในฟีดหลัก
  • ใช้ตัวกรองทำเครื่องหมายส่วนที่ไม่จำเป็นว่าอ่านแล้วโดยอัตโนมัติ
  • บันทึกคำค้นสำหรับผลิตภัณฑ์ ผู้เขียน และหัวข้อ
  • ตรวจสอบสถิติเป็นระยะและลบแหล่งข้อมูลที่สร้างแต่เสียงรบกวน

ส่วนขยายสามารถเพิ่มการประมาณเวลาอ่าน การไฮไลต์คำ การทำพร็อกซีรูปภาพ การฝัง YouTube การแจ้งเตือนผ่าน webhook และการจัดประเภทบทความผ่าน LLM API ที่รองรับ ติดตั้งส่วนเสริมจากภายนอกเฉพาะแหล่งที่เชื่อถือได้

การอัปเดต ความปลอดภัย และการสำรองข้อมูล

หากต้องการอัปเดตคอนเทนเนอร์ ให้รัน:

cd /opt/freshrss
docker compose pull
docker compose up -d

สร้างข้อมูลสำรองก่อนการอัปเดตครั้งใหญ่ วอลุ่ม freshrss_data มีการตั้งค่าผู้ใช้ และเมื่อใช้ SQLite ก็มีฐานข้อมูลบทความอยู่ด้วย หากใช้ส่วนเสริม ให้เก็บ freshrss_extensions ไว้ด้วย PostgreSQL, MariaDB และ MySQL ต้องดัมป์ฐานข้อมูลแยกต่างหาก

มาตรการความปลอดภัยขั้นต่ำ:

  • ใช้ HTTPS
  • ปิดการลงทะเบียนแบบเปิดหลังสร้างบัญชีที่จำเป็นแล้ว
  • อย่าเปิดการเข้าถึงแบบไม่ระบุตัวตนเว้นแต่จำเป็น
  • ใช้รหัสผ่าน API แยกต่างหาก
  • อัปเดต FreshRSS และส่วนขยายเป็นประจำ
  • เก็บข้อมูลสำรองไว้นอก VPS

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

FreshRSS บน VPS จาก tropic.host

FreshRSS เป็นบริการแรกที่ดีสำหรับการโฮสต์ด้วยตนเอง: ใช้ทรัพยากรไม่มาก ทำงานใน Docker และมีประโยชน์ทันทีหลังนำเข้าการสมัคร VPS สาธารณะให้อัปเดตฟีดตลอด 24 ชั่วโมง เข้าถึงจากโทรศัพท์ และทำงานกับ WebSub ได้อย่างถูกต้อง

การกำหนดค่า Linux ขนาดเล็กมักเพียงพอสำหรับการติดตั้งส่วนตัว บน tropic.host คุณสามารถกำหนดซับโดเมนเฉพาะให้ FreshRSS เริ่มต้นด้วย VPS ระดับเริ่มต้น และทำให้บริการเป็นอิสระจากคอมพิวเตอร์ที่บ้าน เมื่อเลือกแผน ความเสถียร พื้นที่เก็บคลังข้อมูล และข้อมูลสำรองสำคัญกว่ากำลังประมวลผลสำรองจำนวนมาก

บทสรุป

FreshRSS เปลี่ยนเว็บไซต์หลายสิบแห่งให้เป็นฟีดส่วนตัวที่จัดการได้ โดยไม่มีการจัดอันดับด้วยอัลกอริทึม รองรับไคลเอนต์มือถือ ตัวกรอง คำค้นที่บันทึกไว้ ผู้ใช้หลายคน WebSub และส่วนขยาย ขณะเดียวกันยังเบาพอสำหรับ VPS ขนาดเล็ก

คุณต้องมี Docker โดเมน และ SQLite เพื่อเริ่มต้น หลังติดตั้งแล้ว ให้ตั้งค่าหมวดหมู่ การอัปเดตอัตโนมัติ HTTPS และข้อมูลสำรอง จากนั้น FreshRSS จะแสดงเฉพาะแหล่งข้อมูลที่คุณเลือกและให้ผู้ใช้ควบคุมการอ่านเอง

FAQ

FreshRSS ฟรีหรือไม่

ใช่ FreshRSS เผยแพร่ภายใต้สัญญาอนุญาต AGPL-3.0 คุณจะต้องจ่ายเฉพาะค่าโครงสร้างพื้นฐาน หากแอปทำงานบน VPS ที่เช่า

ใช้ FreshRSS โดยไม่มีโดเมนได้หรือไม่

ได้ โดยเปิดพอร์ตคอนเทนเนอร์ สำหรับการใช้งานถาวร ควรกำหนดโดเมนและ HTTPS เพราะช่วยให้การเข้าถึงอย่างปลอดภัย การซิงโครไนซ์มือถือ และ WebSub ง่ายขึ้น

FreshRSS ต้องใช้ RAM เท่าไร

สำหรับฟีดส่วนตัว การเริ่มด้วย RAM 1 GB และ SQLite เป็นทางเลือกที่เหมาะสม คลังข้อมูลขนาดใหญ่ ผู้ใช้หลายคน หรือบริการเพิ่มเติมจะต้องใช้หน่วยความจำมากขึ้น

เพิ่มเว็บไซต์ที่ไม่มี RSS ได้หรือไม่

ได้ในบางกรณี FreshRSS รองรับการดึงข้อมูลเว็บไซต์ด้วย XPath แต่ต้องกำหนดกฎด้วยตนเอง หากเลย์เอาต์เว็บไซต์เปลี่ยน แหล่งข้อมูลนั้นอาจต้องแก้ไข

ต้องสำรองข้อมูลอะไรบ้าง

อันดับแรกให้สำรองวอลุ่ม freshrss_data: เมื่อใช้ SQLite วอลุ่มนี้มีฐานข้อมูลบทความอยู่ด้วย นอกจากนี้ให้เก็บ freshrss_extensions และสร้างดัมป์ของฐานข้อมูลภายนอกที่ใช้