MichaelandClaude Opus 4.8 3402e53954 sécurité : correctifs XSS, SSRF, CSWSH, rate-limit et durcissement
- XSS stocké (critique) : sanitisation bluemonday sur tous les endpoints
  d'articles (List, ListByFeed, Favorites, Search, Get), pas seulement Get
- SSRF (élevé) : nouveau utils/safehttp.go (ValidateExternalURL + client durci
  via Dialer.Control, bloque IP privées/loopback/link-local/metadata,
  anti-DNS-rebinding et limite de redirections) appliqué à l'extracteur et au parser
- WebSocket CSWSH (élevé) : politique same-origin + override WS_ALLOWED_ORIGINS
- rate-limiting (moyen) : token-bucket en mémoire sur /auth/*
- token de session retiré du corps JSON (json:"-"), livré uniquement par le
  cookie HttpOnly
- cookie Secure correct derrière un reverse-proxy (X-Forwarded-Proto +
  override COOKIE_SECURE)
- admin : interdiction de supprimer son propre compte
- en-têtes de sécurité (nosniff, X-Frame-Options, Referrer-Policy,
  Permissions-Policy)

Note : backend non compilé localement (pas de toolchain Go) ; à valider via Docker.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 13:21:43 +02:00

🌿 FlowReader

Le calme dans le chaos de l'information. Un agrégateur RSS minimaliste, intelligent et économe, conçu pour ceux qui veulent reprendre le contrôle de leur veille.

FlowReader Dashboard

Go Version React Version Docker License

✨ Pourquoi FlowReader ?

FlowReader n'est pas juste un autre lecteur RSS. C'est une expérience de lecture repensée pour l'efficacité et le plaisir. Fini le scroll infini anxiogène, place à la concentration.

🧘 Mode Focus

Une interface immersive inspirée des applications de rencontre pour trier vos flux à la vitesse de la pensée.

  • Swipe à droite : Article lu / archivé.
  • Swipe à gauche : Article gardé pour plus tard.
  • Double-clic : Lecture immédiate.

Mode Focus

🧠 Smart Digest (IA)

Ne perdez plus de temps sur les articles "clickbait".

  • FlowReader utilise l'IA (via OpenRouter) pour lire le contenu complet à votre place.
  • Il génère un résumé concis directement accessible depuis votre liste de lecture.
  • Identifiez en un coup d'œil si un article mérite votre temps.

Smart Digest

⚡ Performance & Sobriété

Conçu pour l'auto-hébergement respectueux des ressources.

  • Backend en Go : Ultra-rapide et compilé.
  • Frontend React 19 : Fluide et moderne.
  • < 150MB RAM : Tourne parfaitement sur un Raspberry Pi ou un NAS modeste.

🚀 Fonctionnalités Clés

  • PWA & Offline : Installez-le sur mobile comme une app native. Supporte la lecture hors-ligne.
  • Recherche Full-Text : Retrouvez n'importe quel article instantanément grâce à l'indexation PostgreSQL.
  • Design Organique : Thèmes "Organic Warmth" et "Deep Forest" (Mode Sombre) pour le confort des yeux.
  • Lecture Confortable : Mode lecteur distration-free intégré.
  • Agents IA (BMad) : Architecture conçue pour être maintenue et étendue par des agents IA.

📦 Installation

Option 1 : Docker Compose (Recommandé)

Le moyen le plus simple de démarrer.

# 1. Cloner le dépôt
git clone https://github.com/R0m1k3/FlowReader.git
cd FlowReader

# 2. Lancer la stack
docker-compose up -d

Accédez à http://localhost:8080.

Option 2 : Unraid

Un template dédié est fourni pour les utilisateurs d'Unraid.

  1. Copiez le fichier docker-compose.unraid.yaml sur votre serveur.

  2. Lancez le conteneur :

    docker-compose -f docker-compose.unraid.yaml up -d
    

    Note : Les données sont persistées dans /mnt/user/appdata/flowreader.

Configuration (Variables d'Environnement)

Variable Description Défaut
PORT Port du serveur 8080
DATABASE_URL Connexion PostgreSQL postgres://...
OPENROUTER_API_KEY Clé pour les résumés IA (Optionnel)

🛠️ Développement

Envie de mettre les mains dans le code ?

# Pré-requis : Go 1.22+, Node 20+, Docker

# 1. Lancer les services (DB)
make docker-up

# 2. Lancer le backend (avec reload)
make dev-backend

# 3. Lancer le frontend
make dev-frontend

🏗️ Architecture

graph TD
    Client[React Frontend] -->|API REST| Server[Go Backend]
    Server -->|SQL| DB[(PostgreSQL)]
    Server -->|Fetch| RSS[Flux RSS Externes]
    Server -->|Analyze| AI[OpenRouter API]

🤝 Contribuer

Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une Issue ou une Pull Request.

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

S
Description
No description provided
Readme
4.3 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 48.1%
Go 43.2%
CSS 4%
HTML 3.5%
Makefile 0.4%
Other 0.8%