RSSDI-Web est un site statique multi‑pages qui présente le service RSSDI, relayant flux RSS, YouTube, Reddit et GitHub vers Discord. Il est généré localement avec Python et servi via Docker et nginx.
Visite guidée
Les écrans de RSSDI-Web, avec leurs zones numérotées et expliquées.
L'accueil
Le site de présentation de RSSDI, le service qui publie vos flux RSS, chaînes YouTube, subreddits et dépôts GitHub dans vos salons Discord.

- Le menu — Fonctionnalités, Bot Discord, Annuaire de flux, guide Démarrer, FAQ et Nouveautés.
- Ouvrir l'app — Accès direct à l'application RSSDI, pour gérer vos flux.
- Démarrer — Le guide pas à pas, ou la liste de tout ce que sait faire RSSDI.
- Le schéma — Le trajet d'un article : vos sources à gauche, RSSDI qui filtre, résume et traduit, puis vos salons Discord à droite.
L'annuaire de flux vérifiés
Plus de 5 000 flux contrôlés toutes les 12 heures : seuls ceux qui fonctionnent et publient encore sont listés.

- La recherche — Un site, un sujet ou une adresse, avec des filtres par catégorie, langue, fraîcheur et tri.
- Les types de sources — RSS, Reddit, YouTube, GitHub… un clic filtre la liste.
- Export OPML — Télécharge les flux affichés en un fichier OPML, à importer dans RSSDI ou un autre lecteur.
- Un flux — Son nom, sa catégorie, sa langue et son adresse.
- Copier ou ouvrir — Copier l'adresse du flux pour l'ajouter dans RSSDI, ou l'ouvrir pour vérifier son contenu.
Premiers pas
Le guide Démarrer : du code d'invitation au premier article publié dans Discord.

- Le code d'invitation — L'inscription est réservée aux invités : demandez un code par e-mail.
- Le compte — Création du compte sur la page de connexion de l'application, avec le code reçu.
- L'application — Facultatif : installer RSSDI comme une application sur ordinateur, Android ou iPhone. Les étapes suivantes expliquent comment inviter le bot et ajouter un premier flux.
Le bot Discord
Les 29 commandes slash du bot : chercher dans ses flux, voir les tendances, modérer son serveur.

- Les familles — Filtrez les commandes : flux, modération, communauté, détente.
- Les commandes — Chaque carte donne la commande à taper après « / » dans Discord et ce qu'elle fait.
Prérequis
- Docker et Docker Compose installés
- Python 3.8+ installé
- Accès à un terminal (Linux, macOS ou Windows avec WSL)
- Connexion internet pour télécharger les images Docker
Installation
Installation locale avec Docker
- Cloner le dépôt RSSDI-Web depuis le dépôt officiel
- Se placer dans le répertoire racine du projet
- Lancer la commande `docker compose up -d --build`
- Attendre que Docker télécharge les images et construise le conteneur nginx
- Vérifier que le conteneur est en cours d'exécution avec `docker ps`
Génération des pages statiques
- Installer les dépendances Python avec `pip install -r requirements.txt` si le fichier existe
- Exécuter `python build.py` pour générer les pages HTML à la racine et le fichier sitemap.xml
- Confirmer que les fichiers .html ont bien été créés dans le répertoire du projet
Premier lancement
- Ouvrir un navigateur web et accéder à http://127.0.0.1:3041
- Naviguer parmi les pages d’accueil, fonctionnalités, catalogue, etc.
- Vérifier que le menu et le pied de page s’affichent correctement
Configurer le catalogue RSSDI
Le catalogue contient les flux indexés par le service.
- Placer le fichier `app/data/feed_catalog.json` dans le répertoire `data/` du projet
- Renommer le fichier en `catalogue.json` si nécessaire
- Redémarrer le conteneur annuaire avec `docker restart rssdi-annuaire`
Mettre à jour le catalogue automatiquement
Le conteneur `rssdi-annuaire` rafraîchit le catalogue chaque semaine.
- Vérifier les logs du conteneur avec `docker logs -f rssdi-annuaire`
- Exécuter les tests unitaires avec `cd annuaire && python test_annuaire.py`
- Publier manuellement le nouveau catalogue si besoin avec `docker exec rssdi-annuaire python annuaire.py publier`
Personnaliser le contenu des pages
Les pages sont éditables dans le répertoire `src/`.
- Ouvrir le fichier `src/<page>.html` correspondant à la page à modifier
- Modifier le titre, la description ou le texte du corps
- Enregistrer les modifications et relancer `python build.py` pour les appliquer
Sécuriser l’accès via Nginx
Les en‑têtes de sécurité et la politique CSP sont définies dans la configuration Nginx.
- Ouvrir le fichier `nginx.conf` ou `headers.inc` dans le répertoire du projet
- Vérifier les directives `add_header` et `Content‑Security‑Policy`
- Redémarrer le service nginx avec `docker compose restart`
Accéder aux données du catalogue depuis le navigateur
Le catalogue est servi sous le chemin `/data/`.
- Naviguer vers http://127.0.0.1:3041/data/catalogue.json
- Inspecter le contenu JSON pour vérifier la présence des flux
- Utiliser la fonction de recherche du catalogue depuis la page Catalogue du site
Arrêter et nettoyer l’installation
Libérer les ressources Docker lorsqu’elles ne sont plus nécessaires.
- Arrêter les conteneurs avec `docker compose down`
- Supprimer les images locales avec `docker image prune -f`
- Supprimer le répertoire du projet si vous ne souhaitez plus le conserver
Astuces
- Utilisez `docker compose logs -f` pour suivre en temps réel les messages du serveur nginx.
- Conservez une copie du fichier `catalogue.json` avant chaque mise à jour manuelle.
- Si le site ne se charge pas, vérifiez que le port 3041 n’est pas déjà utilisé par une autre application.
Questions fréquentes
Le site ne s’affiche pas après le démarrage du conteneur.
Vérifiez que le conteneur nginx est bien en cours d’exécution (`docker ps`) et que le port 3041 n’est pas bloqué par un pare‑feu.
Comment ajouter un nouveau flux au catalogue.
Ajoutez l’URL du flux dans le fichier `app/data/feed_catalog.json`, regénérez le catalogue avec `python build.py` puis republiez avec le conteneur annuaire.
Le conteneur annuaire ne démarre pas.
Consultez les logs (`docker logs rssdi-annuaire`) pour identifier les erreurs de dépendances ou de permissions, puis corrigez le problème avant de relancer.