Files
BlueMastoFeed/README.md
Ralf Kirchner 6b52107afa
All checks were successful
Build and Push Docker Image on Tag / build_and_push (push) Successful in 27s
Added function to control maximum post age
2025-05-25 12:53:18 +02:00

4.2 KiB
Raw Blame History

📰 BlueMastoFeed RSS zu Mastodon & Bluesky Poster

BlueMastoFeed ist ein Docker-basiertes Tool, das regelmäßig einen RSS-Feed ausliest und neue Beiträge automatisch auf Mastodon und Bluesky veröffentlicht.

Es prüft, ob ein Beitrag bereits gepostet wurde, und speichert diese Information lokal in einer Datei (/data/seen_posts.txt). Optional werden OpenGraph-Daten (Titel, Vorschau-Bild etc.) der verlinkten Seiten extrahiert, um die Posts ansprechender zu gestalten.

Voraussetzungen

  • Docker (Version 20.10 oder höher)
  • Zugangsdaten für Mastodon & Bluesky
  • Gültige RSS-Feed-URL

Einrichtung für Produktivbetrieb

1. Datenverzeichnis auf dem Host erstellen

mkdir -p /opt/bluemastofeed/data

2. Container mit Umgebungsvariablen starten

docker run -d \
  --name bluemastofeed \
  -e FEED_URL=https://example.com/rss.xml \
  -e MASTODON_API_BASE_URL=https://mastodon.social \
  -e MASTODON_ACCESS_TOKEN=your_mastodon_access_token \
  -e BSKY_IDENTIFIER=your_handle.bsky.social \
  -e BSKY_PASSWORD=your_bluesky_password \
  -v /opt/bluemastofeed/data:/data \
  dev.ksite.de/ralf.kirchner/bluemastofeed:latest

Einrichtung für Entwicklung

1. Repository klonen

git clone https://dev.ksite.de/ralf.kirchner/BlueMastoFeed.git
cd BlueMastoFeed

2. .env-Datei erstellen

Erstelle im Projektverzeichnis eine Datei namens .env mit folgendem Inhalt:

FEED_URL=https://example.com/rss.xml
MASTODON_API_BASE_URL=https://mastodon.social
MASTODON_ACCESS_TOKEN=your_mastodon_token
BSKY_IDENTIFIER=your_bsky_handle
BSKY_PASSWORD=your_bsky_password

3. Docker-Image lokal bauen

docker build -t bluemastofeed .

4. Container starten

docker run -d \
  --name rss-poster \
  --env-file .env \
  -v $(pwd)/data:/data \
  bluemastofeed

Umgebungsvariablen

Die folgenden Umgebungsvariablen steuern das Verhalten des Containers. Sie können entweder direkt beim Start übergeben oder über eine .env-Datei definiert werden.

Variable Beschreibung Beispielwert Standardwert
FEED_URL URL zum RSS- oder Atom-Feed https://example.com/feed erforderlich
MAX_POST_AGE_DAYS Maximales Alter eines Beitrags (in Tagen), der gepostet werden darf 0 = nur heutige Beiträge 0
MASTODON_API_BASE_URL Basis-URL deiner Mastodon-Instanz https://mastodon.social erforderlich
MASTODON_ACCESS_TOKEN Access Token für die Mastodon API abc123... erforderlich
BSKY_IDENTIFIER Bluesky-Handle name.bsky.social erforderlich
BSKY_PASSWORD Passwort für das Bluesky-Konto passwort123 erforderlich
INTERVAL_MINUTES Zeitintervall in Minuten zwischen den Feed-Prüfungen 30 30
EMAIL_MODE Wann eine Status-E-Mail gesendet werden soll (none, errors, all) errors errors
SMTP_HOST SMTP-Server für Status-E-Mails smtp.example.com optional
SMTP_PORT Port des SMTP-Servers 587 587
SMTP_USER Benutzername für SMTP user@example.com optional
SMTP_PASSWORD Passwort für SMTP sicherespasswort optional
EMAIL_FROM Absenderadresse für E-Mails noreply@example.com optional
EMAIL_TO Empfängeradresse für E-Mails admin@example.com optional