A bot written in golang to post RSS feeds to Mastodon. Show must go on!
Find a file
2025-08-09 22:34:29 +03:00
cmd feat: allow go backend to recognize docker environment automatically 2025-08-09 22:31:51 +03:00
internal feat: allow go backend to recognize docker environment automatically 2025-08-09 22:31:51 +03:00
.env.example feat: implement docker compose & getting posts since only x hour before 2025-08-08 12:16:20 +03:00
.gitignore chore: improve error handling and add binary to gitignore 2025-08-08 11:05:26 +03:00
config.json.example feat: allow go backend to recognize docker environment automatically 2025-08-09 22:31:51 +03:00
docker-compose.yaml feat: implement docker compose & getting posts since only x hour before 2025-08-08 12:16:20 +03:00
Dockerfile feat: allow go backend to recognize docker environment automatically 2025-08-09 22:31:51 +03:00
go.mod feat: implement docker compose & getting posts since only x hour before 2025-08-08 12:16:20 +03:00
go.sum feat: implement docker compose & getting posts since only x hour before 2025-08-08 12:16:20 +03:00
LICENSE Initial commit 2025-07-08 17:23:40 +03:00
README.md Update README.md 2025-08-09 22:34:29 +03:00

RssMastGo10

A bot written in golang to post rss feeds to Mastodon. Show must go on: Rss Mast Go 10 (10 pronunce as "on" in Turkish)

Tech Stack

  • Database: PostgreSQL
  • Backend (Code): Golang (1.24.4)
  • Other: Docker/Docker Compose

TODO (my needs)(in order)

  • get & parse rss
  • connect to Mastodon application
  • ability to publish post
  • set oldest rss date to fetch (to avoid fetching too old posts in first run)
  • store already published posts in a local database
  • predefined hashtag support
  • config file support
  • image support
  • ability to include/exclude mentions/hashtags
  • dockerized, easy installable/usable container
  • multiple rss feed support
  • self-reply support

Maybe Future

  • authentication for rss url (for private nitter instances)
  • ability separate posts (for posts that exceed character limit)
  • run as daemon (service) and regularly fetch rss [using cronjob for now]
  • mutliple Mastodon application support
  • twitter account & rss export support (to eliminate need of Nitter)
  • reply support
  • retweet filter support
  • video support
  • message edit support
  • image & video compression support
  • media alt support (but how?)
  • ability to replace tracking urls
  • more management / boost / star / deletion abilities
  • auto profile info update
  • poll support

Usage

Requiements

  • a rss feed
  • a Mastodon account
  • a linux server/machine with go 1.24+/postgresql or docker and docker compose installed any(?) device

Installation

  • create a mastodon application with write:media and write:statuses scopes
  • git clone repo
  • fill .env and config.json files (see example files for help)
  • set up docker and docker compose
  • docker compose up --build -d in root folder
  • set up cronjob and run app or app container with a period

References

External Dependencies