Dieses Projekt ist ein moderner RSS-Reader mit Web-Oberfläche, der RSS-Feeds abruft und im Browser anzeigt.
- RSS-Feeds per URL abrufen
- Automatische Zusammenfassung der Feed-Inhalte
- Einfache, moderne Web-Oberfläche (Flask-basiert)
Du kannst beliebig viele RSS-Quellen als Favoriten speichern und bequem zwischen ihnen wechseln:
- Über das Dropdown-Menü (Desktop) oder das Menü (Smartphone) kannst du gespeicherte Favoriten direkt auswählen und laden.
- Mit dem Stern-Button neben dem URL-Feld kannst du die aktuelle Feed-URL als Favorit speichern oder wieder entfernen.
- Die Favoriten werden dauerhaft in der Datei
favorites.jsongespeichert. - Die Favoritenfunktion benötigt keine zusätzlichen Python-Module.
Hinweis: Die Anzahl der gespeicherten Favoriten ist nicht begrenzt. Auf schwächeren Systemen (z.B. Raspberry Pi) empfiehlt es sich jedoch, die Zahl der Favoriten moderat zu halten, da alle Favoriten-Feeds regelmäßig im Hintergrund aktualisiert werden. Viele parallele Feeds können die Systemleistung beeinflussen.
Tipp: Die Favoriten sind sofort nach dem Hinzufügen/Entfernen im Dropdown-Menü verfügbar.
- Das Layout passt sich automatisch an Smartphones und Tablets an (responsive Design).
- Buttons und Eingabefelder sind auf Touch-Bedienung optimiert.
- Die Darstellung ist kompakter und moderner auf kleinen Bildschirmen.
- Ein Floating-Button zum schnellen Scrollen erscheint auf Mobilgeräten.
- Die App erkennt mobile Geräte automatisch (User-Agent) und kann das Verhalten weiter anpassen.
Tipp: Die App kann als Web-App zum Home-Bildschirm hinzugefügt werden und zeigt dann ein schönes RSS-Icon.
- Menü-Button: Immer ganz oben rechts fixiert, auch auf Smartphones.
- Startbild: Das Hintergrundbild wird auf der Startseite vollflächig und responsiv angezeigt.
- Favoriten-Feeds: Werden alle 15 Minuten automatisch im Hintergrund aktualisiert und in der SQLite-Datenbank gespeichert. Dadurch sind die Feeds beim Öffnen sofort aktuell und das Laden geht blitzschnell.
- Favoriten-Auswahl: Links oben befindet sich jetzt ein Favoriten-Dropdown mit einem goldenen Stern-Icon (★) als Hinweis. So ist sofort klar, dass es sich um die Favoriten handelt.
- Feed-Adresse: Rechts daneben befindet sich das Eingabefeld für die Feed-Adresse sowie der "Laden"-Button. Die Adresse kann unabhängig von den Favoriten eingegeben werden.
- Menü-Button: Der Hamburger-Menü-Button ist immer oben rechts sichtbar – auf Desktop und Mobilgeräten.
- Vereinfachte Bedienung: Die Buttons "Feed laden" und "Favorisieren" im Desktop-Formular wurden entfernt. Die Bedienung erfolgt jetzt über das neue, aufgeräumte Layout.
- Responsives Design: Auf Mobilgeräten werden Favoriten-Auswahl und Feed-Eingabe automatisch untereinander dargestellt.
Wenn nach einem Update die Startseite oder die PWA ("Zum Startbildschirm hinzufügen") nicht korrekt angezeigt wird, liegt das meist am Browser- oder App-Cache. In diesem Fall:
- Die App/Seite im Browser komplett schließen (auch aus dem App-Switcher entfernen).
- In den Browser-Einstellungen unter "Website-Daten" oder "App-Daten" die gespeicherte PWA/Seite löschen.
- Danach die Seite neu öffnen – jetzt wird alles frisch geladen.
Durch die eingebauten Cache-Busting-Parameter an CSS und Manifest werden neue Versionen normalerweise sofort geladen. Bei PWAs kann es trotzdem nötig sein, die App-Daten einmalig zu löschen.
- Python 3 muss installiert sein (bei Raspberry Pi OS meist schon vorhanden)
- Git ist installiert (
sudo apt install git) - Optional: Virtuelle Umgebung (empfohlen)
-
Repository klonen
git clone https://github.com/ElectronicResearch/RSS-Reader.git cd RSS-Reader -
Virtuelle Umgebung erstellen und aktivieren
python3 -m venv venv source venv/bin/activate -
Abhängigkeiten installieren
pip install -r requirements.txt
-
Flask-App für Netzwerkzugriff starten Passe die letzte Zeile in
app.pyan (falls nicht schon geschehen):if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)
Starte die App:
python app.py
Jetzt ist die App im gesamten Netzwerk unter
http://<SERVER-IP>:5000erreichbar. -
Zugriff im Netzwerk
- Öffne im Browser eines anderen Geräts im selben Netzwerk:
http://<SERVER-IP>:5000 <SERVER-IP>ist die IP-Adresse deines Raspberry Pi oder Servers (z.B.192.168.1.100).
- Öffne im Browser eines anderen Geräts im selben Netzwerk:
-
(Optional) Firewall anpassen
sudo ufw allow 5000
-
(Optional) Produktionsbetrieb mit Gunicorn
pip install gunicorn gunicorn -w 4 -b 0.0.0.0:5000 app:app
Für den Einsatz im Internet empfiehlt sich zusätzlich ein Reverse Proxy wie nginx.
Damit kannst du den RSS-Reader einfach im lokalen Netzwerk oder – mit weiteren Schritten – auch im Internet bereitstellen.
Um den RSS-Reader automatisch beim Hochfahren des Systems zu starten, empfiehlt sich ein systemd-Service.
-
Service-Datei erstellen Erstelle die Datei
/etc/systemd/system/rssreader.servicemit folgendem Inhalt (Pfad ggf. anpassen!):[Unit] Description=RSS Reader Flask App After=network.target [Service] User=pi WorkingDirectory=/home/pi/RSS-Reader ExecStart=/home/pi/RSS-Reader/venv/bin/python app.py Restart=always Environment=PYTHONUNBUFFERED=1 [Install] WantedBy=multi-user.target
Hinweis: Passe
UserundWorkingDirectoryggf. an deinen Benutzernamen und Installationspfad an! -
Service aktivieren und starten
sudo systemctl daemon-reload sudo systemctl enable rssreader.service sudo systemctl start rssreader.service -
Status prüfen
sudo systemctl status rssreader.service
Jetzt startet der RSS-Reader automatisch bei jedem Neustart des Raspberry Pi bzw. Servers.
- Anwendung starten:
python app.py
- Im Browser öffnen: http://localhost:5000
- RSS-Feed-URL eingeben und auf "Feed laden" klicken.
- Repository initialisieren (falls noch nicht geschehen):
git init git remote add origin https://github.com/<DEIN_USERNAME>/rss_reader.git
- Änderungen committen und pushen:
git add . git commit -m "Initialer RSS Reader Commit" git push -u origin master
MIT
© M. Koznjak 2025
FeedSense nutzt eine lokale SQLite-Datenbank, um RSS-Feeds und deren Einträge effizient zwischenzuspeichern:
- Beim Laden eines Feeds werden zuerst die letzten 2 Tage aus der Datenbank angezeigt.
- Neue Einträge werden automatisch ergänzt, alte (älter als 2 Tage) werden gelöscht.
- Das sorgt für deutlich schnellere Ladezeiten, weniger Datenverbrauch und eine bessere Nutzererfahrung – auch bei großen Feeds.
- Die Datenbankdatei heißt
feedsense.dbund wird automatisch im Projektverzeichnis angelegt.