Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/0x2E/fusion
A lightweight, self-hosted friendly RSS aggregator and reader
https://github.com/0x2E/fusion
rss rss-aggregator rss-reader self-hosted
Last synced: about 2 months ago
JSON representation
A lightweight, self-hosted friendly RSS aggregator and reader
- Host: GitHub
- URL: https://github.com/0x2E/fusion
- Owner: 0x2E
- License: mit
- Created: 2024-03-06T08:43:43.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-08-26T04:27:39.000Z (4 months ago)
- Last Synced: 2024-08-27T03:38:52.197Z (4 months ago)
- Topics: rss, rss-aggregator, rss-reader, self-hosted
- Language: Svelte
- Homepage:
- Size: 1.21 MB
- Stars: 949
- Watchers: 9
- Forks: 21
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-homelab - Fusion - hosted friendly RSS aggregator and reader | (Apps / RSS)
- my-awesome - 0x2E/fusion - aggregator,rss-reader,self-hosted pushed_at:2024-09 star:1.1k fork:0.0k A lightweight, self-hosted friendly RSS aggregator and reader (Svelte)
README
# Fusion
A lightweight RSS feed aggregator and reader.
![preview](./assets/screenshot.png)
Key features include:
- Group, Bookmark, Search, Sniff feeds automatically
- Import/Export OPML file
- Support RSS, Atom, JSON types feed
- Responsive, Light/Dark mode, PWA
- Lightweight, Self-hosted friendly
- Built with Golang and SQLite, Deploy with a single binary
- Pre-built Docker image
- Uses about 80MB of memory## Installation
### 1. Docker
Choose Docker CLI or Docker Compose examples below:
#### 1.a. Docker CLI
```shell
docker run -it -d -p 8080:8080 -v $(pwd)/fusion:/data \
-e PASSWORD="rss123456" \
rook1e404/fusion:latest
```#### 1.b. Docker Compose
```compose
version: '3'
services:
fusion:
image: rook1e404/fusion:latest
ports:
- '127.0.0.1:8080:8080'
environment:
- PASSWORD=rss123456
restart: "unless-stopped"
volumes:
- ./data:/data
```Change `./data` to where you want the files stored. Remember to specify localhost IP unless you want Docker exposing the port though your firewall. Then, in the same directory as this `compose.yml` file run `docker compose up -d` (or `docker-compose up -d` on older versions).
### 2. Pre-built binary
Download from [Releases](https://github.com/0x2E/fusion/releases).
### 3. Build from source
1. Prepare dependencies: Go 1.23+, Node.js 22+.
2. Check `scripts.sh` for more details.For example:
```shell
./scripts.sh build
```## Configuration
Fusion can be configured in many ways:
- System environment variables, such as those set by `export PASSWORD=123abc`.
- Create a `.env` file in the same directory as the binary file, and then copy the items you want to modify into it.
- NOTE: values in `.env` file can be overwritten by system environment variables.All configuration items can be found [here](https://github.com/0x2E/fusion/blob/main/.env).
## Credits
- Front-end is built with: [Sveltekit](https://github.com/sveltejs/kit), [shadcn-svelte](https://github.com/huntabyte/shadcn-svelte)
- Back-end is built with: [Echo](https://github.com/labstack/echo), [GORM](https://github.com/go-gorm/gorm)
- Parsing feed with [gofeed](https://github.com/mmcdole/gofeed)