Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jehna/mastofeeder
RSS to ActivityPub bridge
https://github.com/jehna/mastofeeder
activitypub mastodon mastodon-bot rss rss-reader
Last synced: 24 days ago
JSON representation
RSS to ActivityPub bridge
- Host: GitHub
- URL: https://github.com/jehna/mastofeeder
- Owner: jehna
- License: mit
- Created: 2023-04-01T14:56:55.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-26T13:42:19.000Z (about 1 month ago)
- Last Synced: 2024-09-30T05:01:14.388Z (about 1 month ago)
- Topics: activitypub, mastodon, mastodon-bot, rss, rss-reader
- Language: TypeScript
- Homepage: https://mastofeeder.com
- Size: 550 KB
- Stars: 117
- Watchers: 6
- Forks: 7
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MastoFeeder
> RSS to ActivityPub proxyThis is a simple Mastodon/ActivityPub server that has a virtual
`@[email protected]` 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.## Examples:
- `@[email protected]`
- `@[email protected]`
- `@[email protected]`
- Or any other website that has an RSS feed! `@[email protected]`
- Convert slashes to dots: `indiegames.com/blog` -> `@[email protected]`
- Remove `.rss` and `.xml` extensions: `https://feeds.yle.fi/uutiset/v1/majorHeadlines/YLE_UUTISET.rss` -> `@feeds.yle.fi.uutiset.v1.majorHeadlines.YLE_UUTISET`## Developing
You can run the project locally:
```shell
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](https://ngrok.com/) or
[localhost.run](https://localhost.run/) for this.### Building
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:```shell
yarn build
yart start
```This compiles the project to `build/` folder using `tsc` and runs the built app.
### Deploying
This project is deployed automatically when pushed to `master` branch using
[gh-actions](./.github/workflows/fly.yml).## Features
This project tries to achieve:
* Following any RSS feed directly from Mastodon
* No login, no registration, no ads
* Being a super simple ActivityPub server## Configuration
This project uses environment variables for configuration. The following
environment variables are available:#### SERVER_HOSTNAME
Required: `true`Needed so that the server knows what domain it's running on.
#### DATABASE_FILENAME
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.## Other RSS → ActivityPub projects
There are other awesome projects that are very similar to Mastofeeder, so make
sure to check them out too!- [RSS to ActivityPub Converter by dariusk](https://github.com/dariusk/rss-to-activitypub)
- [RSS to ActivityPub crossposter by rakoo](https://sr.ht/~rakoo/rss2ap/)## Contributing
If you'd like to contribute, please fork the repository and use a feature
branch. Pull requests are warmly welcome.## Licensing
The code in this project is licensed under MIT license.