#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 Not sure, very new to this stuff lol.
@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
You don’t have paths for your reverse proxies. You need to tell them where these routes go if this is 30X redirect, otherwise, they have no idea what you’re trying to get to.
@just_another_person Not sure what paths to add or how. I don't know the MiniFlux UI that well to know every path it needs. I didn't think you had to add paths to the reverse proxy, just the subdomain. That's how all of my services are configured.

Well that’s a whole “how to computer” conversation I’m not going to dig into in it’s entirety, but if you’re unfamiliar with patching and routes for web services, you’re going to have a bad time with the setup you’ve chosen.

Have a run through their docs and check some of your configs maybe: miniflux.app/docs/howto.html

How-To's

Examples and Tutorials

@just_another_person I've looked into it a little, and I don't think I need to add paths to my Caddyfile since MiniFlux has its own subdomain with nothing else on it. From what I've gathered, adding paths is most useful if you have different services running on one subdomain.

No, paths and routing take a base URL into account, then handle redirects when/if they come into play and point it where it needs to go.

If this app is sending you a redirect to /login and you’re getting a blank page, we need to know WHY. This is why I said to report back with your browser’s console log when you make the request and get redirected. It will tell us exactly what is happening.

@just_another_person I've looked at my console log, and it's blank. Nothing comes up when I get redirected.
It can’t be blank if you’re getting a redirect AND blank page. Make sure you check the network tab as well.
@just_another_person Someone else helped me figure it out. My proxy rule for MiniFlux was a bit off. It works now. Lol now trying to get ReactFlux working.
@RareBird15 Hey @coffee_nebula can you help?
@blindndangerous @coffee_nebula Thanks, but I figured it out with some help from someone else on here. I had my Caddyfile set up wrong.