FreshRSS¶
Qu’est-ce que FreshRSS ?¶
FreshRSS est un agrégateur de flux RSS. En gros, ça permet de mettre ses flux RSS dessus, et d’avoir toutes les informations au même endroit. Ça fait un moment que je veux faire un truc comme ça pour faire ma veille, c’est l’occasion.
Installation¶
Toute l’installation est décrite sur leur site. Je l’ai pas mal tweaker pour qu’elle s’adapte à mes besoins ainsi qu’à ma sécurité.
cd /usr/share/
git clone https://github.com/FreshRSS/FreshRSS.git
cd FreshRSS
git checkout tags/1.24.1 #Last release
ln -s /usr/share/FreshRSS/p /var/www/rss
chown www-data:www-data data/ -R
Configuration¶
Génération des certificats¶
On a ici besoin d’un simple petit certificat web server :
SERVER;rss.prj.luclis.fr;Roubaix;adminca@luclis.fr;ext.prj.luclis.fr;rss.luclis.fr;;Certificat pour FreshRSS
On créer le certificat, puis on l’envoie là où il faut :
cp /srv/IGC/luclis.fr/delegated_ca/private/budget.prj.luclis.fr.key /etc/ssl/private/rss.luclis.fr.key;
cat /srv/IGC/luclis.fr/delegated_ca/public/budget.prj.luclis.fr.pem /srv/IGC/luclis.fr/delegated_ca/public/ca_chain.pem | tee /etc/ssl/public/rss.luclis.fr_chain.pem;
Configuration du serveur web¶
Le principe est d’y avoir accès depuis n’importe ou, donc par web ! La configuration Nginx :
#RSS nginx conf
server {
listen 80;
http2 on;
server_name rss.luclis.fr srvprj02ovh.luclis.fr;
return 301 https://$host$request_uri;
}
server {
#listen 443 quic reuseport;
listen 443 ssl;
http2 on;
server_name rss.luclis.fr srvprj02ovh.luclis.fr;
ssl_certificate /etc/ssl/public/rss.luclis.fr_chain.pem;
ssl_certificate_key /etc/ssl/private/rss.luclis.fr.key;
# ssl_password_file /etc/ssl/private/rss.luclis.fr.pass;
#Enable QUIC and http/3
#ssl_quic on;
ssl_early_data on;
#Fichier de logs
access_log /var/log/nginx/rss_access.log;
error_log /var/log/nginx/rss_error.log;
# Path to the root of your installation
root /var/www/rss;
limit_req zone=flood burst=50;
# Add headers to serve security related headers
add_header Alt-Svc 'h3=":$server_port"; ma=86400';
# add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload;";
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
add_header X-XSS-Protection "1; mode=block" always;
fastcgi_hide_header X-Powered-By;
# php files handling
# this regex is mandatory because of the API
location ~ ^.+?\.php(/.*)?$ {
fastcgi_pass php-handler;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location / {
try_files $uri $uri/ index.php;
}
}
Et on redémmare nginx
systemctl restart nginx
Création de l’entrée DNS¶
Comme je ne souhaite pas exposer le service en externe, je vais créer mes entrées DNS dans mon samba uniquement.
samba-tool dns add srvprj02ovh.luclis.fr luclis.fr rss.luclis.fr CNAME srvprj02ovh.luclis.fr
Configuration de la base de donnée¶
FreshRSS a besoin d’une base de donnée. On la configure : Penser à changer le mot de passe
mariadb -u root -p
CREATE USER 'rss'@'localhost' IDENTIFIED BY '<password>';
CREATE DATABASE `rssDB`;
GRANT ALL privileges ON `rssDB`.* TO 'rss'@localhost;
FLUSH PRIVILEGES;
QUIT;
Sécurisation¶
Utilisation¶
Pour utiliser FreshRSS, il suffit de se rendre sur la page web associée. Après, c’est plus ou moins du clic party. Rien de bien extra-ordinaire. On verra si je le garde.