1
0
Fork 1
mirror of https://github.com/0x2E/fusion.git synced 2025-06-08 05:27:15 +09:00
A lightweight, self-hosted friendly RSS reader
Find a file
2025-04-30 14:51:49 +08:00
.github ci: Publish container image to GitHub Container Registry (#137) 2025-04-10 22:40:12 +08:00
api feat: redirect to the feed page after creation (#155) 2025-04-26 16:59:15 +08:00
assets doc: update screenshots 2025-03-29 19:52:18 +08:00
auth Check passwords based on hashes rather than plaintext 2025-01-12 11:31:01 -05:00
cmd/server refactor: replace zap log with slog (#150) 2025-04-25 17:18:25 +08:00
conf refactor: replace zap log with slog (#150) 2025-04-25 17:18:25 +08:00
frontend fix: trigger load re-run when item filter updates 2025-04-30 14:51:49 +08:00
model feat: display unread count in sidebar (#147) 2025-04-25 13:29:27 +08:00
pkg Extract feedfinder (#154) 2025-04-26 15:59:57 +08:00
repo feat: display items by group (#149) 2025-04-25 16:28:45 +08:00
server feat: redirect to the feed page after creation (#155) 2025-04-26 16:59:15 +08:00
service/pull fix: use update time if item does not have a publish time (#159) 2025-04-28 20:37:30 +08:00
.dockerignore fix: add the missing .git/ for fe build 2024-03-17 21:00:09 +08:00
.env.example feat: make the password optional (#128) 2025-04-05 20:14:31 +08:00
.gitignore Rename .env to .env.example 2024-12-23 21:02:15 -05:00
.goreleaser.yaml chore: use github-release-style changelog format 2025-04-17 12:15:01 +08:00
CONTRIBUTING.md docs: add contributing guidelines (#117) 2025-04-06 15:27:41 +08:00
Dockerfile chore: update Go version to 1.24 2025-03-14 11:19:51 +08:00
fly.toml feat: add zeabur and fly.io template (#127) 2025-03-28 21:58:22 +08:00
go.mod Extract feedfinder (#154) 2025-04-26 15:59:57 +08:00
go.sum Extract feedfinder (#154) 2025-04-26 15:59:57 +08:00
LICENSE Initial commit 2024-03-06 16:43:43 +08:00
README.md docs: add contributing guidelines (#117) 2025-04-06 15:27:41 +08:00
scripts.sh chore: switch to pnpm 2025-03-12 19:55:11 +08:00
zeabur.yml feat: add zeabur and fly.io template (#127) 2025-03-28 21:58:22 +08:00

Fusion

A lightweight RSS feed aggregator and reader.

screenshots

Key features include:

  • Group, bookmark, search, automatic feed sniffing, OPML file import/export
  • Support for RSS, Atom, and JSON feed types
  • Responsive, light/dark mode, PWA, Keyboard shortcut support
  • Lightweight and self-hosted friendly
    • Built with Golang and SQLite, deploy with a single binary
    • Pre-built Docker image
    • Uses about 80MB of memory
  • Internationalization (i18n): English, Chinese, German, French, Spanish, Russian, Portuguese, and Swedish

Installation

Docker

  • Docker CLI
docker run -it -d -p 8080:8080 \
  -v $(pwd)/fusion:/data \
  -e PASSWORD="fusion" \
  rook1e404/fusion:latest
  • Docker Compose
version: '3'
services:
  fusion:
    image: rook1e404/fusion:latest
    ports:
      - '127.0.0.1:8080:8080'
    environment:
      - PASSWORD=fusion
    restart: "unless-stopped"
    volumes:
      # Change `./data` to where you want the files stored
      - ./data:/data

Pre-built binary

Download from Releases.

One-Click Deployment

Deploy on Fly.io

Deploy on Zeabur

Maintained by community:

Deploy on Railway

Build from source

Check out the "Contributing" section.

Configuration

All configuration items can be found here.

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. Note that values in .env file can be overwritten by system environment variables.

Contributing

Contributions are welcome! Before contributing, please read the Contributing Guidelines.

  • Prepare environment: Go 1.24+, Node.js 23+ (and pnpm).
  • Check out the commands in scripts.sh.

For example:

./scripts.sh build

Credits