#MiniFlux users, can anyone help?

Hi all. I'm having some issues with MiniFlux, a #SelfHosted #RSSReader, and hoping someone can help. MiniFlux was working fine until I tried to deploy ReactFlux on the same domain as it, rss.laniecarmelo.tech, on a subpath, /reactflux. This didn't work so I removed ReactFlux. I also migrated MiniFlux from #Docker to #Pacman package, thinking it would be easier on my system. This problem, or a similar one, was occurring before I did that though.

Now, rss.laniecarmelo.tech loads the MiniFlux login page, but when I login, it redirects to a blank page at rss.laniecarmelo.tech/login. I've added trusted proxies and cookie configuration to my miniflux.conf and headers to my Caddyfile, but I still have the issue.

I'm using #Caddy for #ReverseProxy and #Cloudflare for #SSO. Has anyone seen anything like this before? This is on a #RaspberryPi500 running #ArchLinuxARM.

I've checked MiniFlux logs, and it's getting the login requests and creating sessions. I'm not sure what's happening after that. Cloudflared and Caddy seem to be working normally.

#SelFhosting #Linux #RSS #RaspberryPi #RPi #tech #technology
@selfhost @selfhosted @selfhosting

@RareBird15 I’m assuming it’s a migration problem. Are you able to revert to docker? I can give a compose file if you need.
@be_far I don't think it's a migration problem. I had a similar issue with docker where going to rss.laniecarmelo.tech would redirect to rss.laniecarmelo.tech and load a blank page.
@RareBird15 I see, does Caddy still have anything related to ReactFlux enabled? And what do the miniflux logs look like when you start it up+try to log in?
@be_far Nothing left in Caddy for ReactFlux. MiniFlux logs look like this:
Feb 12 08:23:41 stormux systemd[1]: Starting Miniflux...
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Starting daemon..."
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=6
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Starting background scheduler..."
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=10
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=7
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=8
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=9
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=2
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=0
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=1
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=4
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=3
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=13
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=11
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=12
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=15
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=14
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Worker started" worker_id=5
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=about.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=add_subscription.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=api_keys.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=bookmark_entries.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=categories.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=category_entries.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=category_feeds.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=choose_subscription.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=create_api_key.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=create_category.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=create_user.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=edit_category.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=edit_feed.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=edit_user.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=entry.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=feed_entries.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=feeds.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=history_entries.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=import.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=integrations.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=login.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=search.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=sessions.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=settings.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=shared_entries.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=tag_entries.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=unread_entries.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=users.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=webauthn_rename.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Parsing template" template_name=offline.html
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Sending readiness notification to Systemd"
Feb 12 08:23:41 stormux miniflux[92458]: level=INFO msg="Starting HTTP server" listen_address=0.0.0.0:3010
Feb 12 08:23:41 stormux miniflux[92458]: level=DEBUG msg="Activating Systemd watchdog"
Feb 12 08:23:41 stormux systemd[1]: Started Miniflux.
Feb 12 08:23:52 stormux miniflux[92458]: level=DEBUG msg="Incoming request" client_ip=192.168.1.137 request.method=GET request.uri=/ request.protocol=HTTP/1.1 request.execution_time=3.48778ms
Feb 12 08:24:25 stormux miniflux[92458]: level=DEBUG msg="App session not found, creating a new one"
Feb 12 08:24:25 stormux miniflux[92458]: level=DEBUG msg="Incoming request" client_ip=192.168.1.137 request.method=GET request.uri=/ request.protocol=HTTP/1.1 request.execution_time=3.471372ms
Feb 12 08:25:08 stormux miniflux[92458]: level=DEBUG msg="App session not found, creating a new one"
Feb 12 08:25:08 stormux miniflux[92458]: level=DEBUG msg="Incoming request" client_ip=::1 request.method=GET request.uri=/ request.protocol=HTTP/1.1 request.execution_time=2.556358ms
[lanie@stormux ~] $ sudo journalctl -u miniflux --no-pager
Feb 12 09:02:50 stormux miniflux[92458]: level=DEBUG msg="Incoming request" client_ip=192.168.1.137 request.method=GET request.uri=/ request.protocol=HTTP/1.1 request.execution_time=2.816004ms
[lanie@stormux ~] $
@RareBird15 I’m not seeing any request for login, just the main page. Is the database active+with the right user and password? Maybe it’s waiting on dbconn and just stalling.
@be_far It looks like the database is up and running and accepting connections:
miniflux=> SELECT * FROM pg_stat_activity WHERE datname = 'miniflux';
datid | datname | pid | leader_pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | xact_start | query_start | state_change | wait_event_type | wait_event | state | backend_xid | backend_xmin | query_id | qu
ery | backend_type

-------+----------+--------+------------+----------+----------+------------------+-------------+-----------------+-------------+-------------------------------+-------------------------------+-------------------------------+-------------------------------+-----------------+------------+--------+-------------+--------------+----------+-----------------------------
-------------------------------+----------------
67392 | miniflux | 110678 | | 67391 | miniflux | | ::1 | | 33456 | 2025-02-12 09:08:43.127676-06 | | 2025-02-12 09:13:23.294225-06 | 2025-02-12 09:13:23.294255-06 | Client | ClientRead | idle | | | | ;

| client backend
67392 | miniflux | 112860 | | 67391 | miniflux | psql | | | -1 | 2025-02-12 09:13:25.841639-06 | 2025-02-12 09:13:30.859764-06 | 2025-02-12 09:13:30.859764-06 | 2025-02-12 09:13:30.859766-06 | | | active | | 564281 | | SELECT * FROM pg_stat_activi
ty WHERE datname = 'miniflux'; | client backend
(2 rows)
miniflux=>
@RareBird15 are you able to edit the Exec or ExecStart line of the systemd service to add the -debug flag?
@be_far Yes, I can do that. I have log level set to debug in MiniFlux. Will adding the -debug flag in the Systemd service give more information?
@RareBird15 no, that does the same. Can you connect to the db via the url set in the miniflux config, eg psql postgres://USERNAME:PASSWORD@127.0.0.1:port?
@be_far Yes. Just tried and it worked.
@RareBird15 so the db is working properly, miniflux is working properly, next place is caddy. What’s your hostname for the rss subdomain? And does it pass https://www.sslshopper.com/ssl-checker.html ?
SSL Checker

Use our fast SSL Checker will help you troubleshoot common SSL Certificate installation problems on your server including verifying that the correct certificate is installed, valid, and properly trusted.

@be_far It's rss.laniecarmelo.tech. I just checked, and it resolves to Cloudflare like it should and passes. This is my Caddyfile:

{
email laniecarmelo@gmail.com
debug
acme_dns cloudflare JpbcVkgbLQA3hSkl6WOWd_sm9tQvseuDGsf0mWsQ
http_port 80
https_port 443
auto_https off
admin :2019 {
origins 127.0.0.1:2019 0.0.0.0:2019 stormux:2019 caddy.laniecarmelo.tech
}
}

(logconfig) {
log {
output file /var/log/caddy/access.log {
format single_field common_log
roll_size 10mb
roll_keep 5
roll_keep_for 120h
}
}
}

home.laniecarmelo.tech:80 {
reverse_proxy localhost:3000
import logconfig
}

adguard.laniecarmelo.tech:80 {
reverse_proxy localhost:3001
import logconfig
}

portainer.laniecarmelo.tech:80 {
reverse_proxy localhost:3002
import logconfig
}

cockpit.laniecarmelo.tech:80 {
reverse_proxy localhost:3004
import logconfig
}

uptime.laniecarmelo.tech:80 {
reverse_proxy localhost:3006
import logconfig
}

git.laniecarmelo.tech:80 {
reverse_proxy localhost:3008
import logconfig
}

bookmarks.laniecarmelo.tech:80 {
reverse_proxy localhost:3009
import logconfig
}

rss.laniecarmelo.tech:80 {
reverse_proxy / http://localhost:3010
import logconfig
}

irc.laniecarmelo.tech:80 {
reverse_proxy localhost:3011
import logconfig
}

code.laniecarmelo.tech:80 {
reverse_proxy localhost:3012
import logconfig
}

glances.laniecarmelo.tech:80 {
reverse_proxy localhost:61208
encode gzip
handle_errors {
respond "Accessibility-first error: {err.status_code}"
}
import logconfig
}

beszel.laniecarmelo.tech:80 {
reverse_proxy localhost:8090
import logconfig
}

caddy.laniecarmelo.tech:80 {
reverse_proxy localhost:2019
import logconfig
}

*.laniecarmelo.tech:80 {
encode gzip
header Content-Security-Policy "default-src 'self';"
respond "Not Found" 404
}
@RareBird15 the proxy line does worry me. Can you configure miniflux to serve on a specific port and proxy to localhost:port instead?
@be_far Lol that was it. To be honest I've been teaching myself a lot of this stuff, and when I'm not sure about something I ask AI. It suggested the old configuration, but changing the Caddyfile fixed things. I now have:
rss.laniecarmelo.tech:80 {
reverse_proxy localhost:3010
import logconfig
}
Thanks for helping me troubleshoot this.
@RareBird15 Last week I broke my miniflux on upgrade and had to restore from backup so this process is something I'm intimately familiar with lmao