RSS to ActivityPub proxy
This is a simple Mastodon/ActivityPub server that has a virtual
@website@mastofeeder.com user for every RSS feed in the Internet. Just search
for your favourite RSS-enabled website from Mastodon's search and follow the
user! All RSS items will be posted as toots.
@xkcd.com@mastofeeder.com@engadget.com@mastofeeder.com@techcrunch.com@mastofeeder.com- Or any other website that has an RSS feed!
@YOUR_WEBSITE_HERE@mastofeeder.com
You can follow feeds with slashes in the URL by replacing the slashes with ..:
indiegames.com/blog->@indiegames.com..blog@mastofeeder.com
Some websites might have feed URLs that are case-sensitive or contain characters that can't be expressed in a Fediverse username. To follow these feeds, you can replace the first slash with .. and base32 encode the path, ignoring any trailing =. For example:
en.wikipedia.org/w/api.php?action=featuredfeed&feed=featured&feedformat=rss-> ``en.wikipedia.org._.O4XWC4DJFZYGQ4B7MFRXI2LPNY6WMZLBOR2XEZLEMZSWKZBGMZSWKZB5MZSWC5DVOJSWIJTGMVSWIZTPOJWWC5B5OJZXG@mastofeeder.com
You can run the project locally:
yarn
SERVER_HOSTNAME=your-domain.com yarn devThis runs the project using ts-node. Note that you need to have a public DNS
for the project to work; you can use e.g. ngrok or
localhost.run for this.
Running the project in dev mode is not recommended for production, as it takes a lot more memory and yields in longer startup time. You can run the project in produciton mode by building it first:
yarn build
yart startThis compiles the project to build/ folder using tsc and runs the built app.
This project is deployed automatically when pushed to master branch using
gh-actions.
This project tries to achieve:
- Following any RSS feed directly from Mastodon
- No login, no registration, no ads
- Being a super simple ActivityPub server
This project uses environment variables for configuration. The following environment variables are available:
Required: true
Needed so that the server knows what domain it's running on.
Default: ./database.db
This project uses SQLite as a database; it's the simplest sane option for single-server fly.io persistence. You can specify the filename of the database here.
There are other awesome projects that are very similar to Mastofeeder, so make sure to check them out too!
If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.
The code in this project is licensed under MIT license.
