Début du projet

This commit is contained in:
TopScritch committed 2026-10-25 20:05:12 +01:00
commit e7d4e607f6
23 files changed
+4855

No files matched your search

+152
View File
@@ -0,0 +1,152 @@
# Veille Tech - Agrégateur d'actualités informatiques
Agrégateur simple et automatisé d'actualités liées à l'informatique, avec interface publique et administration.
## Fonctionnalités
- **Page publique** : Liste des articles publiés, tri par date (récent/ancien), filtrage par catégorie
- **Collecte automatique** : Récupération depuis des flux RSS toutes les X minutes (configurable)
- **Évitement des doublons** : Vérification par URL et par titre
- **Administration sécurisée** : Authentification par identifiants/mot de passe
- **Gestion des articles** : Valider, masquer, rejeter, publier, supprimer
- **Journal d'activité** : Traçabilité des actions
- **Gestion des sources** : Consultation des sources RSS configurées
- **Dockerisé** : Prêt à tourner dans un conteneur avec volume persistant
## Prérequis
- [Docker](https://www.docker.com/) et [Docker Compose](https://docs.docker.com/compose/) (recommandé)
- Ou [Node.js](https://nodejs.org/) v16+ et npm
## Installation
### Avec Docker (recommandé)
1. Cloner ou copier le projet
2. Copier le fichier d'exemple de configuration
```bash
cp .env.example .env
```
3. Éditer `.env` pour configurer vos identifiants et paramètres
```bash
nano .env # ou votre éditeur préféré
```
4. Lancer avec Docker Compose
```bash
docker-compose up -d
```
5. Accéder au site : http://localhost:3000
### En local (sans Docker)
1. Installer les dépendances
```bash
npm install
```
2. Configurer l'environnement
```bash
cp .env.example .env
```
3. Lancer le serveur
```bash
npm start
```
4. Accéder au site : http://localhost:3000
## Configuration
Éditez le fichier `.env` :
| Variable | Description | Défaut |
|----------|-------------|--------|
| `PORT` | Port du serveur | `3000` |
| `ADMIN_USERNAME` | Identifiant admin | `admin` |
| `ADMIN_PASSWORD` | Mot de passe admin | `changeme123` |
| `SESSION_SECRET` | Clé secrète pour les sessions | À changer en production |
| `COLLECT_INTERVAL` | Intervalle de collecte en minutes | `60` |
| `AUTO_PUBLISH` | Publier automatiquement (`true`/`false`) | `false` |
| `AI_ENABLED` | Activer la collecte IA (facultatif) | `false` |
## Utilisation
### Page publique
- Accédez à `http://localhost:3000`
- Filtrez par catégorie via le menu
- Triez par date (plus récent / plus ancien)
- Cliquez sur "Lire l'article original" pour aller sur la source
### Interface d'administration
- Accédez à `http://localhost:3000/admin`
- Connectez-vous avec vos identifiants (`.env`)
- **En attente** : Articles collectés, à valider
- **Valider et publier** : Peut modifier catégories et résumé avant publication
- **Publier / Masquer / Rejeter / Supprimer** : Actions sur les articles
- **Collecter maintenant** : Déclenche une collecte manuelle
- **Sources** : Liste des flux RSS configurés
- **Journal** : Historique des actions
### Collecteur
Le collecteur fonctionne automatiquement selon `COLLECT_INTERVAL`. Vous pouvez aussi le lancer manuellement :
```bash
npm run collect
```
## Sources
Les sources RSS sont configurées dans `config/sources.json`. Vous pouvez ajouter, supprimer ou désactiver des sources en éditant ce fichier.
## Structure du projet
```
.
├── app/ # Application web (Express, EJS)
│ ├── routes/ # Routes public/admin
│ ├── static/ # CSS, JS statiques
│ ├── templates/ # Vues EJS
│ ├── db.js # Connexion SQLite
│ └── server.js # Serveur principal
├── collector/ # Collecteur RSS
├── config/ # Configuration (sources.json)
├── data/ # Base de données SQLite (volume persistant)
├── migrations/ # Schéma BDD
├── Dockerfile
├── docker-compose.yml
└── README.md
```
## Sécurité
- Authentification obligatoire pour `/admin`
- Sessions sécurisées avec `express-session`
- Mots de passe non exposés dans le code
- Variables sensibles dans `.env` (non commité)
- Validation des URLs et données entrantes
- Protection CSRF basique via sessions
## Dépannage
**La collecte ne fonctionne pas**
- Vérifiez que les flux RSS sont accessibles
- Consultez les logs : `docker-compose logs -f` ou console
- Lancez manuellement : `npm run collect`
**Problème de connexion admin**
- Vérifiez `ADMIN_USERNAME` et `ADMIN_PASSWORD` dans `.env`
- Supprimez le cookie de session si nécessaire
**Base de données corrompue**
- Sauvegardez `data/articles.db`
- Supprimez-le et relancez l'application (sera recréée)
## Évolutions possibles
- Ajout de sources HTML scraping
- Intégration IA pour résumé/catégorisation (modèles gratuits)
- Système de tags avancé
- Recherche plein texte
- API REST
- Pagination
## Licence
Projet développé dans un cadre pédagogique.
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.