Bug - FreshRSS Constant Restarting
Posted by PinkyBroham
Bug: FreshRSS module healthcheck always fails — false "unhealthy/restarting repeatedly" status Symptom: sb-freshrss container shows yellow/"restarting repeatedly" in the dashboard. Apache logs show clean SIGTERM/restart cycles every ~30-60s, app itself works fine at :8070. Root cause: The healthcheck in modules/freshrss/docker-compose.yml runs: test: ["CMD-SHELL", "wget -qO- http://localhost:80 /dev/null 2&1 || exit 1"] But the freshrss/freshrss image does not have wget or curl installed — confirmed via: sudo docker exec sb-freshrss which wget curl php php-cli → only /usr/bin/php exists. So the healthcheck test binary doesn't exist in the container, guaranteeing exit 1 on every check, forever, which trips Docker's restart/unhealthy logic continuously even though FreshRSS itself is running fine. Confirmed via: docker inspect sb-freshrss --format='{{json .State.Health}}' → repeated "ExitCode":1,"Output":"" entries, FailingStreak climbing. Workaround (per-user, gets overwritten on sparkbox update): Edit the healthcheck to use php instead: healthcheck: test: ["CMD-SHELL", "php -r '$$c = @filegetcontents(\"http://localhost:80\"); exit($$c === false ? 1 : 0);'"] interval: 30s timeout: 10s retries: 3 startperiod: 15s Then sudo sparkbox restart freshrss. Confirmed fix — status flips to "healthy", FailingStreak:0. Ask: Please bake a working healthcheck (php-based, or drop it) into the default FreshRSS module so this doesn't hit every install.
1 replies
Chris wrote:
Nice diagnostic work here — you basically nailed it for us. This version of the FreshRSS image doesn't have wget or curl inside it, so that healthcheck is guaranteed to fail every single time even though FreshRSS is working completely fine. That yellow status is a false alarm, not a real problem with your box. I've flagged this with Tom so the healthcheck gets fixed properly for everyone rather than each person patching their own copy. Your php-based workaround is safe to use in the meantime if the color bugs you — just know a future update will overwrite it until the real fix ships.