Language: th
FreshRSS: ฟีดข่าวของคุณเองโดยไม่มีอัลกอริทึม
โซเชียลเน็ตเวิร์กเป็นผู้ตัดสินใจว่าโพสต์ใดจะแสดงก่อน ผลคืออัปเดตสำคัญของโปรเจกต์อาจถูกมองข้ามได้ง่าย ขณะที่คำแนะนำมากมายเข้ามาแทนที่ FreshRSS ทำงานต่างออกไป: คุณเลือกแหล่งข้อมูลเอง แล้วเนื้อหาใหม่จะปรากฏในฟีดเดียวตามลำดับเวลา
คุณสามารถติดตั้ง FreshRSS บนเซิร์ฟเวอร์ของตนเองและใช้เป็นกล่องขาเข้ารวมสำหรับบล็อก เว็บไซต์ข่าว อัปเดตซอฟต์แวร์ ฟอรัม พอดแคสต์ และแหล่งข้อมูลอื่นที่มีฟีด RSS หรือ Atom คู่มือนี้อธิบายฟีเจอร์ของแอป ความต้องการของเซิร์ฟเวอร์ และการติดตั้งบน VPS ด้วย Docker และ HTTPS
FreshRSS ในห้าขั้นตอน
- สร้าง Linux VPS และชี้ซับโดเมนไปที่ VPS เช่น
rss.example.com - ติดตั้ง Docker และ Docker Compose
- รัน FreshRSS พร้อม Caddy เพื่อใช้ HTTPS อัตโนมัติ
- เปิดซับโดเมน เลือก SQLite และสร้างบัญชี
- นำเข้าการสมัครจาก 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 บทความด้วย
การกำหนดค่าเริ่มต้นที่ใช้งานได้จริง:
| สถานการณ์ | CPU | RAM | พื้นที่เก็บข้อมูล | ฐานข้อมูล |
|---|---|---|---|---|
| ฟีดส่วนตัว | 1 vCPU | 1 GB | SSD 10–20 GB | SQLite |
| ครอบครัวหรือทีมขนาดเล็ก | 1–2 vCPU | 2 GB | SSD 20–40 GB | SQLite หรือฐานข้อมูลภายนอก |
| ผู้ใช้จำนวนมากและคลังข้อมูลขนาดใหญ่ | ตั้งแต่ 2 vCPU | ตั้งแต่ 4 GB | SSD ตั้งแต่ 40 GB | PostgreSQL หรือ 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 และสร้างดัมป์ของฐานข้อมูลภายนอกที่ใช้
