Configuration
Configuration via pydantic-settings depuis les variables d'environnement ou un fichier .env. Copiez .env.example vers .env pour démarrer. Les secrets utilisent SecretStr et sont masqués dans les logs.
Principe
Les paramètres sont chargés automatiquement depuis les variables d'environnement ou un fichier .env à la racine du projet. Le fichier .env n'est jamais versionné (couvert par .gitignore).
Variables Pronote
| Variable | Description | Valeur par défaut | Type |
|---|---|---|---|
PRONOTE_ICAL_URL |
URL du flux iCal Pronote (contient icalsecurise) |
obligatoire si source ical |
SecretStr |
PRONOTE_URL |
URL de la page Pronote pour pronotepy |
obligatoire si source pronotepy |
str |
PRONOTE_ACCOUNT_TYPE |
Type de compte Pronote | parent |
str |
PRONOTE_USERNAME |
Identifiant Pronote | obligatoire si source pronotepy |
str |
PRONOTE_PASSWORD |
Mot de passe Pronote | obligatoire si source pronotepy |
SecretStr |
PRONOTE_ENT |
Slug ENT (résolu vers pronotepy.ent) |
optionnel | str |
PRONOTE_AGENDA_SOURCE |
Source pour l'agenda | auto |
Literal["auto", "ical", "pronotepy"] |
PRONOTE_HOMEWORK_SOURCE |
Source pour les devoirs | auto |
Literal["auto", "ical", "pronotepy"] |
PRONOTE_MESSAGES_SOURCE |
Source pour les messages | pronotepy |
Literal["pronotepy"] |
Note
:
PRONOTE_URLetPRONOTE_ICAL_URLsont deux contrats distincts. L'un ne doit jamais être déduit de l'autre.
📖 Guide Pronote — Comment obtenir l'URL iCal, l'URL de connexion, configurer l'ENT, choisir les sources et des exemples complets.
Variables CalDAV
| Variable | Description | Valeur par défaut | Type |
|---|---|---|---|
CALDAV_URL |
URL du serveur CalDAV | obligatoire | SecretStr |
CALDAV_USERNAME |
Identifiant CalDAV | obligatoire | str |
CALDAV_PASSWORD |
Mot de passe CalDAV | obligatoire | SecretStr |
CALDAV_CALENDAR_PATH |
Chemin du calendrier sur le serveur | /pronote-sync/ |
str |
CALDAV_ALLOW_INSECURE_HTTP |
Autoriser HTTP non sécurisé (localhost uniquement) | false |
bool |
📖 Guide CalDAV — Comment trouver l'URL CalDAV sur Nextcloud, Radicale ou Baïkal, créer des identifiants et distinguer l'URL du serveur du chemin du calendrier.
Fenêtre de synchronisation
| Variable | Description | Valeur par défaut | Type |
|---|---|---|---|
SYNC_PAST_DAYS |
Nombre de jours dans le passé à synchroniser | 7 |
int |
SYNC_FUTURE_DAYS |
Nombre de jours dans le futur à synchroniser | 30 |
int |
Agenda théorique
| Variable | Description | Valeur par défaut | Type |
|---|---|---|---|
THEORETICAL_AGENDA_PATH |
Chemin vers le fichier JSON de l'agenda théorique | None |
str |
SCHOOL_HOLIDAYS_PATH |
Chemin vers le fichier JSON des vacances scolaires | None |
str |
THEORETICAL_WEEK_ANCHOR_DATE |
Date de référence pour la parité des semaines | None |
date |
THEORETICAL_WEEK_ANCHOR_TYPE |
Parité de la semaine de référence | None |
Literal["even", "odd"] |
📖 Guide Agenda Théorique — Comment créer les fichiers JSON de l'agenda théorique et des vacances scolaires, configurer la parité des semaines et comprendre la détection des changements.
Variables XMPP
| Variable | Description | Valeur par défaut | Type |
|---|---|---|---|
XMPP_ENABLED |
Activer la notification XMPP | false |
bool |
XMPP_JID |
Identifiant XMPP (ex: user@example.com) |
obligatoire si activé | str |
XMPP_PASSWORD |
Mot de passe XMPP | obligatoire si activé | SecretStr |
XMPP_HOST |
Hôte XMPP | "" |
str |
XMPP_PORT |
Port XMPP | 5222 |
int |
XMPP_TO |
Destinataire XMPP | obligatoire si activé | str |
XMPP_RESOURCE |
Ressource XMPP | pronote-sync |
str |
XMPP_USE_TLS |
Utiliser TLS pour la connexion | true |
bool |
XMPP_TIMEOUT |
Délai d'attente en secondes | 30 |
int |
📖 Guide XMPP — Comment comprendre le JID, créer un compte XMPP, configurer l'hôte, le port et TLS.
Variables IA
| Variable | Description | Valeur par défaut | Type |
|---|---|---|---|
AI_ENABLED |
Activer la synthèse IA | false |
bool |
AI_PROVIDER |
Fournisseur IA | openai |
Literal["openai", "litellm", "openai-compatible"] |
AI_BASE_URL |
URL de base de l'API IA | None |
str |
AI_API_KEY |
Clé API IA | None |
SecretStr |
AI_MODEL |
Modèle IA | None |
str |
AI_ALLOW_INSECURE_HTTP |
Autoriser HTTP non sécurisé pour openai-compatible |
false |
bool |
Note
: Le fournisseur
openai-compatibleréutiliseOpenAISynthesisProvideravec unbase_urlpersonnalisé.AI_BASE_URLetAI_MODELsont requis pour ce fournisseur. L'URL doit utiliserhttpssauf siAI_ALLOW_INSECURE_HTTP=true. Les identifiants dans l'URL sont rejetés. Les paramètres sensibles dans la query string sont rejetés. Aucune manipulation automatique de/v1n'est effectuée. En cas de configuration invalide, la factory retourneNoneavec un avertissement (mode dégradé).
📖 Guide IA — Comment obtenir une clé API pour OpenAI, OpenRouter, Ollama ou LiteLLM, et configurer le bon modèle.
Variables Blog
| Variable | Description | Valeur par défaut | Type |
|---|---|---|---|
BLOG_ENABLED |
Activer la synchronisation du blog | false |
bool |
BLOG_RSS_URL |
URL du flux RSS du blog | https://blogpeda.ac-bordeaux.fr/cjeliote/?feed=rss2 |
str |
📖 Guide Blog — Comment trouver l'URL du flux RSS d'un blog WordPress, SPIP ou Dotclear.
Divers
| Variable | Description | Valeur par défaut | Type |
|---|---|---|---|
DRY_RUN |
Mode simulation (pas d'écriture) | false |
bool |
LOG_LEVEL |
Niveau de log | INFO |
str |
Fichier .env
Pour créer votre fichier de configuration :
cp .env.example .env
# Éditer .env avec vos paramètres
Rappel : Le fichier
.envn'est jamais versionné. Utilisez.env.examplecomme modèle.
Voir aussi : Sécurité pour la gestion des secrets, Déploiement pour la configuration en production.