11
Configuration
Antoine Van Elstraete edited this page 2026-09-08 20:02:11 +02:00

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_URL et PRONOTE_ICAL_URL sont 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-compatible réutilise OpenAISynthesisProvider avec un base_url personnalisé. AI_BASE_URL et AI_MODEL sont requis pour ce fournisseur. L'URL doit utiliser https sauf si AI_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 /v1 n'est effectuée. En cas de configuration invalide, la factory retourne None avec 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 .env n'est jamais versionné. Utilisez .env.example comme modèle.

Voir aussi : Sécurité pour la gestion des secrets, Déploiement pour la configuration en production.