Not Moving Miniflux
2024-12-29 23:32:45 PST
Bart Massey 2024
In concert with the move I reported in my previous blog entry, I decided to move my RSS feed reader Miniflux to my cloud server. That is the logical place for it, I think.
I spent six or eight hours trying, and gave up.
Miniflux is a server that polls RSS (and/or Atom) feeds regularly and provides a web interface to browse them. I like Miniflux's functionality very much: it became my RSS solution sometime after Google bailed on Google Reader in 2013. I would love to think that Google killed it because it was too hard to maintain, and with the hope that others would take up the slack. The cynic in me, though, thinks that Google killed Reader because it's really hard to generate advertising dollars or gather much interesting personal information with an RSS platform, even one you control.
Anyhow, Miniflux is written in Go, which seems fine for this. It also uses Postgres for its data store. I am a big fan of Postgres in the abstract: it is the only truly open-source database I am aware of that is usable for "big" professional-grade deployments.
Sadly, I am less of a fan of Postgres in the concrete these days. It has become really "enterprisey", and doesn't seem to have much innovation or support for "normal" use cases. The big problem with Postgres — the awful, awful problem that has kept MySQL alive and made SQLite the correct solution for this kind of deployment — is its horrible authentication and security setup story. I have watched students and open source developers struggle here, and ultimately admit defeat. Heck, I have done it myself.
I don't have the energy to go into the Postgres setup and administration story in detail. Here's a few of the commands I typed at Postgres while trying to dump the miniflux database on my old server and then restore it on my new server. I don't know exactly what these do, so don't use them unless you know what you are doing. They didn't work for me much anyhow, but I put them here to give an idea and because I may want them later. Notes, in other words.
ALTER DATABASE postgres REFRESH COLLATION VERSION;
CREATE USER miniflux WITH PASSWORD 'xxxxxxxx';
CREATE DATABASE miniflux WITH OWNER = miniflux;
GRANT ALL PRIVILEGES ON DATABASE miniflux TO miniflux;
\c miniflux
GRANT ALL PRIVILEGES ON SCHEMA public TO miniflux;
Eventually, after exploring and learning a lot, I got my Miniflux installation running on my cloud server. It seemed to be working perfectly, so I patted myself on the back and went to bed.
In the morning, it developed that the feed sync couldn't update the database. I kept getting a cryptic error about "schema zulip". Something in the Zulip Postgres installation, I eventually concluded, was keeping the Miniflux Postgres installation from working. I tried to debug it for quite a while, but eventually concluded it was beyond me. I filed an issue asking for help from Miniflux (maybe should have tried Zulip as well) and moved back to accessing Miniflux on my own server for now.
I clearly have too much infrastructure in play. I need to get it down somehow. Ah well. Will let you know if anything develops: maybe you'll see the post via my Atom feed.