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
- Convert slashes to dots:
indiegames.com/blog
->@indiegames.com.blog@mastofeeder.com
- Remove
.rss
and.xml
extensions:https://feeds.yle.fi/uutiset/v1/majorHeadlines/YLE_UUTISET.rss
->@feeds.yle.fi.uutiset.v1.majorHeadlines.YLE_UUTISET
You can run the project locally:
yarn
SERVER_HOSTNAME=your-domain.com yarn dev
This 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 start
This 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.