FreshRSS
FreshRSS ist ein open Source RSS Feed Aggregator speziell für on premise Hosting.
Installation
Die Anwendung wird nach /usr/share/webapps/freshrss installiert. Hierzu muss man nur das Paket FreshRSS aus dem AUR installieren.
yaourt --noconfirm -S freshrss
Einrichtung NginX
# HTTP -> HTTPS
server {
listen 80;
server_name freshrss.xxx.org;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name freshrss.xxx.org;
# SSL
include /etc/nginx/ssl/*.xxx.org;
# logging
error_log /var/log/nginx/freshrss_error.log debug;
access_log /var/log/nginx/freshrss_access.log;
# the folder p of your FreshRSS installation
root /usr/share/webapps/freshrss/p/;
index index.php index.html index.htm;
# php files handling
# this regex is mandatory because of the API
location ~ ^.+?\.php(/.*)?$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
# By default, the variable PATH_INFO is not set under PHP-FPM
# But FreshRSS API greader.php need it. If you have a “Bad Request” error, double check this var!
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location / {
try_files $uri $uri/ index.php;
}
}
Automatisches aktualisieren der Feed im Hintergrund
Leider bringt die Software keine Möglichkeit mit die abonnierten Feed automatisch im Hintergrund zu aktualisieren. Dieses ist aber nicht weiter dramatisch, da ein Systemd Timer schon das Problem lösen kann.
Timer Task bestimmen
Es muss nur das mitgelieferte Skript actualize_script.php mit den Benutzerrechten des WebServers ausgeführt werden. Unter Arch Linux ist das in der Regel der User http in der Gruppe http.
[Unit]
Description=auto refresh FreshRSS feeds
[Service]
Type=oneshot
User=http
Group=http
ExecStart=/usr/bin/php -f /usr/share/webapps/freshrss/app/actualize_script.php > /tmp/FreshRSS.log 2>&1
Interval einstellen
Eine Aktualisierung alle 10 Minuten anstoßen.
[Unit]
Description=refresh FreshRSS feeds every 10 minutes
[Timer]
OnCalendar=*:0/10
Persistent=true
[Install]
WantedBy=timers.target
Den Timer starten
Jetzt muss nur noch der Timer gestartet werden.
systemctl enable --now freshrss.timer