68 lines
1.8 KiB
Markdown
68 lines
1.8 KiB
Markdown
# 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:
|
|
```bash
|
|
nix profile install git+https://code.everydayimshuflin.com/greg/rss-reader
|
|
```
|
|
|
|
Or run it directly:
|
|
```bash
|
|
# 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:
|
|
```bash
|
|
git clone https://code.everydayimshuflin.com/greg/rss-reader.git
|
|
cd rss-reader
|
|
```
|
|
|
|
2. Enter the development shell:
|
|
```bash
|
|
nix develop
|
|
```
|
|
|
|
3. Run the application:
|
|
```bash
|
|
# 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` |