In dieser Anleitung geht es darum RSS-Bridge innerhalb weniger Minuten mittels Docker und Traefik bereitzustellen. RSS-Bridge ermöglicht es News Feeds für verschiedene Webseiten zu generieren, welche selbst keinen bereitstellen. Eine Übersicht aller unterstützten Seiten findet ihr hier.
Datum | Änderungen |
---|---|
22.05.2023 | Erstellung dieser Anleitung |
30.05.2023 | Anpassung an neue Traefik Labels |
0. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik v2 + 3 – Reverse-Proxy mit CrowdSec im Stack einrichten
1. Verzeichnis erstellen
Zuerst erstellen wir uns ein passendes Verzeichnis:
mkdir -p /opt/containers/rss-bridge/
2. Docker Compose Datei erstellen
Jetzt erstellen wir uns eine Docker Compose Datei.
nano /opt/containers/rss-bridge/docker-compose.yml
Inhalt:
version: "3.4" services: rss-bridge: image: rssbridge/rss-bridge restart: unless-stopped container_name: rss-bridge volumes: - ./whitelist.txt:/app/whitelist.txt - ./config.ini.php:/app/config.ini.php networks: - proxy labels: - "traefik.enable=true" - "traefik.http.routers.rssbridge.entrypoints=websecure" - "traefik.http.routers.rssbridge.rule=Host(`rssbridge.euredomain.de`)" - "traefik.http.routers.rssbridge.tls=true" - "traefik.http.routers.rssbridge.tls.certresolver=http_resolver" - "traefik.http.routers.rssbridge.service=rssbridge" - "traefik.http.services.rssbridge.loadbalancer.server.port=80" - "traefik.docker.network=proxy" - "traefik.http.routers.rssbridge.middlewares=default@file" networks: proxy: external: true
Notwendige Anpassungen:
- Ihr müsst noch den Hostnamen anpassen (rssbridge.euredomain.de)
3. Konfiguration anpassen
Nun müssen wir uns noch eine Konfigurationsdatei erstellen. Dazu gebt ihr folgendes ein:
nano /opt/containers/rss-bridge/config.ini.php
Kopiert nun folgenden Inhalt:
; <?php exit; ?> DO NOT REMOVE THIS LINE ; This file contains the default settings for RSS-Bridge. Do not change this ; file, it will be replaced on the next update of RSS-Bridge! You can specify ; your own configuration in 'config.ini.php' (copy this file). [system] ; Defines the timezone used by RSS-Bridge ; Find a list of supported timezones at ; https://www.php.net/manual/en/timezones.php ; timezone = "UTC" (default) timezone = "Europe/Berlin" [cache] ; Defines the cache type used by RSS-Bridge ; "file" = FileCache (default) type = "file" ; Allow users to specify custom timeout for specific requests. ; true = enabled ; false = disabled (default) custom_timeout = false [admin] ; Advertise an email address where people can reach the administrator. ; This address is displayed on the main page, visible to everyone! ; "" = Disabled (default) email = "" ; Show Donation information for bridges if available. ; This will display a 'Donate' link on the bridge view ; and a "Donate" button in the HTML view of the bridges feed. ; true = enabled (default) ; false = disabled donations = false [proxy] ; Sets the proxy url (i.e. "tcp://192.168.0.0:32") ; "" = Proxy disabled (default) url = "" ; Sets the proxy name that is shown on the bridge instead of the proxy url. ; "" = Show proxy url name = "Hidden proxy name" ; Allow users to disable proxy usage for specific requests. ; true = enabled ; false = disabled (default) by_bridge = false [authentication] ; Enables authentication for all requests to this RSS-Bridge instance. ; ; Warning: You'll have to upgrade existing feeds after enabling this option! ; ; true = enabled ; false = disabled (default) enable = true ; The username for authentication. Insert this name when prompted for login. username = "user" ; The password for authentication. Insert this password when prompted for login. ; Use a strong password to prevent others from guessing your login! password = "password" [error] ; Defines how error messages are returned by RSS-Bridge ; ; "feed" = As part of the feed (default) ; "http" = As HTTP error message ; "none" = No errors are reported output = "feed" ; Defines how often an error must occur before it is reported to the user report_limit = 1 ; --- Cache specific configuration --------------------------------------------- [SQLiteCache] file = "cache.sqlite" [MemcachedCache] host = "localhost" port = 11211
Ihr könnt nun wählen, ob eure Seite mit einem Passwort gesperrt sein soll oder offen für jeden zugänglich.
3.1 Konfiguration mit Passwort
In diesem Fall ändert ihr noch den Nutzernamen / Passwort ab:
; The username for authentication. Insert this name when prompted for login. username = "user" ; The password for authentication. Insert this password when prompted for login. ; Use a strong password to prevent others from guessing your login! password = "password"
3.2 Konfiguration ohne Passwort
In diesem Fall müsst ihr einen Wert abändern:
[authentication] ; Enables authentication for all requests to this RSS-Bridge instance. ; ; Warning: You'll have to upgrade existing feeds after enabling this option! ; ; true = enabled ; false = disabled (default) enable = true zu: enable = false
4. Whitelist erstellen
Nun erstellen wir noch unsere Whitelist. Dies sind alle Plugin, welche später aktiviert / angezeigt werden. Dazu legt ihr folgende Datei an:
nano /opt/containers/rss-bridge/whitelist.txt
Hier fügt ihr jetzt die Namen euer Plugins ein. Eine Liste aller Plugins findet ihr hier. Dies könnt ihr später jederzeit auch wieder anpassen. Dies könnte zum Beispiel so aussehen:
BandcampBridge Cryptome DuckDuckGo DavesTrailerPage Formula1 NikonDownloadCenter Twitter WordPress
5. RSS Bridge starten
Nun könnt ihr RSS-Bridge starten. Gebt dazu folgendes ein:
docker compose -f /opt/containers/rss-bridge/docker-compose.yml up -d
Nun könnt ihr auf eure Homepage “rssbridge.euredomain.de” gehen und solltet folgendes sehen:
6. RSS Feeds erzeugen
Jetzt könnt ihr euch von allen unterstützen Webseiten RSS Feeds erstellen lassen. Klickt bei der entsprechenden Webseite einfach auf “Show more”.
Dort gebt ihr zum Beispiel das Schlüsselwort “goneuland.de” ein und klickt anschließend auf “Generate Feed”.
Nun seht ihr verschiedene Formate, in denen ihr euch den Feed generieren lassen könnt.
7. Inaktive Plugins anzeigen
Es gibt bei RSS Feed eine Menge “inaktiver” Community Plugins. Diese könnt ihr mit einem Klick aktivieren. Scrollt einfach bis ganz nach unten und klickt auf “Show inactive bridges”.
Super, vielen Dank für die Anleitung. Allerdings musste ich noch kleinere Anpassungen vornehmen, dass auch alles wie gewünscht lief – vielleicht noch was als Ergänzung für die Anleitung. Weil: Punkt 5 ist leider nicht so. Man muss die Plugins aktiv “whitelisten”.
Ich habe daher in der Docker-Compose noch diese beiden Dateien ergänzt:
– ./config.ini.php:/app/config.ini.php
– ./whitelist.txt:/app/whitelist.txt
Inhalt der config.ini.php siehe hier: https://pastebin.com/cBTqPJDd
Wichtigster Teil ist der “authentication”-Teil. Dort müsste man noch User und PW eingeben. Dann ist die Bridge nämlich nicht für jeden offen. Großer Vorteil – für mich zumindest.
Außerdem sieht meine whitelist.txt so aus: https://pastebin.com/tug2iGne
Die ist natürlich komplett individuell, aber so kann man die Plugins dann auch nutzen. Sie tauchen dann auch nicht unter inaktiv aus.
Die beiden Teile (config.ini.php und whitelist.txt) kannte ich noch von der extra gehosteten Geschichte auf dem Webspace, aber das kann ich jetzt endlich in einen Docker überführen – zusammen mit Tiny Tiny RSS. Danke! 🙂