---
title: Faridoon
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, tracking, prix, shopping, django, python]
confidence: medium
contested: false
sources: [https://selfh.st/apps/, https://github.com/code-and-panel/faridoon]
---

# Faridoon 💰

> Un tracker de prix de produits en ligne, qui historise les variations tarifaires et notifie quand un produit atteint le prix voulu.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://faridoon.codeandpanel.com/ |
| **GitHub** | https://github.com/code-and-panel/faridoon |
| **License** | MIT |
| **Langage principal** | Python (Django) |
| **Étoiles GitHub** | ⭐2 |
| **Dernière MAJ** | 2025-09-14 |
| **Catégorie** | [[cat-tracking]] |

## Description

Faridoon est un **suivi de prix** minimaliste : on ajoute l'URL d'une fiche produit (Amazon, Cdiscount, Fnac, sites persos…), on indique le **prix cible**, et l'application **scrape** périodiquement la page pour historiser l'évolution. Quand le prix réel passe sous la cible, l'utilisateur est alerté par **notification web** ou par email.

Le projet est écrit en **Django** côté backend avec un frontend sobre. L'architecture repose sur des **tâches planifiées** (Celery + Redis) qui exécutent les scrapers — l'auteur fournit des sélecteurs CSS pour quelques sites populaires, mais on peut en ajouter manuellement.

⚠️ **Projet très jeune** (⭐2 seulement, **bus factor 1** — un seul mainteneur). Le code est fonctionnel mais le rythme de publication est lent, et la roadmap n'est pas très claire. À considérer comme un POC intéressant ou une base à forker, plutôt que comme une solution de production à long terme. Pour un usage critique, préférer des alternatives plus matures.

## Installation
### Via Docker (recommandé)
```yaml
services:
  faridoon:
    container_name: faridoon
    image: ghcr.io/code-and-panel/faridoon:latest
    restart: unless-stopped
    ports:
      - "8086:8086"
    environment:
      - DJANGO_SECRET_KEY=changez-moi
      - DATABASE_URL=sqlite:///data/faridoon.db
      - REDIS_URL=redis://redis:6379/0
      - SCRAPE_INTERVAL_HOURS=6
    volumes:
      - faridoon-data:/data
    depends_on:
      redis:
        condition: service_healthy

  redis:
    image: redis:7-alpine
    restart: unless-stopped

volumes:
  faridoon-data:
```

### Installation manuelle
1. Pré-requis : Python 3.11+, Redis 7+, SQLite (par défaut) ou PostgreSQL.
2. Cloner : `git clone https://github.com/code-and-panel/faridoon.git`
3. `cd faridoon && pip install -r requirements.txt`
4. `python manage.py migrate`
5. Lancer Celery beat + worker pour les scrapes périodiques.
6. Servir via Gunicorn derrière Nginx.

## Configuration

- Créer le **super-utilisateur** : `python manage.py createsuperuser`.
- Configurer les **scrapers** dans `scrapers/sites.yaml` (sélecteurs CSS par site).
- Définir l'**intervalle de scrape** via `SCRAPE_INTERVAL_HOURS` (par défaut 6h).
- Configurer le **SMTP** dans `.env` pour les alertes email.
- Activer/désactiver les **notifications web push** via VAPID keys.

## Alternatives
### Open source
- **PriceTrack** — équivalent plus mature (Ruby on Rails)
- **CamelCamelCamel** — mais Amazon-only et non self-hosted
- [[app-domainmod]] — focus gestion de domaines et d'expirations, pas de prix
### Propriétaires
- **Keepa** — tracker de prix Amazon de référence, freemium
- **CamelCamelCamel** — gratuit pour Amazon US/UK, pas self-hostable

## Sécurité

- **Changer `DJANGO_SECRET_KEY`** impérativement.
- **Scraping** : attention aux CGU des sites ciblés — Faridoon est conçu pour un usage personnel, pas pour de la revente de données.
- **Rate-limit** les requêtes sortantes pour ne pas se faire bannir par les sites marchands.
- En production : HTTPS obligatoire (reverse proxy Traefik/Caddy).
- **Sauvegardes** : la base SQLite + le dossier de configuration suffisent.

## Ressources
- Site officiel : https://faridoon.codeandpanel.com/
- Dépôt GitHub : https://github.com/code-and-panel/faridoon
- Issues : https://github.com/code-and-panel/faridoon/issues

## Pages Liées
- [[cat-tracking]]
- [[recettes-docker-compose]]
