[HN Gopher] Show HN: I built a tiny-VPS friendly RSS aggregator ...
___________________________________________________________________
Show HN: I built a tiny-VPS friendly RSS aggregator and reader
Hi, folks. As an RSS user, I tried Inoreader and Feedly, then
ended up self-hosting a Miniflux instance on my homelab. A few
months ago, I moved to another city and had to shut down my homelab
for a long time, so I couldn't access my local miniflux. It was
quite inconvenient. I decided to self-host my RSS aggregator on a
tiny VPS or PaaS such as fly.io. However, Miniflux requires a
PostgreSQL database, which may isn't suitable for a tiny VPS
instance. So I built fusion with Golang and SQLite. It contains
basic features such as Group, Bookmark, Search, Automatically feeds
sniffing, Import/Export OPML file, etc. It uses about 80MB of Mem
and negligible CPU usage (metrics here:
https://imgur.com/a/EJIdevn). Feel free to share your questions
and suggestions. BTW, I also built an online tool to sniff RSS
links from a URL. (https://rss-finder.rook1e.com/)
Author : rook1e_dev
Score : 128 points
Date : 2024-05-30 10:53 UTC (12 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| QasimK wrote:
| This is what self-hosted software should be. An app, self-
| contained, (essentially) a single file with minimal dependencies.
|
| Not something so complex that it requires docker. Not something
| that requires you to install a separate database. Not something
| that depends on redis and other external services.
|
| I've turned down many self-hosted options due to the complexity
| of the setup and maintenance.
| holsta wrote:
| > Node 21 with NPM > Sveltekit, shadcn-svelte > Echo, GORM >
| gofeed
|
| And the documentation literally specifies it requires docker.
|
| How did this become "minimal dependencies"?
| bArray wrote:
| Almost guaranteed this doesn't build in ~2 years and you
| would likely need to know all of those languages to fix it.
| Klonoar wrote:
| I don't think it's _that_ bad, _but_ skimming that repo
| leaves me feeling like the frontend stack used makes things
| far more complex than they need to be.
|
| Still, seems like a great project. I added it to my list of
| things to check out whenever I have a free weekend... if I
| ever get there.
| skydhash wrote:
| Encountered the same problem last year. My tech stack was
| React Native as I was mostly building stuff that has few
| interactions and it was easy to get something good on both
| platforms. Then, I got a notice from Google about API
| version. Updating the project was such a nightmare due to
| compatibility issue. Some libraries were abandoned. Some
| had breaking changes. It was easier to write the two native
| versions than to deal with npm mess.
| eviks wrote:
| The docs literally specify it doesn't
|
| "Deploy with a single binary"
| holsta wrote:
| It would be nice if people realised that not everything is
| Linux (or Windows or Mac).
| rook1e_dev wrote:
| Hi. Just to clarify.
|
| > Node 21 with NPM > Sveltekit, shadcn-svelte
|
| The front-end things are used during the build process. You
| don't need them when deploy.
|
| > And the documentation literally specifies it requires
| docker.
|
| Fusion can be deployed as a *single binary*. Docker is just
| the recommended way. Maybe we need to make documentation
| clearer.
| drusklo wrote:
| Looks good! I am curious on why you recommend to deploy
| using docker, being a single binary with no external
| dependencies I find the deployment simple enough.
|
| I write all my personal projects using Go and one of the
| things I most like is that it compiles to a binary without
| external dependencies.
| rook1e_dev wrote:
| That's mostly for Windows users.
|
| The SQLite driver uses cgo, so we use both Ubuntu and
| Windows Server in CI to avoid cross-compiling. However,
| we still can't confirm that it's 100% ok on Windows. If
| any weird bugs occur on Windows, we don't have much
| experience or energy to deal with them.
|
| The Docker image is based on Debian, we are more familary
| with it.
| drusklo wrote:
| That makes a lot of sense, thanks for taking the time to
| explain it.
| holsta wrote:
| It's an interesting difference in backgrounds, maybe? I
| tried to build this on OpenBSD where we don't have docker
| and we use 'make' instead of random shell scripts.
|
| For what it's worth, this is from the build log:
| error code 1 error path /home/holsta/3rdparty/fusio
| n/frontend/node_modules/@sveltejs/kit error command
| failed error command sh -c node postinstall.js
| error /home/holsta/3rdparty/fusion/frontend/node_modules/ro
| llup/dist/native.js:84 error throw new Error(
| error ^ error error Error: Your
| current platform "openbsd" and architecture "x64"
| combination is not yet supported by the native Rollup
| build. Please use the WASM build "@rollup/wasm-node"
| instead.
| generallee5686 wrote:
| Agreed. Lately I'm coming across self-hosted services that not
| only require docker, they essentially require a docker-compose
| file full of many other dependencies.
|
| The other thing that blows my mind is how many of these self-
| hosted applications require mysql/postgres instead of just
| using sqlite.
| phubbard wrote:
| This is awesome! I currently run FreshRSS on a pi5 and this looks
| like a nice, non-PHP alternative.
| beepbooptheory wrote:
| Looks really great. I can't tell from the readme, but can this
| produce its own feed which is the aggregation of the other feeds?
| That is the feature I always want and don't see too much with
| apps like this.
| rook1e_dev wrote:
| Hi, thanks for the suggestion! Currently it doesn't have that
| feature.
|
| You can create an issue about it on GitHub so we can evaluate
| how much it is needed.
| pglevy wrote:
| I love this idea! As a code hobbyist, I tried to do something
| like this for DIY podcast aggregation using Jekyll
| (https://github.com/lowcodelounge/pod-force). Look forward to
| checking this out to learn more. Thanks for sharing!
| skrause wrote:
| I can recommend https://github.com/nkanaev/yarr which is also a
| single Go binary, consumes only 40 MB of RAM and uses SQLite as
| well.
| nedrylandJP wrote:
| I've been using Slack /feed (ugh) to get RSS notifications
| because I want pings from certain feeds. I have not found a
| different, easy lightweight way to do this.
| visil wrote:
| Looks cool! I'm currently using Selfoss, which is fine in terms
| of requirements/maintenance, but if I didn't, I'd probably give
| this a try!
| pacifika wrote:
| Does it produce a rss feed itself?
| gcascio wrote:
| Cool project! Also it's welcome resource to learn, since I just
| started learning Go and was trying myself at an RSS reader
| (https://stille.app).
___________________________________________________________________
(page generated 2024-05-30 23:01 UTC)