Commit Graph
10 Commits
Author SHA1 Message Date
Claude 933cb2e66f feat: Improve search config + rename Dashboard + fix SearXNG
SearXNG:
- Fix tini not found error by calling entrypoint.sh directly
- Keep limiter.toml creation at container startup

UI Changes:
- Rename "Tableau de bord" to "Suivis produits" in navigation
- Move CSS selector configuration from item modal to Settings page
- Add price_selector field to search sites configuration
- Display CSS selector badge on site cards

Backend:
- Add price_selector column to SearchSite model and schemas
- Update init.sql with search_sites table and migration for existing DBs
2025-11-22 13:24:28 +00:00
Claude e8ccd69bff fix: SearXNG startup + update README logo and favicon
- Fix SearXNG limiter.toml directory issue by creating file at container
  startup via entrypoint command (rm -rf then recreate)
- Update README to use logo.svg instead of logo.png
- Redesign favicon.svg to match main logo style:
  - Same gold-to-green gradient background
  - Line gradient from white to green
  - Glow effect on chart line
  - Decorative dots at data points
  - Green arrow indicator
2025-11-22 13:15:31 +00:00
Claude 60546f7a6c fix: Complete SearXNG bot detection bypass configuration
- Add real_ip config to settings.yml to trust proxy headers
- Update limiter.toml to allow all IPs (0.0.0.0/0 and ::/0)
- Re-add limiter.toml volume mount (file now exists)
- Add localhost range (127.0.0.0/8) to pass_ip list
2025-11-22 13:10:28 +00:00
Claude da1d88d432 fix: Remove limiter.toml volume mount to fix SearXNG container crash
Docker was creating /etc/searxng/limiter.toml as a directory instead of
mounting the file, causing IsADirectoryError. The limiter is already
disabled in settings.yml, so the separate toml file is not needed.
2025-11-22 13:04:42 +00:00
Claude 8db4f0ef40 fix: Mount SearXNG config files individually instead of directory 2025-11-22 12:10:02 +00:00
Claude 1116c3a648 feat: Add multi-site product search system with SearXNG integration
This commit adds a comprehensive product search feature that allows users
to search for products across multiple configured e-commerce sites.

Backend changes:
- Add SearXNG service to docker-compose for meta-search capability
- Add SearchSite model and Alembic migration with default sites
- Create searxng_service.py for search queries across sites
- Create light_scraper_service.py for fast HTTP-based extraction
- Create search_service.py orchestrator combining SearXNG + HTTP + Browserless
- Add API endpoints for search (/api/search) with SSE streaming
- Add CRUD endpoints for search sites (/api/search-sites)

Frontend changes:
- Add new /search page with real-time results display
- Create SearchResultCard component for product display
- Add Progress, Checkbox, and Badge UI components
- Update Settings page with search sites management section
- Add navigation link to search page
- Create new modern SVG logo with price-flow gradient design
- Update favicon to SVG format

The search system uses a hybrid approach:
1. SearXNG finds product URLs across configured sites
2. Light HTTP scraper attempts fast extraction
3. Falls back to Browserless for JavaScript-heavy sites
4. Results stream progressively via SSE
2025-11-22 11:03:48 +00:00
Claude 89f422744a fix: Stabilité Browserless v2 + headers anti-détection
Browserless (docker-compose.yml):
- Image mise à jour: ghcr.io/browserless/chromium:latest
- Timeout augmenté à 300s (5 minutes)
- shm_size: 2gb (critique pour Chrome)
- Mémoire: 3G limit, 1G reservation
- Nouvelles variables: HEALTH, CHROME_REFRESH_TIME

Scraper Service:
- Ajout headers HTTP réalistes (Accept-Language, Accept)
- Locale fr-FR et timezone Europe/Paris
- Timeout connexion explicite (60s)
- Fermeture propre des ressources (page, context, browser)
- Meilleure gestion des erreurs de fermeture
2025-11-22 10:05:36 +00:00
Claude b5cd1465ce fix: Amélioration scraping Amazon + stabilité Browserless
Browserless (docker-compose.yml):
- CONNECTION_TIMEOUT augmenté à 180s
- MAX_CONCURRENT_SESSIONS réduit à 3
- Limite mémoire 2G ajoutée
- Args Chrome optimisés (disable-dev-shm-usage, no-sandbox)

Scraper Service:
- Ajout simplification automatique des URLs Amazon (extraction ASIN)
- Suppression des paramètres de tracking (utm_, ref, etc.)
- Système de retries (2 tentatives avec backoff)
- Screenshot pris AVANT extraction texte (évite perte si timeout)
- Popups Amazon ajoutés (#sp-cc-accept, etc.)
- Meilleure gestion des erreurs avec logs détaillés
2025-11-22 09:55:49 +00:00
Claude 90e7b3688c fix: Port applicatif 8555 + README complet en français
- Changement du port de l'application de 8000 à 8555
- Mise à jour Dockerfile, docker-compose.yml et docker-entrypoint.sh
- README.md entièrement réécrit en français avec:
  - Instructions d'installation complètes
  - Documentation de l'architecture Docker
  - Guide de configuration OpenRouter
  - Section développement et personnalisation
2025-11-22 09:29:51 +00:00
Claude d6c39252f2 feat: Rebranding PriceFlow + OpenRouter + i18n FR + Docker
Modifications majeures:

1. Rebranding: Pricecious → PriceFlow
   - Mise à jour du titre, logo et noms de projet

2. Intégration OpenRouter
   - Ajout comme provider IA avec filtres (chat, vision, code, reasoning, free)
   - Récupération dynamique des modèles et coûts
   - Service et router dédiés (/api/openrouter/models)

3. Internationalisation (i18n)
   - Installation i18next + react-i18next
   - Application entièrement traduite en français
   - Fichier de traduction: fr.json

4. Configuration Docker
   - docker-compose.yml avec réseau nginx_default (external)
   - PostgreSQL sur port 5488:5432
   - Browserless sur port 3012:3000
   - init.sql pour initialisation de la base de données
   - .env.example avec variables documentées

5. Favicon
   - Documentation ajoutée dans index.html pour faciliter le remplacement
2025-11-22 09:22:39 +00:00