mirror of
https://github.com/R0m1k3/FlowReader.git
synced 2026-10-11 17:28:05 +02:00
04a76795a4509fe5ac2bebe804e79ae87a60c753
# Conflicts: # web/package-lock.json
FlowReader
A minimalist, self-hosted RSS/Atom reader focused on simplicity and resource efficiency.
Quick Start
# Start with Docker Compose
docker-compose up --build
# Or use Make
make docker-up
Access the API: http://localhost:8080
Deployment
Unraid
A dedicated configuration file docker-compose.unraid.yaml is provided for Unraid servers. It pulls the pre-built image from GitHub Container Registry.
- Copy only
docker-compose.unraid.yamlto your Unraid server (e.g. into/mnt/user/appdata/flowreader). - Run with Docker Compose:
docker-compose -f docker-compose.unraid.yaml up -d
Note: The configuration uses /mnt/user/appdata/flowreader/postgres_data for database persistence.
Development
# Run locally (requires Go 1.22+)
make dev
# Run tests
make test
# Lint code
make lint
Project Structure
flowreader/
├── cmd/
│ └── server/ # Application entry point
├── internal/
│ ├── domain/ # Business logic (entities, services)
│ ├── handler/ # HTTP handlers
│ └── repository/ # Database access
├── pkg/ # Shared utilities
└── migrations/ # SQL migrations
Tech Stack
- Backend: Go 1.24+ (Chi, pgx, gofeed)
- Database: PostgreSQL 16
- Frontend: React 19 + Vite + Tailwind 4 ("Organic Warmth" Theme)
- Auth: Session-based (HTTP-only cookies)
- Feeds: RSS/Atom with Favicon extraction
Current Status (MVP)
- User Management (Register/Login)
- Feed Management (Add/Import/Refresh)
- Reader Experience (Grid/List View, infinite scroll)
- Theme: Organic Warmth (Carbon/Gold/Paper)
Memory Target
Total container footprint: < 150MB RAM
License
MIT
Languages
TypeScript
48.1%
Go
43.2%
CSS
4%
HTML
3.5%
Makefile
0.4%
Other
0.8%