Architecture Globale

Cliquez sur un nœud pour voir les détails

15
Onglets
~30
Endpoints
42
Tables
67MB
Base SQLite
6
Services
🔒 Traefik (SSL) portal-kolifee.duckdns.org 🌐 Portal Server port 8792 — turf_saas/portal_server.py Systemd auto-restart 📊 Dashboard API port 8791 15 onglets, ~30 endpoints ⚡ Combined API port 8790 Predictions, Odds, Weather 🎯 LeadHunter port 8775 Génération leads 🗄️ turf.db SQLite 67MB — 42 tables ⏰ Crons 9 système + 4 Hermes (ZE 2/4) recommend → refresh → bilan → monitor

Dashboard — 15 Onglets

Cliquez sur un onglet pour voir les détails

Endpoints API

~30 endpoints sur dashboard_api.py (port 8791)

EndpointMéthodeSourceDescription

Base de Données

Cliquez sur une table pour voir les colonnes et descriptions

300K+
Lignes totales
42
Tables
67MB
Taille
TableLignesDescriptionColonnes
pmu_partants59,977Données complètes partants PMU19
pmu_rapports57,011Rapports de gains PMU4
ml_predictions_cache29,218Cache prédictions XGBoost11
odds_history20,974Historique cotes (snapshots)5
zeturf_cotes18,930Cotes ZEturf historiques4
selection_du_jour17,980Sélections ML quotidiennes11
race_scores12,917Scores par course0
zeturf_results6,075Résultats ZEturf4
pmu_courses5,266Informations courses9
prediction_metrics4,803Métriques performance6
paris3,663Historique paris7
predictions2,653Prédictions ML10
scoring1,367Scoring multi-critères17
entraineur_stats1,386Stats entraîneurs6
driver_stats1,274Stats drivers/jockeys6
pmu_reunions774Réunions PMU0
niche_keywords585Mots-clés niches POD0
selection_gains411Gains sélections4
ze24_recommendations53Recommandations ZE 2/417
bet_results26Résultats paris7
performance72Performance prédictions0
niche_categories39Catégories niches0
daily_stats2Stats quotidiennes6

📋 predictions

Prédictions ML par cheval et course (CanalTurf + XGBoost)

ColonneTypeDescription
idINTEGERIdentifiant unique
dateTEXTDate de la course (YYYY-MM-DD)
race_nameTEXTNom complet de la course
race_hippodromeTEXTNom de l'hippodrome
horse_numberINTEGERNuméro du cheval
horse_nameTEXTNom du cheval
oddsREALCote au moment de la prédiction
prediction_rankINTEGERRang (1=meilleur)
sourceTEXTSource: canalturf, scoring_v2, ml_xgboost
jockeyTEXTNom du jockey/driver

📋 results

Résultats d'arrivées officielles

ColonneTypeDescription
dateTEXTDate
race_nameTEXTCourse
positionINTEGERPosition (1=vainqueur)
horse_nameTEXTCheval
oddsREALCote

📋 scoring

Scoring multi-critères des chevaux (28 colonnes)

ColonneTypeDescription
scoreREALScore global (0-100)
score_coteREALScore basé sur les cotes
score_formeREALScore forme récente
score_victoireREALScore taux victoire
score_placeREALScore taux placement
score_tendanceREALScore tendance
score_avisREALScore avis entraîneur
coteREALCote du cheval
forme_recenteREALForme récente
tx_victoireREALTaux victoire (%)
tx_placeREALTaux placement (%)
avis_entraineurTEXTPOSITIF/NÉGATIF
musiqueTEXTDernières courses (ex: 1-3-2)
rang_scoringINTEGERRang dans le scoring
score_valeurREALScore valeur (favoris)
driver_tx_victoireREALTaux victoire driver
entraineur_tx_victoireREALTaux victoire entraîneur

📋 pmu_partants

Données complètes partants PMU (cotes, jockeys, stats carrière)

ColonneTypeDescription
num_pmuINTEGERNuméro PMU du cheval
nomTEXTNom du cheval
ageINTEGERÂge
sexeTEXTM/F
driverTEXTDriver/jockey
driver_changeINTEGER1=nouveau driver
entraineurTEXTEntraîneur
musiqueTEXTDernières performances
nombre_coursesINTEGERTotal courses carrière
nombre_victoiresINTEGERTotal victoires
gains_carriereINTEGERGains carrière (€)
cote_directREALCote simple gagnant
cote_referenceREALCote référence PMU
tendance_coteTEXTHausse/Baisse/Stable
favorisINTEGER1=cheval favori
statut_partantTEXTPARTANT/NON_PARTANT
tx_victoireREALTaux victoire (%)
tx_placeREALTaux placement (%)
forme_recenteREALScore forme

📋 pmu_courses

Informations courses PMU (discipline, distance, dotation)

ColonneTypeDescription
libelleTEXTNom complet de la course
heure_depart_strTEXTHeure de départ
distanceINTEGERDistance en mètres
disciplineTEXTPLAT/ATTELE/MONTE/HAIE/STEEPLECHASE
nb_declares_partantsINTEGERNombre partants
montant_prixINTEGERDotation totale (€)
montant_1erINTEGERGains 1er (€)
arrivee_definitiveINTEGER1=arrivée confirmée
ordre_arrivee_jsonTEXTArrivée JSON

📋 pmu_rapports

Rapports de gains PMU (dividendes par type de pari)

ColonneTypeDescription
type_pariTEXTSIMPLE_GAGNANT, SIMPLE_PLACE, etc.
combinaisonTEXTCombinaison gagnante
dividende_euroREALDividende en euros
nb_gagnantsREALNombre de gagnants

📋 odds_history

Historique cotes (snapshots horaires avant course)

ColonneTypeDescription
horse_numberINTEGERNuméro cheval
horse_nameTEXTNom cheval
oddsREALCote à l'instant
scraped_atTEXTTimestamp scraping
sourceTEXTpmu ou zeturf

📋 ml_predictions_cache

Cache prédictions ML XGBoost (recalculé 1x/jour)

ColonneTypeDescription
horse_nameTEXTNom cheval
horse_numberINTEGERNuméro
oddsREALCote
prob_top1REALProbabilité victoire (%)
prob_top3REALProbabilité top 3 (%)
ml_scoreREALScore ML (0-100)
recommendationTEXTtop1/top3/pass
is_value_betINTEGER1=value bet
disciplineTEXTPLAT/ATTELE...
risque_labelTEXTsafe/neutral/trap
risque_scoreINTEGERScore risque (0-100)

📋 ze24_recommendations

Recommandations ZE 2/4 (top 3 courses × 4 chevaux)

ColonneTypeDescription
rankINTEGERRang course (1=meilleure)
race_labelTEXTR1C5, R3C2...
hippodromeTEXTHippodrome
heureTEXTHeure départ
ze_estimeREALRapport ZE estimé (€)
risqueTEXTsafe/neutral/trap
horse_1_num/nom/cote/mlCheval 1 (favori)
horse_2_num/nom/cote/mlCheval 2
horse_3_num/nom/cote/mlCheval 3
horse_4_num/nom/cote/mlCheval 4
statusTEXTpending/active/done/skipped
arriveesTEXTTop 4 réel (JSON)
rapport_ze24REALRapport ZE réel (€)
nb_combos_gagnantsINTEGERCombos gagnants (0-6)
gain_reelREALGain réel (€)
roiREALROI (%)
cotes_historyTEXTHistorique cotes (JSON)

📋 paris

Historique de tous les paris placés

ColonneTypeDescription
type_pariTEXTSG/SP/Couple/ZE 2/4...
numero1/2/3INTEGERNuméros chevaux
coteREALCote du pari
miseREALMontant misé (€)
statutTEXTGAGNE/PERDU/EN_ATTENTE
gainREALGain réel (€)
source_recoTEXTSource recommandation

📋 selection_du_jour

Sélections ML quotidiennes avec résultats

ColonneTypeDescription
race_labelTEXTLabel course
horse_numberINTEGERNuméro cheval
selection_rankINTEGERRang sélection
oddsREALCote
ml_scoreREALScore ML
risque_labelTEXTsafe/neutral/trap
arriveeINTEGERPosition réelle
est_gagnantINTEGER1=gagnant
safe_hitINTEGER1=safe bien classé
trap_avoidedINTEGER1=trap évité
top4_foundINTEGER1=dans top 4

📋 selection_gains

Gains quotidiens des sélections ZE 2/4

ColonneTypeDescription
rapportREALRapport pari (€)
miseREALMise (€)
gain_reelREALGain (€)
nb_combos_gagnantsINTEGERCombos gagnants/6

📋 prediction_metrics

Métriques performance par course et source

ColonneTypeDescription
sourceTEXTcanalturf/scoring_v2/ml_xgboost
nb_gagnantsINTEGERPrédictions gagnantes
taux_gagnantREALTaux gagnant (%)
taux_placeREALTaux placement (%)
roi_sg_brutREALROI SG brut (%)
value_bet_scoreREALScore value bet

📋 zeturf_results

Résultats scrapés ZEturf (arrivées + rapports)

ColonneTypeDescription
arrivees_jsonTEXTArrivées JSON [{num,position,nom}]
cotes_jsonTEXTCotes pre-race JSON
rapports_jsonTEXTRapports ZE 2/4 JSON
scraping_tsTEXTTimestamp scraping

📋 zeturf_cotes

Cotes historiques ZEturf (snapshots)

ColonneTypeDescription
horse_numberINTEGERNuméro cheval
coteREALCote référence
cote_sgREALCote SG
tsTEXTTimestamp

📋 driver_stats

Stats drivers/jockeys (victoires, places, gains)

ColonneTypeDescription
driverTEXTNom driver
nb_coursesINTEGERCourses
nb_victoiresINTEGERVictoires
tx_victoireREALTaux victoire (%)
tx_placeREALTaux placement (%)
gains_moyenREALGains moyens (€)

📋 entraineur_stats

Stats entraîneurs (victoires, places, gains)

ColonneTypeDescription
entraineurTEXTNom entraîneur
nb_coursesINTEGERCourses
nb_victoiresINTEGERVictoires
tx_victoireREALTaux victoire (%)
tx_placeREALTaux placement (%)
gains_moyenREALGains moyens (€)

📋 daily_stats

Stats quotidiennes agrégées

ColonneTypeDescription
total_betsINTEGERTotal paris
bets_gagneINTEGERParis gagnés
precision_pctREALPrécision (%)
mise_totaleREALMise totale (€)
gain_totalREALGain total (€)
roi_pctREALROI (%)

📋 bet_results

Résultats détaillés des paris

ColonneTypeDescription
type_pariTEXTType de pari
horse_nameTEXTCheval
coteREALCote
miseREALMise (€)
resultatTEXTGAGNE/PERDU
gainREALGain (€)
model_sourceTEXTSource modèle

Pipelines de Données

Flux complet : de la source PMU/ZEturf au dashboard

🔄 Pipeline ZE 2/4 (principal)

📡 PMU API
Extraction partants
07:30
📄 daily_selections
JSON partants+jours
🎯 recommend_ze24
Sélection favoris
06:00, 10:00
💾 ze24_recommendations
Top 3 courses
🔄 refresh_odds
Cotes temps réel
*/15 min
📊 bilan_ze24
Résultats + calibration
22:00
📈 Dashboard
Affichage + email

🤖 Pipeline ML

📡 PMU API
Historique courses
🧠 XGBoost
Entraînement modèle
💾 ml_predictions_cache
29K prédictions cachées
📊 Dashboard ML
Onglet Prédictions

🏇 Pipeline Sélections

📡 PMU/ZEturf
Données brutes
🧠 ML Score
Scoring chevaux
💾 selection_du_jour
17K sélections
📊 Sélection Jour
Onglet dédié

Services & Ports

6 systemd + 7 process non-systemd

PortServiceTypeScriptRôle
8790turf-saas-apisystemdturf_saas/combined_api.pyAPI combinée
8791turf-saas-dashboardsystemdturf_saas/dashboard_api.pyDashboard API
8792turf-saas-portalsystemdturf_saas/portal_server.pyPortail principal
8793turf-saas-schedulersystemdarrière-planPlanificateur SaaS
8775turf-saas-leadhuntersystemdturf_saas/leadhunter_api.pyLeadHunter
8783token-brokersystemdturf_saas/token_broker_api.pyGestion tokens
8765combined_api (legacy)processturf_scraper/combined_api.pyAPI legacy
8770crm_apiprocessturf_scraper/crm_api.pyAPI CRM
8784consumption-trackerprocessturf_saas/consumption_api.pySuivi consommation
8795analyzer_apiprocessturf_scraper/analyzer_api.pyAPI analyse
8772skills_appprocessskills_app.pyApp skills

Crons & Planification

9 système + 4 Hermes

⏰ System Crontab

HoraireScriptRôle
0 6,10 * * *recommend_ze24.pyRecommandations ZE 2/4 (favoris)
0 20 * * *update_results_cron.pyRésultats PMU du jour
0 21 * * *fetch_pmu_results.shFetch résultats PMU
*/30 8-22hmonitor_ze24.pyMonitoring ZE 2/4
0 8 * * *tipster_generator.pyPublication tipster Telegram
0 8 * * *pod_niche_scout.pyVeille niches POD
0 7 * * *daily_ai_news.pyNews IA quotidiennes
0 9 * * *airbnb_scraper.pyScraper Airbnb colocation
*/5minwatchdog_services.shSanté services

🤖 Hermes Crons

JobHoraireScriptRôle
ze24-refresh-odds*/15 7-20hrefresh_ze24_odds.pyRefresh cotes temps réel
ze24-bilan-v20 22hbilan_ze24_v2.pyBilan + calibration
ze24-health-check*/30 8-22hAgent HermesSanté pipeline
tipster-daily0 8htipster_generator.pyPublication tipster