Files
2026-06-09 18:40:21 +02:00

131 lines
6.0 KiB
Markdown

---
title: CommaFeed
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, feed-reader, rss, old-reader, java, angular, self-hosted]
confidence: high
contested: false
sources:
- https://selfh.st/apps/?tag=Feed+Readers
- https://github.com/Athou/commafeed
- https://www.commafeed.com/
---
# 🗞️ CommaFeed
> Fork moderne de The Old Reader — agrégateur de flux RSS/Atom en Java/Angular avec une UI proche de Feedly.
## 📋 Informations Générales
| Attribut | Valeur |
|----------|--------|
| **Nom** | CommaFeed |
| **Slug** | app-commafeed |
| **Description** | Fork open-source de The Old Reader, réécrit en Java 17 + Angular, UI moderne multi-utilisateurs |
| **Site officiel** | https://www.commafeed.com/ |
| **Repository** | https://github.com/Athou/commafeed |
| **Stars** | 3 980 ⭐ |
| **Licence** | Apache-2.0 |
| **Langage principal** | Java / Angular |
| **Catégorie** | Feed Reader |
| **Tags** | [catalogue, feed-reader, rss, old-reader, java, angular, self-hosted] |
## 📝 Description
CommaFeed est un fork maintenu par Athou (Aurélien Hervé) à partir du code de The Old Reader, l'ancêtre des lecteurs type Google Reader. Le projet a été largement réécrit pour passer à Java 17 côté backend, avec un frontend Angular moderne et un look très inspiré de Feedly. C'est l'un des rares lecteurs auto-hébergeables à offrir une expérience utilisateur aussi proche des services SaaS.
Fonctionnellement, CommaFeed supporte les flux RSS, Atom et JSON Feed, l'API Google Reader (compatibilité Reeder, NetNewsWire, FeedMe, etc.), le marquage lu/non-lu, les catégories, les marque-pages, la recherche full-text, l'export/import OPML, et un système d'authentification simple (login/mot de passe avec hash bcrypt). La base utilisée est H2 par défaut, mais PostgreSQL est recommandé en production.
Cas d'usage typique : utilisateur qui veut une UI Feedly-like sans dépendre du cloud, multi-utilisateurs, et prêt à fournir un peu de RAM à un backend Java (~512 Mo-1 Go). Limites : pas d'OAuth/SSO natif, pas d'extensions, projet mono-mainteneur (le rythme de release est irrégulier). À considérer comme une alternative sérieuse à [[app-freshrss]] pour qui préfère Java à PHP.
## 🚀 Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
version: "3.8"
services:
commafeed:
image: athou/commafeed:latest
container_name: commafeed
restart: unless-stopped
ports:
- "8082:8082"
environment:
JAVA_TOOL_OPTIONS: "-Xmx512m"
COMMAFEED_DATABASE_DRIVER: org.postgresql.Driver
COMMAFEED_DATABASE_URL: jdbc:postgresql://db/commafeed
COMMAFEED_DATABASE_USERNAME: commafeed
COMMAFEED_DATABASE_PASSWORD: ChangeM3_COMMA
COMMAFEED_USERS_CREATIONENABLED: "true"
volumes:
- ./data:/app/data
depends_on:
- db
db:
image: postgres:16-alpine
container_name: commafeed-db
restart: unless-stopped
environment:
POSTGRES_DB: commafeed
POSTGRES_USER: commafeed
POSTGRES_PASSWORD: ChangeM3_COMMA
volumes:
- ./pgdata:/var/lib/postgresql/data
```
### Installation manuelle
Télécharger le JAR `fat-jar` depuis la page Releases GitHub, exécuter avec `java -jar commafeed-X.Y.Z.jar` (Java 17+ requis). Un fichier `config.yml` peut être fourni en argument pour surcharger les variables d'environnement. Le `data/` contient la base H2 par défaut ; basculer en PostgreSQL nécessite de configurer les propriétés `COMMAFEED_DATABASE_*` avant le premier démarrage.
## ⚙️ Configuration
- **Premier utilisateur** : `COMMAFEED_USERS_CREATIONENABLED: "true"` permet l'auto-inscription du premier compte, à désactiver après création de l'admin.
- **Base de données** : H2 par défaut (fichier local, parfait pour tester), PostgreSQL/MySQL pour la production.
- **API Google Reader** : activée par défaut, fournit un token dans Profil → API.
- **Throttling de scraping** : `COMMAFEED_HTTP_CLIENT_TIMEOUT` et `COMMAFEED_HTTP_THREADS` pour ajuster la collecte de flux.
- **Thème** : clair, sombre, sépia — bascule côté UI.
## 🔗 Alternatives
- [[app-freshrss]] — Concurrent PHP plus extensible, plus simple à installer, plus de tags/filtres.
- [[app-miniflux]] — Concurrent Go ultra-léger, mono-utilisateur « friendly », sans Java ni Angular.
- [[app-newsblur]] — Concurrent Python avec ML, mais plus lourd et plus complexe à auto-héberger.
- [[app-feedbin]] — Ruby on Rails, UX très propre mais projet payant en SaaS.
- [[app-yarr]] — Go minimaliste, mono-utilisateur, sans web UI aussi riche.
- [[app-nextcloud-news]] — Module Nextcloud, idéal en environnement Nextcloud existant.
- **Feedly** (propriétaire SaaS) — Source d'inspiration directe de l'UI CommaFeed.
- **Inoreader** (propriétaire SaaS) — Concurrent SaaS avec règles et filtres avancés.
## 🔒 Sécurité
- HTTPS obligatoire via [[app-traefik]] ou [[app-caddy]].
- Désactiver `COMMAFEED_USERS_CREATIONENABLED` après création du premier admin pour éviter l'inscription libre.
- Changer le mot de passe admin et utiliser un mot de passe fort (>= 16 caractères).
- Configurer `X-Forwarded-For` / `X-Real-IP` côté reverse proxy pour que les logs IP soient corrects.
- Surveiller les mises à jour Java et la couche Hibernate/JPA — la stack Java historique a souvent des CVE.
## 📚 Ressources
- Site officiel : https://www.commafeed.com/
- Repository : https://github.com/Athou/commafeed
- Documentation : https://github.com/Athou/commafeed#readme
- Releases : https://github.com/Athou/commafeed/releases
- Démo publique : https://www.commafeed.com/demo (suspendu parfois)
## 🔗 Pages Liées
- [[cat-feed-reader]] (catégorie parente)
- [[app-freshrss]] — Concurrent PHP plus extensible
- [[app-miniflux]] — Concurrent Go minimaliste
- [[app-newsblur]] — Concurrent Python avec ML
- [[app-feedbin]] — Solution Ruby on Rails
- [[app-yarr]] — Lecteur Go minimaliste
- [[app-nextcloud-news]] — Module Nextcloud
- [[recettes-docker-compose]] — Templates Compose
- [[securisation-home-lab]] — Bonnes pratiques