An RSS reader webapp
Go to file
2025-02-03 16:08:17 -08:00
.sqlx Remove unwraps 2025-02-02 21:07:22 -08:00
migrations Setup page 2025-02-02 20:44:00 -08:00
src Add more demo feeds 2025-02-03 16:08:17 -08:00
static Demo notice 2025-02-03 16:01:34 -08:00
templates Demo notice 2025-02-03 16:01:34 -08:00
.gitignore Initial commit 2024-10-18 13:22:21 -07:00
Cargo.lock login cookie expiration 2025-02-03 01:36:32 -08:00
Cargo.toml login cookie expiration 2025-02-03 01:36:32 -08:00
flake.lock nix build 2025-02-03 01:15:58 -08:00
flake.nix nix build 2025-02-03 01:15:58 -08:00
README.md Demo flag 2025-02-03 02:14:49 -08:00
Rocket.toml Use sqlite database from command line arg 2025-02-02 16:55:34 -08:00

RSS Reader

A modern web-based RSS feed reader built with Rust and Rocket. Features a clean, dark-themed interface that allows you to:

  • Add and manage RSS/Atom feeds
  • View feed entries with titles, summaries, and timestamps
  • Poll feeds for updates
  • Organize feeds with categories
  • Multi-user support with admin capabilities

Installation

Using Nix

This project is packaged with Nix flakes. To install and run it:

  1. Make sure you have Nix installed with flakes enabled. Add this to your /etc/nix/nix.conf if you haven't already:

    experimental-features = nix-command flakes
    
  2. Install the package:

    nix profile install git+https://code.everydayimshuflin.com/greg/rss-reader
    

    Or run it directly:

    # Run with a persistent database
    nix run git+https://code.everydayimshuflin.com/greg/rss-reader -- -d /path/to/database.sqlite
    
    # Or try it out in demo mode (uses in-memory database)
    nix run git+https://code.everydayimshuflin.com/greg/rss-reader -- --demo
    

Development

To set up a development environment:

  1. Clone the repository:

    git clone https://code.everydayimshuflin.com/greg/rss-reader.git
    cd rss-reader
    
  2. Enter the development shell:

    nix develop
    
  3. Run the application:

    # Run with a persistent database
    cargo run -- -d rss-reader.db
    
    # Or try it out in demo mode (uses in-memory database)
    cargo run -- --demo
    

The application will be available at http://localhost:8000.

Demo Mode

When running in demo mode (using the --demo flag), the application will:

  • Use an in-memory SQLite database that is cleared when the application stops
  • Create two pre-configured users:
    • Admin user: username admin, password admin
    • Regular user: username demo, password demo