A robust and scalable RSS feed aggregator service built with Go.
RSSAgg is a backend service designed to aggregate, manage, and fetch posts from multiple RSS feeds. It provides a RESTful API to manage feeds, track user subscriptions, and periodically fetch posts from published RSS sources.
- Configuration Management: Loads configurations seamlessly from
.envfiles usinggodotenv. - RESTful API: Lightweight and fast HTTP API server.
- Feed Aggregation: Scheduled background scrapers to fetch and parse RSS feeds (in development).
- User & Subscription Management: Authenticate users and track feed subscriptions (in development).
- Go (version 1.22 or newer recommended)
- Git
git clone https://github.com/hasunB/rssagg.git
cd rssaggCreate a .env file in the root directory:
PORT=8080| Variable | Description | Default |
|---|---|---|
PORT |
The port the HTTP server listens on | 8080 |
go mod downloadgo run .-
Linux / macOS:
go build -o rssagg ./rssagg
-
Windows (PowerShell):
go build .\rssagg.exe
rssagg/
├── .env # Environment variables (git-ignored)
├── .gitignore # Git ignore configuration
├── go.mod # Go module definition
├── go.sum # Go module checksums
├── LICENSE # MIT License
├── main.go # Application entry point
└── README.md # Project documentation
- Project initialization & environment configuration
- HTTP router setup (
chirouter) - Database integration with PostgreSQL &
sqlc - Database schema migrations using
goose - User authentication with API keys
- Feed creation and follow/unfollow endpoints
- Background RSS feed scraper worker
This project is licensed under the MIT License - see the LICENSE file for details.