Files
wiki/Catalogue-Self-Hosted/apps/app-feedbin.md
T
2026-06-09 18:40:21 +02:00

143 lines
6.1 KiB
Markdown

---
title: Feedbin
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, feed-reader, rss, rails, ruby, self-hosted]
confidence: high
contested: false
sources:
- https://selfh.st/apps/?tag=Feed+Readers
- https://github.com/feedbin/feedbin
- https://feedbin.com/
---
# 📚 Feedbin
> Lecteur de flux RSS élégant écrit en Ruby on Rails — l'auto-hébergement est gratuit, la version SaaS est payante et finance le développement.
## 📋 Informations Générales
| Attribut | Valeur |
|----------|--------|
| **Nom** | Feedbin |
| **Slug** | app-feedbin |
| **Description** | Agrégateur de flux RSS/Atom écrit en Ruby on Rails, UI épurée, API REST bien documentée |
| **Site officiel** | https://feedbin.com/ |
| **Repository** | https://github.com/feedbin/feedbin |
| **Stars** | 2 890 ⭐ |
| **Licence** | MIT (code), données commerciales pour le SaaS |
| **Langage principal** | Ruby on Rails |
| **Catégorie** | Feed Reader |
| **Tags** | [catalogue, feed-reader, rss, rails, ruby, self-hosted] |
## 📝 Description
Feedbin est un lecteur de flux lancé en 2013 par Ben Ubois, qui a bâti un service SaaS payant (5 $/mois) en parallèle d'un dépôt GitHub public. Le code est en Ruby on Rails, s'appuie sur PostgreSQL, Sidekiq/Redis, Imageproxy pour le redimensionnement des images, et propose une architecture très classique de l'écosystème Rails : simple à comprendre pour qui connaît.
Fonctionnellement, Feedbin offre la lecture rapide par article, le mode view-in-original, l'archivage d'articles, l'API publique, l'export/import OPML, les raccourcis clavier façon Gmail, le partage public d'articles, et l'API pour les apps mobiles (Reeder, NetNewsWire, etc.). C'est l'un des lecteurs les plus appréciés pour la qualité de son UI et la fiabilité de sa collecte.
Cas d'usage typique : auto-hébergeur Rails confirmé qui veut l'UX Feedbin sans payer l'abonnement, et qui dispose d'un serveur capable de faire tourner Ruby (1-2 Go de RAM). Limites : pas de comptes multiples natifs par défaut (un seul utilisateur = un user), pas d'OAuth, installation plus exigeante que [[app-miniflux]] ou [[app-freshrss]] (dépendances Ruby + Node + ImageMagick). Les images distantes passent par un service `imageproxy` séparé.
## 🚀 Installation
### Via Docker (community)
```yaml
# docker-compose.yml
version: "3.8"
services:
feedbin:
image: feedbin/feedbin:latest
container_name: feedbin
restart: unless-stopped
ports:
- "3000:3000"
environment:
DATABASE_URL: postgres://feedbin:***@db/feedbin
REDIS_URL: redis://redis:6379/0
SECRET_KEY_BASE: ChangeM3_LONG_RANDOM_KEY_BASE
RAILS_ENV: production
volumes:
- ./data:/app/data
depends_on:
- db
- redis
- imageproxy
db:
image: postgres:16-alpine
container_name: feedbin-db
restart: unless-stopped
environment:
POSTGRES_DB: feedbin
POSTGRES_USER: feedbin
POSTGRES_PASSWORD: ChangeM3_FB
volumes:
- ./pgdata:/var/lib/postgresql/data
redis:
image: redis:7-alpine
container_name: feedbin-redis
restart: unless-stopped
imageproxy:
image: willnorris/imageproxy:latest
container_name: feedbin-imageproxy
restart: unless-stopped
ports:
- "8081:8080"
```
### Installation manuelle
Cloner le dépôt, installer Ruby 3.1+, Node 18+, ImageMagick, PostgreSQL 14+, Redis 7+, exécuter `bin/setup`, `bin/rails db:setup`, `bundle exec sidekiq`, et `bundle exec rails server`. Le fichier `.env` accepte les clés standards Rails. Préparer un service systemd pour `sidekiq` (worker de collecte de flux) et un cron pour les tâches planifiées (`Whenever`).
## ⚙️ Configuration
- **Premier utilisateur** : `bin/rails console` puis `User.create!(email: "...", password: "...")`.
- **Sidekiq** : nombre de workers à dimensionner selon le volume de flux (4-8 workers suffisent pour quelques milliers de flux).
- **Imageproxy** : service séparé pour proxifier les images des flux (URL publique : `https://proxy.example.com`).
- **OAuth apps mobiles** : générer une « app access token » dans le profil, à fournir à Reeder ou NetNewsWire.
- **Sauvegardes** : `pg_dump` + `/data` suffit, pas d'état persistant en dehors.
## 🔗 Alternatives
- [[app-freshrss]] — Concurrent PHP plus simple à installer, plus extensible, multi-utilisateurs.
- [[app-miniflux]] — Concurrent Go ultra-léger, sans Ruby ni Postgres lourds.
- [[app-newsblur]] — Concurrent Python avec ML, mais plus exigeant.
- [[app-commafeed]] — Fork Java/Angular de The Old Reader, UI Feedly-like.
- [[app-yarr]] — Go minimaliste, mono-utilisateur, sans écosystème d'API.
- [[app-nextcloud-news]] — Module Nextcloud, idéal si Nextcloud est déjà déployé.
- **Feedly** (propriétaire SaaS) — Référence du marché, API équivalente, cloud-only.
- **Inoreader** (propriétaire SaaS) — Concurrent SaaS avec règles et filtres avancés.
## 🔒 Sécurité
- HTTPS obligatoire via [[app-traefik]] ou [[app-caddy]] — Rails est bavard en mode dev, assurez-vous que `RAILS_ENV=production` est bien défini.
- Changer `SECRET_KEY_BASE` pour une valeur aléatoire de 64 caractères (`bin/rails secret`).
- PostgreSQL, Redis, Imageproxy sur réseau Docker interne uniquement.
- Mettre à jour régulièrement Rails et les gems — la surface d'attaque de Rails sur les anciennes versions est large.
- Activer les en-têtes de sécurité (HSTS, CSP) au niveau du reverse proxy.
## 📚 Ressources
- Site officiel : https://feedbin.com/
- Repository : https://github.com/feedbin/feedbin
- Documentation : https://github.com/feedbin/feedbin#readme
- API publique : https://github.com/feedbin/feedbin-api
- Apps mobiles : Reeder, NetNewsWire, FeedMe, etc.
## 🔗 Pages Liées
- [[cat-feed-reader]] (catégorie parente)
- [[app-freshrss]] — Concurrent PHP plus simple
- [[app-miniflux]] — Concurrent Go minimaliste
- [[app-newsblur]] — Concurrent Python avec ML
- [[app-commafeed]] — Fork de The Old Reader
- [[app-yarr]] — Lecteur Go minimaliste
- [[app-nextcloud-news]] — Module Nextcloud
- [[recettes-docker-compose]] — Templates Compose
- [[securisation-home-lab]] — Bonnes pratiques