FreshRSS: seu próprio feed de notícias sem algoritmos
As redes sociais decidem quais publicações mostrar primeiro. Por isso, uma atualização importante de um projeto pode passar despercebida enquanto dezenas de recomendações aparecem no lugar dela. O FreshRSS funciona de outra forma: você escolhe as fontes, e os novos conteúdos surgem em um único feed cronológico.
O FreshRSS pode ser instalado no seu próprio servidor e usado como uma caixa de entrada unificada para blogs, notícias, atualizações de software, fóruns, podcasts e outras fontes com RSS ou Atom. Neste artigo, veremos os recursos do aplicativo, os requisitos do servidor e a instalação em uma VPS com Docker e HTTPS.
FreshRSS em cinco etapas
- Criar uma VPS Linux e apontar um subdomínio para ela, por exemplo
rss.example.com. - Instalar o Docker e o Docker Compose.
- Executar o FreshRSS junto com o Caddy para obter HTTPS automático.
- Abrir o subdomínio, escolher o SQLite e criar uma conta.
- Importar as assinaturas de um arquivo OPML ou adicionar os sites manualmente.
Depois disso, a VPS verificará as fontes automaticamente de acordo com o agendamento, mesmo quando o computador do usuário estiver desligado.
O que é o FreshRSS
O FreshRSS é um agregador gratuito e auto-hospedado de RSS e Atom. Auto-hospedado significa que o aplicativo e o banco de dados são executados em um servidor controlado por você, e não na infraestrutura de um serviço em nuvem.
Um feed RSS é um arquivo especial que um site atualiza quando publica um novo conteúdo. O FreshRSS busca esses arquivos regularmente nas fontes selecionadas e reúne as entradas em uma única interface. Artigos não lidos, favoritos e o histórico de leitura são sincronizados entre os dispositivos.
A ideia principal é simples: o usuário decide quem acompanhar e em qual ordem visualizar as publicações. O FreshRSS não classifica as entradas por engajamento nem insere conteúdo recomendado entre as assinaturas.
Recursos do FreshRSS
| Recurso | Para que serve |
|---|---|
| Categorias, status e favoritos | Separar fontes profissionais, técnicas e pessoais |
| Pesquisa, filtros e consultas salvas | Mostrar apenas publicações sobre o tema desejado |
| Importação e exportação de OPML | Transferir rapidamente uma lista de assinaturas |
| Google Reader API e Fever API | Conectar aplicativos compatíveis no celular e no computador |
| WebSub | Receber entradas logo após a publicação em fontes compatíveis |
| Vários usuários | Criar contas separadas para uma família ou equipe |
| Temas e extensões | Alterar a interface e adicionar recursos |
| XPath e JSON Feed | Assinar algumas fontes que não oferecem RSS ou Atom convencional |
Uma consulta salva pode se transformar em um feed temático separado, por exemplo, apenas com publicações sobre segurança ou atualizações de um produto específico. O resultado pode ser aberto dentro do FreshRSS ou publicado como HTML ou RSS; listas de feeds também podem ser disponibilizadas em OPML.
O WebSub permite que um site compatível avise diretamente o FreshRSS sobre uma nova entrada, sem esperar pela próxima verificação agendada. Para isso, a instância precisa estar acessível pela internet em um endereço público válido.
O FreshRSS é especialmente útil para desenvolvedores e administradores: blogs de projetos, lançamentos, relatórios de incidentes e publicações sobre segurança podem ser reunidos em um só feed. Para a leitura cotidiana, ele substitui dezenas de abas abertas e mantém o status exato de “lido” sincronizado em todos os dispositivos.
Quais são os requisitos do FreshRSS
O FreshRSS exige poucos recursos. Ele é compatível com SQLite, PostgreSQL, MariaDB e MySQL, enquanto uma instalação manual requer um servidor web e PHP 8.1 ou mais recente. A descrição oficial menciona até mesmo um teste executado em um Raspberry Pi 1 com 150 feeds e 22 mil artigos.
Configurações iniciais práticas:
| Cenário | CPU | RAM | Armazenamento | Banco de dados |
|---|---|---|---|---|
| Feed pessoal | 1 vCPU | 1 GB | SSD de 10–20 GB | SQLite |
| Família ou equipe pequena | 1–2 vCPU | 2 GB | SSD de 20–40 GB | SQLite ou banco de dados externo |
| Muitos usuários e um arquivo grande | A partir de 2 vCPU | A partir de 4 GB | SSD a partir de 40 GB | PostgreSQL ou MariaDB |
Esses valores são referências, não requisitos mínimos rígidos. O uso de disco depende do número de fontes, da frequência de publicação e do período de retenção do histórico. Uma VPS é mais prática do que um computador doméstico quando são necessárias atualizações contínuas, acesso externo, sincronização móvel e WebSub.
Como instalar o FreshRSS em uma VPS com Docker
Na configuração abaixo, o FreshRSS funciona atrás do Caddy. O Caddy recebe as solicitações externas e obtém automaticamente um certificado TLS.
Você precisará de uma VPS Linux, do Docker instalado com o comando docker compose, de um subdomínio com um registro A apontando para o endereço IP do servidor e das portas 80 e 443 abertas.
Etapa 1. Crie um diretório
sudo mkdir -p /opt/freshrss
sudo chown "$USER":"$USER" /opt/freshrss
cd /opt/freshrssEtapa 2. Crie o arquivo 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' inicia a verificação dos feeds aos 3 e 33 minutos de cada hora. O FreshRSS não atualiza um mesmo feed com uma frequência maior do que aproximadamente uma vez a cada 20 minutos, portanto normalmente não é necessário executar a tarefa com mais frequência.
Etapa 3. Crie o arquivo Caddyfile
rss.example.com {
reverse_proxy freshrss:80
}Substitua o domínio pelo seu. Assim que o registro DNS for propagado e as portas estiverem acessíveis, o Caddy obterá e renovará o certificado automaticamente.
Etapa 4. Inicie o FreshRSS
docker compose up -d
docker compose psVocê pode verificar os logs com o seguinte comando:
docker compose logs -f --tail=100Abra https://rss.example.com. O assistente de instalação verificará o ambiente, pedirá que você escolha um banco de dados e permitirá criar o primeiro usuário. Para um servidor pessoal, o SQLite é a opção mais simples, pois não exige um contêiner de banco de dados separado.
Configuração inicial
O FreshRSS muitas vezes consegue encontrar um feed RSS ou Atom a partir do endereço normal de um site. Se a detecção automática não funcionar, informe a URL direta do feed. As assinaturas do Feedly, Inoreader e de outros leitores podem ser transferidas facilmente por meio de OPML.
Organize as fontes em categorias desde o início, por exemplo “essencial”, “trabalho”, “segurança”, “artigos longos” e “leitura secundária”. Sites de notícias que publicam com muita frequência não devem empurrar atualizações realmente importantes para fora do feed principal.
Para conectar um aplicativo, ative a API nas configurações de autenticação e defina uma senha de API separada no perfil. O endereço da Google Reader API tem este formato:
https://rss.example.com/api/greader.phpÉ melhor não usar a mesma senha para a conta principal e para a API.
Como não se afogar em artigos não lidos
O FreshRSS se torna mais útil depois de uma pequena configuração:
- mantenha apenas as fontes importantes no feed principal;
- use filtros para marcar automaticamente seções desnecessárias como lidas;
- salve consultas de pesquisa sobre produtos, autores e temas;
- verifique as estatísticas periodicamente e remova fontes que só geram ruído.
As extensões podem adicionar estimativas de tempo de leitura, destaque de palavras, proxy de imagens, incorporação do YouTube, notificações por webhook e classificação de artigos por meio de uma API de LLM compatível. Instale complementos de terceiros apenas de fontes confiáveis.
Atualizações, segurança e backups
Para atualizar os contêineres, execute:
cd /opt/freshrss
docker compose pull
docker compose up -dFaça um backup antes de uma atualização importante. O volume freshrss_data contém as configurações dos usuários e, quando o SQLite é usado, o banco de dados de artigos. Salve também o freshrss_extensions se você utilizar complementos. PostgreSQL, MariaDB e MySQL exigem um dump separado do banco de dados.
Medidas mínimas de segurança:
- use HTTPS;
- desative o cadastro aberto depois de criar as contas;
- não habilite o acesso anônimo sem necessidade;
- use uma senha de API separada;
- atualize regularmente o FreshRSS e suas extensões;
- mantenha um backup fora da VPS.
Uma exportação OPML não substitui um backup completo, mas permite restaurar rapidamente a lista de assinaturas em qualquer leitor RSS compatível.
FreshRSS em uma VPS da tropic.host
O FreshRSS é uma boa opção como primeiro serviço auto-hospedado: exige poucos recursos, funciona em Docker e oferece uma utilidade clara logo após a importação das assinaturas. Uma VPS pública garante atualizações dos feeds 24 horas por dia, acesso pelo celular e o funcionamento correto do WebSub.
Uma configuração Linux pequena costuma ser suficiente para uma instalação pessoal. Na tropic.host, você pode atribuir um subdomínio separado ao FreshRSS, começar com uma VPS básica e manter o serviço independente do computador de casa. Ao escolher um plano, estabilidade, espaço para o arquivo e backups são mais importantes do que uma grande reserva de processamento.
Conclusão
O FreshRSS transforma dezenas de sites em um feed pessoal fácil de gerenciar e sem classificação algorítmica. Ele oferece suporte a clientes móveis, filtros, consultas salvas, vários usuários, WebSub e extensões, permanecendo leve o suficiente para uma VPS pequena.
Para começar, você precisa de Docker, um domínio e SQLite. Depois da instalação, configure categorias, atualizações automáticas, HTTPS e backups. Assim, o FreshRSS mostrará apenas as fontes escolhidas e manterá o controle da leitura nas mãos do usuário.
FAQ
O FreshRSS é gratuito?
Sim. O FreshRSS é distribuído sob a licença AGPL-3.0. Você só precisa pagar pela infraestrutura caso o aplicativo seja executado em uma VPS alugada.
É possível usar o FreshRSS sem um domínio?
Sim, publicando a porta do contêiner. Para uso permanente, é melhor configurar um domínio e HTTPS, pois isso simplifica o acesso seguro, a sincronização móvel e o WebSub.
De quanta memória RAM o FreshRSS precisa?
Para um feed pessoal, é razoável começar com 1 GB de RAM e SQLite. Um arquivo grande, vários usuários ou serviços adicionais exigirão mais memória.
É possível adicionar um site sem RSS?
Em alguns casos, sim. O FreshRSS oferece suporte a web scraping por meio de XPath, mas as regras precisam ser configuradas manualmente. Se o layout do site mudar, essa fonte poderá precisar de ajustes.
O que é obrigatório incluir no backup?
Em primeiro lugar, o volume freshrss_data: quando o SQLite é usado, ele contém o banco de dados de artigos. Salve também o freshrss_extensions e crie dumps de qualquer banco de dados externo.
