Tropic Host

FreshRSS: cos’è e come installarlo su un VPS

6 min di lettura
Tropic
FreshRSS: cos’è e come installarlo su un VPS

FreshRSS: il tuo feed di notizie senza algoritmi

I social network decidono autonomamente quali contenuti mostrare per primi. Per questo un aggiornamento importante di un progetto può passare facilmente inosservato, mentre al suo posto compaiono decine di suggerimenti. FreshRSS funziona in modo diverso: scegli tu le fonti e i nuovi contenuti appaiono in un unico feed cronologico.

FreshRSS può essere installato sul proprio server e utilizzato come una casella di posta unificata per blog, notizie, aggiornamenti software, forum, podcast e altre fonti con RSS o Atom. In questo articolo vedremo le funzionalità dell’applicazione, i requisiti del server e l’installazione su un VPS tramite Docker con HTTPS.

FreshRSS in cinque passaggi

  1. Creare un VPS Linux e puntare a esso un sottodominio, ad esempio rss.example.com.
  2. Installare Docker e Docker Compose.
  3. Avviare FreshRSS insieme a Caddy per ottenere HTTPS automatico.
  4. Aprire il sottodominio, scegliere SQLite e creare un account.
  5. Importare le iscrizioni da OPML oppure aggiungere i siti manualmente.

Dopo questa configurazione, il VPS controllerà automaticamente le fonti secondo la pianificazione, anche quando il computer dell’utente è spento.

Che cos’è FreshRSS

FreshRSS è un aggregatore RSS e Atom gratuito e self-hosted. Self-hosted significa che l’applicazione e il database vengono eseguiti su un server gestito da te, non nell’infrastruttura di un servizio cloud.

Un feed RSS è un file speciale che un sito aggiorna quando pubblica nuovi contenuti. FreshRSS recupera regolarmente questi file dalle fonti selezionate e riunisce le voci in un’unica interfaccia. Gli articoli non letti, i preferiti e la cronologia di lettura vengono sincronizzati tra i dispositivi.

L’idea di base è semplice: l’utente decide autonomamente chi seguire e in quale ordine visualizzare le pubblicazioni. FreshRSS non ordina le voci in base al coinvolgimento e non inserisce contenuti consigliati tra le iscrizioni.

Funzionalità di FreshRSS

FunzionalitàA cosa serve
Categorie, stati e preferitiSeparare fonti di lavoro, tecniche e personali
Ricerca, filtri e query salvateMostrare soltanto le pubblicazioni relative a un determinato argomento
Importazione ed esportazione OPMLTrasferire rapidamente un elenco di iscrizioni
Google Reader API e Fever APICollegare applicazioni compatibili su telefono e computer
WebSubRicevere le voci subito dopo la pubblicazione dalle fonti supportate
Più utentiCreare account separati per una famiglia o un team
Temi ed estensioniModificare l’interfaccia e aggiungere funzionalità
XPath e JSON FeedIscriversi ad alcune fonti prive di un normale feed RSS o Atom

Una query salvata può diventare un feed tematico separato, per esempio contenente solo pubblicazioni sulla sicurezza o aggiornamenti di uno specifico prodotto. Il risultato può essere aperto all’interno di FreshRSS oppure pubblicato in formato HTML o RSS; per gli elenchi di feed è disponibile anche OPML.

WebSub consente a un sito compatibile di notificare direttamente a FreshRSS la presenza di una nuova voce, senza attendere il controllo pianificato successivo. Perché funzioni, l’istanza deve essere raggiungibile da Internet tramite un indirizzo pubblico valido.

FreshRSS è particolarmente utile per sviluppatori e amministratori: blog di progetto, release, rapporti sugli incidenti e pubblicazioni di sicurezza possono essere raccolti in un unico feed. Per la lettura quotidiana sostituisce decine di schede aperte e mantiene sincronizzato su tutti i dispositivi l’esatto stato di lettura.

Quali sono i requisiti di FreshRSS

FreshRSS richiede poche risorse. Supporta SQLite, PostgreSQL, MariaDB e MySQL, mentre un’installazione manuale richiede un server web e PHP 8.1 o una versione successiva. Nella descrizione ufficiale viene citato persino un test su Raspberry Pi 1 con 150 feed e 22.000 articoli.

Configurazioni iniziali pratiche:

ScenarioCPURAMSpazioDatabase
Feed personale1 vCPU1 GBSSD da 10–20 GBSQLite
Famiglia o piccolo team1–2 vCPU2 GBSSD da 20–40 GBSQLite o database esterno
Molti utenti e un archivio ampioDa 2 vCPUDa 4 GBSSD da 40 GBPostgreSQL o MariaDB

Si tratta di valori indicativi, non di requisiti minimi rigidi. Il consumo di spazio dipende dal numero di fonti, dalla frequenza di pubblicazione e dal periodo di conservazione della cronologia. Un VPS è più pratico di un computer domestico quando servono aggiornamenti continui, accesso dall’esterno, sincronizzazione mobile e WebSub.

Come installare FreshRSS su un VPS con Docker

Nella configurazione seguente, FreshRSS viene eseguito dietro Caddy. Caddy riceve le richieste esterne e ottiene automaticamente un certificato TLS.

Servono un VPS Linux, Docker installato con il comando docker compose, un sottodominio con un record A puntato all’indirizzo IP del server e le porte 80 e 443 aperte.

Passaggio 1. Crea una directory

sudo mkdir -p /opt/freshrss
sudo chown "$USER":"$USER" /opt/freshrss
cd /opt/freshrss

Passaggio 2. Crea compose.yaml

services:
  freshrss:
    image: freshrss/freshrss:latest
    container_name: freshrss
    restart: unless-stopped
    logging:
      options:
        max-size: 10m
    environment:
      TZ: Etc/UTC
      CRON_MIN: '3,33'
      FRESHRSS_ENV: production
      TRUSTED_PROXY: 172.16.0.0/12
    volumes:
      - freshrss_data:/var/www/FreshRSS/data
      - freshrss_extensions:/var/www/FreshRSS/extensions

  caddy:
    image: caddy:2
    container_name: freshrss-caddy
    restart: unless-stopped
    depends_on:
      - freshrss
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy_data:/data
      - caddy_config:/config

volumes:
  freshrss_data:
  freshrss_extensions:
  caddy_data:
  caddy_config:

CRON_MIN: '3,33' avvia il controllo dei feed al 3° e al 33° minuto di ogni ora. FreshRSS non aggiorna un singolo feed più spesso di circa una volta ogni 20 minuti, quindi in genere non è necessario eseguire l’attività con maggiore frequenza.

Passaggio 3. Crea Caddyfile

rss.example.com {
    reverse_proxy freshrss:80
}

Sostituisci il dominio con il tuo. Quando il record DNS sarà propagato e le porte saranno accessibili, Caddy otterrà e rinnoverà automaticamente il certificato.

Passaggio 4. Avvia FreshRSS

docker compose up -d
docker compose ps

Puoi controllare i log con il comando seguente:

docker compose logs -f --tail=100

Apri https://rss.example.com. La procedura guidata verificherà l’ambiente, proporrà di scegliere un database e consentirà di creare il primo utente. Per un server personale, SQLite è la scelta più semplice perché non richiede un container di database separato.

Configurazione iniziale

FreshRSS riesce spesso a individuare un feed RSS o Atom partendo dal normale indirizzo del sito. Se il rilevamento automatico non funziona, inserisci l’URL diretto del feed. Le iscrizioni da Feedly, Inoreader e altri lettori possono essere trasferite comodamente tramite OPML.

Organizza subito le fonti in categorie, per esempio “indispensabile”, “lavoro”, “sicurezza”, “articoli lunghi” e “lettura secondaria”. I siti di notizie che pubblicano molto frequentemente non dovrebbero spostare fuori dal feed principale gli aggiornamenti realmente importanti.

Per collegare un’applicazione, attiva l’API nelle impostazioni di autenticazione e imposta nel profilo una password API separata. L’indirizzo della Google Reader API ha questo formato:

https://rss.example.com/api/greader.php

È preferibile non utilizzare la stessa password per l’account principale e per l’API.

Come non essere sommersi dagli articoli non letti

FreshRSS diventa più utile dopo una breve configurazione:

  • lascia nel feed principale solo le fonti importanti;
  • usa i filtri per contrassegnare automaticamente come lette le sezioni non necessarie;
  • salva query di ricerca relative a prodotti, autori e argomenti;
  • controlla periodicamente le statistiche ed elimina le fonti che generano soltanto rumore.

Le estensioni possono aggiungere la stima del tempo di lettura, l’evidenziazione delle parole, il proxy delle immagini, l’integrazione di YouTube, notifiche webhook e la classificazione degli articoli tramite un’API LLM compatibile. Installa componenti aggiuntivi di terze parti soltanto da fonti affidabili.

Aggiornamenti, sicurezza e backup

Per aggiornare i container, esegui:

cd /opt/freshrss
docker compose pull
docker compose up -d

Crea un backup prima di un aggiornamento importante. Il volume freshrss_data contiene le impostazioni degli utenti e, quando si utilizza SQLite, il database degli articoli. Salva anche freshrss_extensions se utilizzi componenti aggiuntivi. PostgreSQL, MariaDB e MySQL richiedono un dump separato del database.

Misure minime di sicurezza:

  • usa HTTPS;
  • disattiva la registrazione aperta dopo aver creato gli account;
  • non abilitare l’accesso anonimo se non è necessario;
  • usa una password API separata;
  • aggiorna regolarmente FreshRSS e le estensioni;
  • conserva un backup al di fuori del VPS.

Un’esportazione OPML non sostituisce un backup completo, ma permette di ripristinare rapidamente l’elenco delle iscrizioni in qualsiasi lettore RSS compatibile.

FreshRSS su un VPS di tropic.host

FreshRSS è adatto come primo servizio self-hosted: richiede poche risorse, funziona in Docker e offre un’utilità evidente subito dopo l’importazione delle iscrizioni. Un VPS pubblico garantisce l’aggiornamento dei feed 24 ore su 24, l’accesso dal telefono e il corretto funzionamento di WebSub.

Per un’installazione personale è generalmente sufficiente una piccola configurazione Linux. Su tropic.host puoi assegnare a FreshRSS un sottodominio dedicato, iniziare con un VPS di base e mantenere il servizio indipendente dal computer di casa. Nella scelta del piano, stabilità, spazio per l’archivio e backup sono più importanti di una grande riserva di potenza di calcolo.

Conclusione

FreshRSS trasforma decine di siti in un feed personale gestibile e privo di ordinamento algoritmico. Supporta client mobili, filtri, query salvate, più utenti, WebSub ed estensioni, rimanendo abbastanza leggero per un piccolo VPS.

Per iniziare servono Docker, un dominio e SQLite. Dopo l’installazione, configura le categorie, gli aggiornamenti automatici, HTTPS e i backup. In questo modo FreshRSS mostrerà soltanto le fonti selezionate e lascerà all’utente il controllo della lettura.

FAQ

FreshRSS è gratuito?

Sì. FreshRSS è distribuito con licenza AGPL-3.0. È necessario pagare soltanto l’infrastruttura se l’applicazione viene eseguita su un VPS a noleggio.

È possibile usare FreshRSS senza un dominio?

Sì, pubblicando la porta del container. Per un utilizzo stabile è preferibile configurare un dominio e HTTPS: questo semplifica l’accesso sicuro, la sincronizzazione mobile e WebSub.

Quanta memoria RAM richiede FreshRSS?

Per un feed personale è ragionevole iniziare con 1 GB di RAM e SQLite. Un archivio ampio, più utenti o servizi aggiuntivi richiederanno più memoria.

È possibile aggiungere un sito senza RSS?

In alcuni casi sì. FreshRSS supporta il web scraping tramite XPath, ma le regole devono essere configurate manualmente. Se il layout del sito cambia, la fonte potrebbe richiedere una correzione.

Che cosa bisogna assolutamente includere nel backup?

Prima di tutto il volume freshrss_data: quando si utilizza SQLite, contiene il database degli articoli. Salva anche freshrss_extensions e crea dump di qualsiasi database esterno.