Initial commit
This commit is contained in:
198
README.md
Normal file
198
README.md
Normal file
@@ -0,0 +1,198 @@
|
||||
# 🐺 Lycostorrent
|
||||
|
||||
**Version 1.0.0** | Interface de recherche de torrents multi-sources
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
---
|
||||
|
||||
## 📋 Description
|
||||
|
||||
Lycostorrent est une interface web unifiée pour rechercher des torrents sur plusieurs sources :
|
||||
- **Jackett** - Agrégateur d'indexers
|
||||
- **Prowlarr** - Gestionnaire d'indexers
|
||||
- **Flux RSS** - Sources personnalisées
|
||||
|
||||
L'application enrichit automatiquement les résultats avec les métadonnées de **TMDb** (films/séries) et **Last.fm** (musique).
|
||||
|
||||
---
|
||||
|
||||
## ✨ Fonctionnalités
|
||||
|
||||
### Recherche
|
||||
- 🔍 Recherche multi-trackers simultanée
|
||||
- 🏷️ Parsing intelligent des titres (qualité, codec, langue, HDR)
|
||||
- 🔄 Filtres dynamiques côté client
|
||||
- 📊 Tri par seeders, taille, date, nom
|
||||
- 📱 Interface responsive (mobile-friendly)
|
||||
|
||||
### Nouveautés
|
||||
- 🎬 Dernières sorties Films/Séries avec affiches TMDb
|
||||
- 🎵 Dernières sorties Musique avec pochettes Last.fm
|
||||
- 🎌 Catégorie Anime dédiée
|
||||
- 📦 Regroupement intelligent des versions
|
||||
|
||||
### Administration
|
||||
- ⚙️ Configuration des catégories par tracker
|
||||
- 🏷️ Gestion des tags de parsing
|
||||
- 📡 Gestion des flux RSS avec Flaresolverr
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Prérequis
|
||||
- Docker & Docker Compose
|
||||
- Jackett et/ou Prowlarr configurés
|
||||
- Clés API : TMDb, Last.fm (optionnel)
|
||||
|
||||
### Docker Compose
|
||||
|
||||
```yaml
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
lycostorrent:
|
||||
build: .
|
||||
container_name: lycostorrent
|
||||
ports:
|
||||
- "5555:5000"
|
||||
environment:
|
||||
# Sources (au moins une requise)
|
||||
- JACKETT_URL=http://jackett:9117
|
||||
- JACKETT_API_KEY=votre_api_key
|
||||
- PROWLARR_URL=http://prowlarr:9696
|
||||
- PROWLARR_API_KEY=votre_api_key
|
||||
|
||||
# Enrichissement (optionnel mais recommandé)
|
||||
- TMDB_API_KEY=votre_api_key
|
||||
- LASTFM_API_KEY=votre_api_key
|
||||
|
||||
# Flaresolverr pour RSS protégés (optionnel)
|
||||
- FLARESOLVERR_URL=http://flaresolverr:8191
|
||||
|
||||
# Logs
|
||||
- LOG_LEVEL=INFO
|
||||
volumes:
|
||||
- ./config:/app/config
|
||||
- ./logs:/app/logs
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
### Lancement
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
Accéder à : `http://votre-ip:5555`
|
||||
|
||||
---
|
||||
|
||||
## 📁 Structure
|
||||
|
||||
```
|
||||
lycostorrent/
|
||||
├── app/
|
||||
│ ├── main.py # Application Flask
|
||||
│ ├── config.py # Configuration
|
||||
│ ├── indexer_manager.py # Gestion Jackett/Prowlarr
|
||||
│ ├── jackett_api.py # API Jackett
|
||||
│ ├── prowlarr_api.py # API Prowlarr
|
||||
│ ├── tmdb_api.py # API TMDb
|
||||
│ ├── lastfm_api.py # API Last.fm
|
||||
│ ├── torrent_parser.py # Parsing des titres
|
||||
│ ├── rss_source.py # Gestion flux RSS
|
||||
│ ├── templates/ # Templates HTML
|
||||
│ └── static/ # CSS, JS
|
||||
├── config/ # Configuration persistante
|
||||
├── logs/ # Logs applicatifs
|
||||
├── Dockerfile
|
||||
├── docker-compose.yml
|
||||
├── requirements.txt
|
||||
├── VERSION
|
||||
├── CHANGELOG.md
|
||||
└── README.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Variables d'environnement
|
||||
|
||||
| Variable | Requis | Description |
|
||||
|----------|--------|-------------|
|
||||
| `JACKETT_URL` | * | URL de Jackett |
|
||||
| `JACKETT_API_KEY` | * | Clé API Jackett |
|
||||
| `PROWLARR_URL` | * | URL de Prowlarr |
|
||||
| `PROWLARR_API_KEY` | * | Clé API Prowlarr |
|
||||
| `TMDB_API_KEY` | Non | Clé API TMDb (enrichissement) |
|
||||
| `LASTFM_API_KEY` | Non | Clé API Last.fm (enrichissement) |
|
||||
| `FLARESOLVERR_URL` | Non | URL Flaresolverr (RSS protégés) |
|
||||
| `LOG_LEVEL` | Non | Niveau de log (INFO, DEBUG, WARNING) |
|
||||
|
||||
\* Au moins Jackett OU Prowlarr requis
|
||||
|
||||
### Obtenir les clés API
|
||||
|
||||
- **TMDb** : https://www.themoviedb.org/settings/api
|
||||
- **Last.fm** : https://www.last.fm/api/account/create
|
||||
|
||||
---
|
||||
|
||||
## 📱 Pages
|
||||
|
||||
| Route | Description |
|
||||
|-------|-------------|
|
||||
| `/` | Page de recherche |
|
||||
| `/latest` | Nouveautés (films, séries, anime, musique) |
|
||||
| `/admin/latest` | Config catégories par tracker |
|
||||
| `/admin/parsing` | Config tags de parsing |
|
||||
| `/admin/rss` | Config flux RSS |
|
||||
|
||||
---
|
||||
|
||||
## 🔒 Sécurité
|
||||
|
||||
- ✅ Headers HTTP de sécurité
|
||||
- ✅ Validation des entrées
|
||||
- ✅ Protection XSS
|
||||
- ✅ Protection SSRF
|
||||
- ✅ Masquage des secrets
|
||||
|
||||
Voir [SECURITY_AUDIT.md](SECURITY_AUDIT.md) pour les détails.
|
||||
|
||||
---
|
||||
|
||||
## 📝 Changelog
|
||||
|
||||
Voir [CHANGELOG.md](CHANGELOG.md) pour l'historique des versions.
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Dépannage
|
||||
|
||||
### Aucun tracker trouvé
|
||||
- Vérifier les URLs et clés API
|
||||
- Vérifier que Jackett/Prowlarr sont accessibles
|
||||
|
||||
### Pas d'enrichissement TMDb
|
||||
- Vérifier la clé API TMDb
|
||||
- Les logs montrent les erreurs de recherche
|
||||
|
||||
### RSS retourne 403
|
||||
- Activer Flaresolverr
|
||||
- Ajouter les cookies de session
|
||||
|
||||
---
|
||||
|
||||
## 📄 Licence
|
||||
|
||||
Projet personnel - Usage privé uniquement.
|
||||
|
||||
---
|
||||
|
||||
**Développé avec ❤️ et l'aide de Claude (Anthropic)**
|
||||
Reference in New Issue
Block a user