DATA_FILE_PARQUET_PATH=https://www.data.gouv.fr/fr/datasets/r/11cea8e8-df3e-4ed1-932b-781e2635e432 DUCKDB_PATH=./colibre.duckdb PORT=8050 DEVELOPMENT=True SOURCE_STATS_CSV_PATH="https://www.data.gouv.fr/api/1/datasets/r/8ded94de-3b80-4840-a5bb-7faad1c9c234" # Annonce dans l'en-tête du site ANNOUNCEMENTS= # Chemin vers le schéma de données DATA_SCHEMA_PATH=https://www.data.gouv.fr/api/1/datasets/r/9a4144c0-ee44-4dec-bee5-bbef38191d9a DATA_SCHEMA_CACHE=./schema.cache.json # Colonnes masquées par défaut DISPLAYED_COLUMNS="acheteur_nom, montant, objet, titulaire_nom, dateNotification, dureeMois, acheteur_departement_code" # Formulaire de contact LOGIN_PASSWORD="" # mot de passe du serveur # Matomo MATOMO_ID_SITE= MATOMO_BASE_URL= MATOMO_TOKEN= # API privée API_AUTH_DISABLED="false" MATOMO_URL=https://analytics.maudry.com/matomo.php MATOMO_SITE_ID=14 MATOMO_TRACKING_ENABLED=true # Comptes utilisateurs USERS_DB_PATH=./users.sqlite # Sert aussi à chiffrer les jetons MCP stockés (fonction « Copier le jeton » sur # /compte/mcp). Sa rotation déconnecte les sessions ET rend les jetons existants # non ré-affichables (les utilisateurs devront en régénérer). SECRET_KEY= # à générer : python -c "import secrets; print(secrets.token_hex(32))" APP_BASE_URL=http://localhost:8050 # Panneau admin interne (accès à /admin, protégé par cette adresse) ADMIN_EMAIL= # Connexion LinkedIn (OpenID Connect) — créer une app sur le LinkedIn Developer Portal, # activer "Sign In with LinkedIn using OpenID Connect", déclarer le redirect URI # {APP_BASE_URL}/auth/linkedin/callback LINKEDIN_CLIENT_ID= LINKEDIN_CLIENT_SECRET= # Brevo — envoi des emails transactionnels (vérification email, reset mot de passe) BREVO_API_KEY= BREVO_TEMPLATE_VERIFY_ID= BREVO_TEMPLATE_RESET_ID= MAIL_FROM=noreply@colibre.fr # expéditeur (doit être un expéditeur vérifié dans Brevo) MAIL_FROM_NAME=colibre # nom d'expéditeur # Active/désactive le mode sandbox Brevo (X-Sib-Sandbox: drop) indépendamment de DEVELOPMENT. # Si non défini, suit DEVELOPMENT (sandbox actif par défaut en dev/tests). MAIL_SUPPRESS_SEND= # Sauvegarde de users.sqlite vers un stockage S3-compatible S3_ENDPOINT_URL=https://s3.exemple.net S3_BUCKET=colibre-backups S3_BACKUP_PREFIX=backups S3_ACCESS_KEY_ID= S3_SECRET_ACCESS_KEY= # Clé Fernet : générer avec # python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" # À CONSERVER HORS DU SERVEUR : sans elle, les sauvegardes sont irrécupérables. BACKUP_ENCRYPTION_KEY= # Frisbii — gestion des abonnements (https://docs.frisbii.com) FRISBII_API_KEY= # clé PRIVÉE (priv_...), serveur uniquement FRISBII_API_BASE_URL=https://api.frisbii.com # base de l'API Frisbii (déf. https://api.reepay.com, à confirmer) FRISBII_PLAN_SIMPLE=abonnement-colibre # handle du plan "abonnement simple" (20 € HT/mois) FRISBII_PLAN_SOUTIEN=soutien-colibre # handle du plan "abonnement de soutien" (50 € HT/mois) FRISBII_WEBHOOK_SECRET= # secret de signature des webhooks # Accès gratuit temporaire TOUS_ABONNES=false # true = ouvre gratuitement les fonctionnalités d'abonné à tout compte # Active le serveur MCP (/_mcp) ET le connecteur d'abonné (scope B, #111). # À true, l'accès à /_mcp exige un jeton MCP (généré dans /compte/mcp) lié à un # abonnement actif. Laisser false tant que le connecteur n'est pas déployé. # Déploiement recommandé : activer d'abord sur test.colibre.fr (branche dev). DASH_MCP_ENABLED=false # Le connecteur MCP OAuth (Claude.ai, ChatGPT) requiert APP_BASE_URL en HTTPS # et que l'egress Anthropic 160.79.104.0/21 puisse joindre le serveur. # APP_BASE_URL sert d'issuer OAuth et à construire les URLs de découverte.