Language: he
FreshRSS: עדכון חדשות אישי בלי אלגוריתמים
הרשתות החברתיות מחליטות אילו פוסטים להציג ראשונים. כתוצאה מכך, עדכון חשוב של פרויקט עלול להיעלם בקלות בעוד עשרות המלצות תופסות את מקומו. FreshRSS פועל אחרת: אתם בוחרים את המקורות, והתוכן החדש מופיע בעדכון כרונולוגי אחד.
אפשר להתקין את FreshRSS בשרת שלכם ולהשתמש בו כתיבת דואר נכנס מאוחדת לבלוגים, אתרי חדשות, עדכוני תוכנה, פורומים, פודקאסטים ומקורות נוספים שמספקים עדכוני RSS או Atom. המדריך הזה מסביר על יכולות האפליקציה, דרישות השרת והתקנה ב-VPS עם Docker ו-HTTPS.
FreshRSS בחמישה שלבים
- צרו Linux VPS והפנו אליו תת-דומיין, למשל
rss.example.com. - התקינו Docker ו-Docker Compose.
- הפעילו את FreshRSS יחד עם Caddy עבור HTTPS אוטומטי.
- פתחו את תת-הדומיין, בחרו SQLite וצרו חשבון.
- ייבאו מנויים מ-OPML או הוסיפו אתרים באופן ידני.
לאחר מכן ה-VPS יבדוק את המקורות לפי לוח הזמנים, גם כאשר המחשב של המשתמש כבוי.
מהו FreshRSS?
FreshRSS הוא אגרגטור RSS ו-Atom חינמי באירוח עצמי. אירוח עצמי פירושו שהאפליקציה ומסד הנתונים פועלים בשרת שנמצא בשליטתכם ולא בתשתית של שירות ענן.
עדכון 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 | 10–20 GB SSD | SQLite |
| משפחה או צוות קטן | 1–2 vCPU | 2 GB | 20–40 GB SSD | SQLite או מסד נתונים חיצוני |
| משתמשים רבים וארכיון גדול | מ-2 vCPU | מ-4 GB | מ-40 GB SSD | 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' מתחיל בדיקות עדכונים בדקה השלישית וה-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 הופך שימושי יותר לאחר מעט הגדרות:
- השאירו רק מקורות חשובים בעדכון הראשי;
- השתמשו במסננים כדי לסמן אוטומטית חלקים מיותרים כנקראו;
- שמרו שאילתות חיפוש עבור מוצרים, מחברים ונושאים;
- בדקו את הסטטיסטיקה מדי פעם והסירו מקורות שיוצרים רק רעש.
הרחבות יכולות להוסיף הערכות זמן קריאה, הדגשת מילים, proxy לתמונות, הטמעת YouTube, התראות webhook וסיווג מאמרים באמצעות LLM API תואם. התקינו תוספים של צד שלישי רק ממקורות מהימנים.
עדכונים, אבטחה וגיבויים
כדי לעדכן את הקונטיינרים, הריצו:
cd /opt/freshrss
docker compose pull
docker compose up -dצרו גיבוי לפני עדכון משמעותי. ה-volume freshrss_data מכיל את הגדרות המשתמשים ואת מסד הנתונים של המאמרים כאשר משתמשים ב-SQLite. אם אתם משתמשים בתוספים, שמרו גם את freshrss_extensions. PostgreSQL, MariaDB ו-MySQL דורשים dump נפרד של מסד הנתונים.
אמצעי אבטחה בסיסיים:
- השתמשו ב-HTTPS;
- השביתו הרשמה פתוחה לאחר יצירת החשבונות הדרושים;
- אל תפעילו גישה אנונימית אם אין בכך צורך;
- השתמשו בסיסמת API נפרדת;
- עדכנו את FreshRSS ואת ההרחבות שלו באופן קבוע;
- שמרו גיבוי מחוץ ל-VPS.
ייצוא OPML אינו תחליף לגיבוי מלא, אך הוא מאפשר לשחזר במהירות את רשימת המנויים בכל קורא RSS תואם.
FreshRSS ב-VPS של tropic.host
FreshRSS הוא שירות ראשון טוב לאירוח עצמי: הוא דורש מעט משאבים, פועל ב-Docker ונעשה שימושי מיד לאחר ייבוא המנויים. VPS ציבורי מספק עדכוני עדכונים 24/7, גישה מהטלפון ופעולה תקינה של WebSub.
תצורת Linux קטנה בדרך כלל מספיקה להתקנה אישית. ב-tropic.host תוכלו להקצות ל-FreshRSS תת-דומיין משלו, להתחיל ב-VPS בסיסי ולשמור את השירות עצמאי מהמחשב הביתי. בעת בחירת חבילה, יציבות, אחסון הארכיון וגיבויים חשובים יותר מעתודת עיבוד גדולה.
סיכום
FreshRSS הופך עשרות אתרים לעדכון אישי שניתן לנהל, ללא דירוג אלגוריתמי. הוא תומך בלקוחות מובייל, מסננים, שאילתות שמורות, משתמשים מרובים, WebSub והרחבות, ועדיין נשאר קל מספיק עבור VPS קטן.
כדי להתחיל צריך Docker, דומיין ו-SQLite. לאחר ההתקנה הגדירו קטגוריות, עדכונים אוטומטיים, HTTPS וגיבויים. לאחר מכן FreshRSS יציג רק את המקורות שבחרתם וישאיר את השליטה בקריאה בידי המשתמש.
שאלות נפוצות
האם FreshRSS חינמי?
כן. FreshRSS מופץ ברישיון AGPL-3.0. צריך לשלם רק על התשתית אם האפליקציה פועלת ב-VPS שכור.
האם אפשר להשתמש ב-FreshRSS בלי דומיין?
כן, באמצעות חשיפת יציאת הקונטיינר. לשימוש קבוע עדיף להגדיר דומיין ו-HTTPS, מפני שהם מפשטים גישה מאובטחת, סנכרון מובייל ו-WebSub.
כמה RAM דורש FreshRSS?
לעדכון אישי, התחלה עם 1 GB RAM ו-SQLite היא סבירה. ארכיון גדול, משתמשים רבים או שירותים נוספים ידרשו יותר זיכרון.
האם אפשר להוסיף אתר ללא RSS?
לפעמים. FreshRSS תומך ב-scraping באמצעות XPath, אך צריך להגדיר את הכללים ידנית. אם מבנה האתר משתנה, ייתכן שיהיה צורך לתקן את המקור.
מה צריך לגבות?
קודם כל גבו את ה-volume freshrss_data: כאשר משתמשים ב-SQLite הוא מכיל את מסד הנתונים של המאמרים. שמרו גם את freshrss_extensions וצרו dumps של כל מסד נתונים חיצוני.
