Skip to content
/ rssreader Public

An ASP.NET Core 2 RSS Reader that you can host yourself

License

Notifications You must be signed in to change notification settings

quum/rssreader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rssreader

When google reader closed, I moved to digg reader. Now that is closing down too I thought rather than sign up with another news aggregation provider I would just write my own.

There are two components to be deployed

  • RSSReader is the ASP .NET Core 2 server component that uses Razor Pages

  • RSSUtil is a background utility that you can use to import any existing feeds you have in OPML format. Its main job is to sweep all the feeds you are subscribed to and update the database as new articles arrive.

As this is written using .NET Core 2, you can deploy it on Windows or Linux.

Most likely you will want to deploy on Linux as the hosting is so much cheaper.

Acknowledgements

I used Armin Reiter's Feed Reader. Thanks Armin!

Prerequisites

Create the database

mysql -u root --password=password --execute="create schema rssdb"
mysql -u root --password=password rssdb < ./SQL/rssdb.sql

Importing OPML

dotnet RSSUtil.dll -d rssdb -i nameofopml.xml

(database is specified as schema:user:password:server:port. user default=root, password default=password, server default=127.0.0.1, port default = 3306)

Scanning for new articles

dotnet RSSUtil.dll -d rssdb -s

(periodically run from crontab)

Setting up the web site

RSSReader uses the .NET Core Kestrel webserver. You can't expose that to the Internet.

You first set up RSSReader as a service, for example using systemd:

[Unit]
Description=my RSS reader
[Service]
WorkingDirectory=/apps/rssreader
ExecStart=/usr/bin/dotnet /apps/rssreader/RSSReader.dll --urls "http://+:5001"
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-rssreader
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target

Then you configure a reverse proxy to point to this app, for example in Apache:

<VirtualHost *:80>
ServerName myrss.example.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5001/
ProxyPassReverse / http://127.0.0.1:5001/
ErrorLog /var/log/apache2/aspnetcoredemo-error.log
CustomLog /var/log/apache2/aspnetcodedemo-access.log common
</VirtualHost>

About

An ASP.NET Core 2 RSS Reader that you can host yourself

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages