RideLog est une application self-hosted de suivi d'entretien de véhicules. Gardez un œil sur vos kilométrages, planifiez vos maintenances, suivez votre consommation de carburant et recevez des rappels automatiques — le tout hébergé chez vous, sans dépendance cloud.
Conçu pour les particuliers passionnés comme pour les petits parcs de véhicules, RideLog supporte voitures et motos avec des plans d'entretien intelligents adaptés à chaque motorisation.
- Gestion multi-véhicules — voitures et motos, avec photo, VIN et plaque d'immatriculation
- Plan d'entretien intelligent — intervalles adaptés par type, motorisation et marque, avec filtrage diesel/essence
- Anti-drift kilométrique — les échéances s'alignent sur des multiples propres, pas de décalage cumulatif
- Suivi carburant — historique des pleins, consommation L/100km, coût/km, projections annuelles
- Recherche stations-service — prix temps réel sur 39 202 communes françaises (données gouv.fr)
- Rappels automatiques — 3 paliers de notifications (à planifier, à prévoir, en retard)
- Webhooks — Discord
- Intégration Home Assistant — custom component avec capteurs par véhicule + cartes Lovelace
- Planning — calendrier mensuel des entretiens à venir
- Dashboard — statistiques agrégées du parc
- Export — récapitulatif en ZIP (CSV + factures)
- Multi-utilisateurs — inscription par invitation, rôles admin, compte de service HA
- Mode sombre — thème clair/sombre avec persistance
git clone https://github.com/The-ReNaGe/RideLog.git RideLog && cd RideLogAvant de lancer les containers, créez votre fichier de configuration :
cp .env.example .envOuvrez .env et renseignez au minimum :
JWT_SECRET— clé secrète JWT (openssl rand -hex 32)HA_INIT_KEY— clé pour Home Assistant (openssl rand -hex 16)
Puis lancez :
docker compose up -d --buildInterface : http://localhost:3100
Le premier utilisateur créé est automatiquement admin. La documentation de l'API est accessible depuis l'interface : Paramètres → Documentation API.
Toute la configuration se fait via le fichier .env (créé depuis .env.example).
Le fichier .env n'est jamais commité — il reste sur votre machine uniquement.
cp .env.example .env # à faire une seule fois à l'installation| Variable | Défaut | Description |
|---|---|---|
JWT_SECRET |
(à définir) | Secret pour les tokens JWT — obligatoire |
HA_INIT_KEY |
(à définir) | Clé pour initialiser le compte Home Assistant — obligatoire |
REGISTRATION_MODE |
invite |
Mode d'inscription : open, invite, closed |
RAPIDAPI_KEY |
— | Clé RapidAPI pour le décodage de plaque (optionnel) |
REMINDER_INTERVAL |
3600 |
Intervalle du scheduler de rappels en secondes |
REMINDER_ENABLED |
true |
Active/désactive les rappels automatiques |
LOG_LEVEL |
INFO |
Niveau de log (DEBUG, INFO, WARNING, ERROR) |
CORS_ORIGINS |
* |
Origines CORS autorisées |
Modifier la ligne ports du service frontend dans docker-compose.yml :
ports:
- "8080:80" # Interface accessible sur le port 8080| Composant | Technologie |
|---|---|
| Backend | Python 3.11, FastAPI, SQLAlchemy, SQLite |
| Frontend | React 18, Vite 5, Tailwind CSS 3 |
| Auth | JWT HS256 (7 jours), bcrypt, rate limiting progressif |
| Conteneurs | Docker Compose (backend + nginx) |
| Données | SQLite dans ./data/ridelog.db (volume persistant) |
| Entretien | Intervalle | Motorisation |
|---|---|---|
| Vidange + filtre à huile | 10 000 km / 12 mois | Toutes |
| Filtre à air | 20 000 km / 12 mois | Toutes |
| Filtre d'habitacle | 15 000 km / 12 mois | Toutes |
| Filtre à gasoil | 20 000 km / 24 mois | Diesel uniquement |
| Filtre à essence | 50 000 km / 48 mois | Essence uniquement |
| Bougies d'allumage | 30 000 km | Essence / hybride |
| Purge de frein | 24 mois | Toutes |
| Courroie de distribution | 80 000 km / 72 mois | Toutes |
| Liquide de refroidissement | 60 000 km / 48 mois | Toutes |
| Liquide de transmission | 80 000 km / 48 mois | Toutes |
| Contrôle technique | Réglementaire | Toutes |
Les intervalles de révision sont configurés par marque et cylindrée (ex: Triumph 660cc = 16 000 km, Honda 125cc = 4 000 km). L'utilisateur peut les surcharger à la création du véhicule.
- Révision périodique — basée sur le kilométrage (configurable)
- Entretien annuel — tous les 12 mois, contrôle simplifié si le km n'est pas atteint
- Soupapes — toutes les 2 révisions (automatique)
- Purge frein + embrayage — tous les 2 ans
- Liquide refroidissement — tous les 3 ans
- Révision fourche — tous les 3 ans
- Huile transmission — tous les 4 ans
- Contrôle technique — réglementaire français (2020-2021 : 2026, 2022+ : 5ème anniversaire)
Le scheduler vérifie les échéances toutes les heures et envoie des notifications via les webhooks configurés :
| Palier | Condition | Niveau |
|---|---|---|
| Tier 1 | ≤ 90 jours ou ≤ 1 500 km | À planifier |
| Tier 2 | ≤ 30 jours ou ≤ 500 km | À prévoir |
| Tier 3 | Échéance dépassée | En retard |
Webhooks supportés : Discord (embed riche).
- Créer le compte HA : Paramètres → Home Assistant → Créer le compte
- Copier le custom component :
cp -r ha-integration/custom_components/ridelog/ \ ~/.homeassistant/custom_components/ridelog/ - Redémarrer Home Assistant
- Ajouter l'intégration : Paramètres → Appareils et services → + → "RideLog"
- Saisir l'URL de l'API (ex:
http://192.168.1.x:8000)
| Capteur | Contenu |
|---|---|
sensor.ridelog_{nom}_summary |
Kilométrage, marque, modèle, année |
sensor.ridelog_{nom}_upcoming |
Nombre et détail des maintenances à venir |
sensor.ridelog_{nom}_overdue |
Nombre et détail des maintenances en retard |
Des cartes Mushroom prêtes à l'emploi sont générables depuis Paramètres → Home Assistant → Carte Lovelace.
Prérequis HACS : Mushroom Cards, card_mod.
cd RideLog
git pull origin main
docker compose up -d --buildLes migrations de base de données sont appliquées automatiquement au redémarrage du backend.
⚠️ Première mise à jour depuis une version sans.env: créez le fichier avant de rebuild, sinon le backend refusera de démarrer.cp .env.example .env # Remplir JWT_SECRET et HA_INIT_KEY dans .env
# Sauvegarde
cp ./data/ridelog.db ./backup_ridelog_$(date +%Y%m%d).db
# Restauration
cp ./backup_ridelog.db ./data/ridelog.db
docker compose restart backendLes données sont stockées dans ./data/ : base de données SQLite, photos et factures.
La documentation complète de l'API est accessible depuis l'interface : Paramètres → Documentation API.
| Méthode | Route | Description |
|---|---|---|
POST |
/api/auth/login |
Connexion → JWT |
POST |
/api/auth/register |
Inscription |
GET/POST |
/api/vehicles |
Liste / Créer véhicule |
GET/PUT/DELETE |
/api/vehicles/{id} |
Détail / Modifier / Supprimer |
GET/POST |
/api/vehicles/{id}/maintenances |
Historique entretien |
GET |
/api/vehicles/{id}/upcoming |
Maintenances à venir |
GET/POST |
/api/vehicles/{id}/fuel-logs |
Pleins carburant |
GET |
/api/vehicles/{id}/fuel-stats |
Statistiques conso |
GET |
/api/fuel-stations/search |
Recherche stations |
GET/POST/DELETE |
/api/settings/webhooks |
Gestion webhooks |
GET |
/api/vehicles/planning |
Planning global |
GET |
/api/dashboard/stats |
Stats dashboard |
RideLog/
├── docker-compose.yml # Orchestration des services
├── .env.example # Template de configuration (à copier en .env)
├── CLAUDE.md # Documentation technique détaillée
├── backend/
│ ├── main.py # Point d'entrée FastAPI
│ ├── models.py # Modèles SQLAlchemy + migrations
│ ├── maintenance_calculator.py # Logique métier entretien
│ ├── reminder_scheduler.py # Scheduler rappels automatiques
│ ├── security.py # JWT, bcrypt, rate limiting
│ ├── routes/ # Endpoints API
│ └── data/ # JSON config, communes CSV
├── frontend/
│ ├── src/
│ │ ├── App.jsx # Navigation state-based
│ │ ├── pages/ # Pages principales
│ │ ├── components/ # Composants UI
│ │ └── lib/api.js # Client Axios (~70 méthodes)
│ └── nginx.conf # Proxy + SPA fallback
└── ha-integration/
├── custom_components/ridelog/ # Custom component HA
└── templates/ # Templates cartes Lovelace
Pour la documentation technique complète (comment modifier chaque comportement), voir CLAUDE.md.
Les contributions sont les bienvenues ! Consulte CONTRIBUTING.md pour le guide complet.
# Fork → Clone → Branch → PR
git clone https://github.com/The-ReNaGe/RideLog.git
cd RideLog
git checkout -b feat/ma-feature
cp .env.example .env # configurer avant de lancer
docker compose up -d --build
# ... code, test, commit, push, ouvre une PRCe projet est sous licence AGPL-3.0.
RideLog v1.5.0


