[FreshRSS] Comment automatiser l'actualisation de fluxs?

What app is this about, and its version: FreshRSS 1.28.0~ynh1
What YunoHost version are you running: 12.1.39
What type of hardware are you using: Virtual machine

Describe your issue

Bonjour,

J’utilise Yunohost sur une machine tournant sous Proxmox VE 9.1.4 avec une LXC générée avec un helper-scipt. J’ai un VPN chez FDN qui est activé.

J’ai recemment installé FreshRSS, j’ai créé un utilsateur specifique (pas un utilisateur yunohost mais juste freshrss, en desactivant l’authentification automatique) et je souhaite que mes flux s’actualisent automatiquement chaque demie-heure.

J’ai tenté avec cron et avec systemd (je n’ai pas compris lequel utiliser), en suivant les diffentes infos trouvées sur le forum, le git de yuno et la doc de freshrss mais rien ne fonctionne.

Auriez-vous une idee ?

Merci d’avance

Share relevant logs or error messages

root@miniyuno:~# nano /etc/cron.d/freshrss
MAILTO=“root”
*/30 * * * * freshrss /usr/bin/php8.4 /var/www/freshrss/app/actualize_script.php > /var/log/freshrss/freshrss.log 2>&1

root@miniyuno:~# nano /etc/systemd/system/freshrss.service
[Unit]
Description=FreshRSS get new content
Wants=freshrss.timer

[Service]
User=freshrss
Type=simple
ExecStart=/usr/bin/php8.4 /var/www/FreshRSS/app/actualize_script.php

root@miniyuno:~# nano /etc/systemd/system/freshrss.timer
[Unit]
Description=FreshRSS get new content

[Timer]
OnBootSec=30s
OnCalendar=*:0/30

[Install]
WantedBy=timers.target

Bonjour,

J’ai remarqué une différence de casse entre les deux chemins que vous avez mentionnés :

  • Dans le cron : /var/www/freshrss/app/...
  • Dans systemd : /var/www/FreshRSS/app/...

Linux étant sensible à la casse, est-ce que c’est une coquille dans le message ou bien c’est réellement ce que vous avez configuré ? Si c’est le cas, l’un des deux chemins est forcément incorrect.

Pouvez vous vérifier le vrai nom (et les droits) du dossier avec :

ls -la /var/www/ | grep -i fresh

Bonjour @djez et merci pour ton aide :folded_hands:

Alors deja :
root@miniyuno:~# ls -la /var/www/ | grep -i fresh
drwxr-x— 13 freshrss www-data 4096 Jan 5 16:07 freshrss

Donc effectivement je dois faire attention à la case !
Je vais privilégier systemd (plus moderne ?) et donc j’ai pour l’instant mis de coté cron en commentant les lignes que j’avais créé pour freshrss dans /etc/cron.d/freshrss et /etc/crontab

Donc dans /etc/systemd/system/freshrss.service j’ai :

[Unit]
Description=FreshRSS get new content
Wants=freshrss.timer

[Service]
User=www-data
Type=simple
ExecStart=/usr/bin/php /var/www/freshrss/app/actualize_script.php

Malheureusement ca ne semble toujours pas actualiser mes fluxs, même après un systemctl daemon-reload en root. J’ai essayé avec /usr/bin/php8.4 mais pareil, pas d’actualisation auto.

Je précise que j’utilise un utilisateur specifique a freshrss et pas un compte yunohost.

Normalement, l’installation de l’app crée déjà cet utilisateur.

As-tu essayé

*/30 * * * * freshrss php -f /var/www/freshrss/app/actualize_script.php > /tmp/FreshRSS.log 2>&1

Merci @otm33 pourrais-tu me confirmer dans quel fichier je dois tester cette ligne ?

/etc/cron.d/freshrss ou /etc/crontab?

De plus, dois-je effectuer une commande ensuite, a l’instar de systemctl daemon-reload ?

Il y a déjà un fichier par défaut pour freshrss et c’est celui-là qui ne fonctionne pas, c’est ça ?
Si oui, place la ligne donnée dans /etc/crontab (ou directement crontab -e si tu es en root) et vois si cela fait une différence.

j’ai bien ajouté :

root@miniyuno:~# crontab -e
*/30 * * * * freshrss php -f /var/www/freshrss/app/actualize_script.php > /tmp/FreshRSS.log 2>&1

Malheureusment, après 30minutes, mes fluxs ne sont toujours pas actualisés automatiquement :face_with_diagonal_mouth:

Tu peux enlever la ligne que je t’ai donnée : je me suis emmêlé les pinceaux et il me semble que le cron existant fonctionne. Regarde ce que tu trouves dans le fichier de sortie : nano /var/log/freshrss/freshrss.log

le log contient une seule entrée qui date de la date d’installation de FreshRSS :

FreshRSS starting feeds actualization at 2025-07-07T11:20:01+00:00
FreshRSS actualize [user]…
FreshRSS actualization done for 1 users, using 6.00 MiB of memory, in 0 day(s), 0 hour(s), 0 minute(s) and 0 seconds.
Results:
[user] OK
End.

Je me demande si c’est a cause du fait que j’ai créé un utilisateur specifique dans FreshRSS qui n’est pas le même utilisateur que celui de yunohost, c’est peut etre une piste ?

Le service devrait plutôt utiliser freshrss comme user.

Sinon pour le cron, il utilise la version par défaut de php, qui pourrait ne pas convenir.

Tu as édité ce fichier

Qui est installé par le package et ça n’a pas marché ?

Est-ce que lorsque tu lances la commande depuis le shell de l’app ça fonctionne ?

sudo yunohost app shell freshrss

php -f /var/www/freshrss/app/actualize_script.php

1 Like

depuis le shell cela fonctionne oui !

j’avais ca avant :

root@miniyuno:~# nano /etc/cron.d/freshrss
MAILTO=“root”
*/30 * * * * freshrss /usr/bin/php8.4 /var/www/freshrss/app/actualize_script.php > /var/log/freshrss/freshrss.log 2>&1

je vais tenter avec :
*/30 * * * * freshrss php -f /var/www/freshrss/app/actualize_script.php > /var/log/freshrss/freshrss.log 2>&1

C’est bien dans /etc/cron.d/freshrss ? ou sudo -u freshrss crontab -e ?

Qu’est ce que tu appelles package ? il n’y a pas de conf/freshrss.cron ni aucun dossier conf dans /var/www/freshrss/

C’est bien dans /etc/cron.d/freshrss mais reste à savoir pourquoi il ne fonctionne pas.

Lance ceci depuis une session root pour voir:

sudo -u freshrss /usr/bin/php8.4 /var/www/freshrss/app/actualize_script.php

avec sudo -u freshrss /usr/bin/php8.4 /var/www/freshrss/app/actualize_script.php ca fonctionne correctement aussi.

On va vérifier les droits sur les fichiers et …voir si cron fonctionne, au cas où…

systemctl status cron
ls -la /etc/cron.d/freshrss
ls -la /var/log/freshrss/
root@miniyuno:/var/www/freshrss# systemctl status cron
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; preset: enabled)
Active: active (running) since Fri 2026-01-02 19:27:05 CET; 1 week 5 days ago
Docs: man:cron(8)
Main PID: 566 (cron)
Tasks: 1 (limit: 35859)
Memory: 25.1M
CPU: 12min 34.692s
CGroup: /system.slice/cron.service
└─566 /usr/sbin/cron -f

Jan 14 23:59:01 miniyuno CRON[602249]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Jan 14 23:59:01 miniyuno CRON[602250]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 60 2)
Jan 14 23:59:01 miniyuno CRON[602249]: pam_unix(cron:session): session closed for user root
Jan 15 00:00:01 miniyuno CRON[602380]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Jan 15 00:00:01 miniyuno CRON[602382]: (root) CMD (: YunoHost DynDNS update; sleep $((RANDOM%60)); ! ping -q -W5 -c1 ipv4.yuno>
Jan 15 00:00:01 miniyuno CRON[602379]: pam_unix(cron:session): session opened for user freshrss(uid=983) by (uid=0)
Jan 15 00:00:01 miniyuno CRON[602384]: (freshrss) CMD (php -f /var/www/freshrss/app/actualize_script.php > /var/log/freshrss/f>
Jan 15 00:00:01 miniyuno CRON[602379]: pam_unix(cron:session): session closed for user freshrss
Jan 15 00:00:21 miniyuno CRON[602380]: pam_unix(cron:session): session closed for user root
Jan 15 00:04:01 miniyuno cron[566]: (systemfreshrss) RELOAD (/etc/cron.d/freshrss)
lines 1-21/21 (END)

root@miniyuno:/var/www/freshrss# ls -la /etc/cron.d/freshrss
-r-------- 1 root root 247 Jan 15 00:03 /etc/cron.d/freshrss
root@miniyuno:/var/www/freshrss# ls -la /var/log/freshrss/
total 12
drwxr-x—  2 freshrss freshrss 4096 Jan 14 22:46 .
drwxr-xr-x 28 root     root     4096 Jan 11 00:00 ..
-rw-r–r--  1 13ft     13ft      237 Jul  7  2025 freshrss.log
root@miniyuno:/var/www/freshrss#

/etc/cron.d/freshrss ne devrait-il pas appartenir a freshrss ?

Non, mais en revanchefreshrss.log devrait appartenir à freshrss.

-rw-r–r-- 1 13ft 13ft 237 Jul 7 2025 freshrss.log

Je pense que le cron fonctionne mais qu’il ne peut pas écrire dans le log.

sudo chown freshrss:freshrss /var/log/freshrss/freshrss.log

Modifie temporairement la fréquence du cron et regarde s’il écrit bien dans /var/log/freshrss/freshrss.log

1 Like

ok effectivement rien n’etait ecrit dans /var/log/freshrss/freshrss.log maintenant c’est bon.

Dans FreshRSS il y a un setting Do not automatically refresh more often than 20 mins et je peux pas mettre plus bas, j’ai peur que ca rentre en conflit avec un cron a moins de 20 mins, je vais donc regler sur 20 mins e je vous tiens au courant :+1:

super, ca semble fonctionner ! je vais attendre demain matin avant de crier victoire et je vous confirme ca !

C’est confirmé ca marche !

donc pour info il s’agissait certainement des droits sur le fichier freshrss.log et la comande sudo chown freshrss:freshrss /var/log/freshrss/freshrss.log semble avoir ete la solution.

Et c’est bien cette ligne dans /etc/cron.d/freshrss :

*/20 * * * * freshrss php -f /var/www/freshrss/app/actualize_script.php > /var/log/freshrss/freshrss.log 2>&1

Merci beaucoup pour votre aide :grin:

1 Like