Spaces:
Running
Running
| # Variables d'environnement supportΓ©es par Picarones. | |
| # | |
| # Copier en ``.env`` et remplir selon votre dΓ©ploiement : | |
| # | |
| # cp .env.example .env | |
| # editor .env | |
| # | |
| # ``docker-compose.yml`` lit ``.env`` automatiquement. Pour un appel | |
| # direct ``docker run``, ajouter ``--env-file .env``. | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Mode de dΓ©ploiement | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # | |
| # Picarones supporte deux modes de dΓ©ploiement, chacun avec un profil | |
| # de sΓ©curitΓ© distinct : | |
| # | |
| # βββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββ | |
| # β Mode public β HuggingFace Space, dΓ©mo en ligne, anonyme β | |
| # β β β ``PICARONES_PUBLIC_MODE=1`` β | |
| # β β β CSRF dΓ©sactivΓ© (anonyme) β | |
| # β β β cloud OCR/LLM bloquΓ©s β | |
| # β β β rate limit par IP β | |
| # βββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€ | |
| # β Mode institutionnel β DΓ©ploiement BnF, universitΓ©, archive β | |
| # β β β derriΓ¨re SSO (Shibboleth/CAS/OIDC) β | |
| # β β β ``PICARONES_CSRF_REQUIRED=1`` β | |
| # β β β ``PICARONES_CSRF_SECRET=<32 bytes hex>`` β | |
| # β β OBLIGATOIRE β l'app refuse de dΓ©marrer β | |
| # β β sans secret (Sprint S6.9). β | |
| # βββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββ | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Mode public (HuggingFace Space, dΓ©mo) | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Active le mode public. Valeurs acceptΓ©es : ``1``, ``true``, ``yes``. | |
| # En mode public : OCR cloud bloquΓ©s, browse roots confinΓ©s, | |
| # entity_extractor dΓ©sactivΓ© (sauf allowlist), rate limit par IP. | |
| # | |
| # NB : docker-compose.yml (chemin local) met ``PICARONES_PUBLIC_MODE=1`` | |
| # par dΓ©faut. Mettre ``0`` uniquement pour un dΓ©ploiement institutionnel | |
| # contrôlé (derrière SSO + reverse-proxy TLS). CSRF n'est PAS forcé par | |
| # le compose local (théÒtre sans secret stable) β voir | |
| # docker-compose.prod.yml qui exige PICARONES_CSRF_SECRET. | |
| PICARONES_PUBLIC_MODE= | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Mode institutionnel (production) | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Active la protection CSRF (double-submit cookie + HMAC). | |
| # OBLIGATOIRE en production, en complΓ©ment d'un SSO. | |
| PICARONES_CSRF_REQUIRED= | |
| # Secret HMAC pour signer les tokens CSRF. | |
| # OBLIGATOIRE si ``PICARONES_CSRF_REQUIRED=1`` β sans secret stable, | |
| # tous les tokens sont invalidΓ©s Γ chaque redΓ©marrage du process, | |
| # ce qui dΓ©grade gravement l'UX (toutes les sessions actives reΓ§oivent | |
| # 403 jusqu'Γ reload manuel). | |
| # | |
| # GΓ©nΓ©rer une fois et persister dans le secret manager institutionnel | |
| # (Vault / AWS Secrets Manager / Kubernetes Secret) : | |
| # | |
| # openssl rand -hex 32 | |
| # | |
| # Ne JAMAIS committer ce secret. Ne JAMAIS le mettre dans un Dockerfile | |
| # ni dans un docker-compose.yml versionnΓ©. | |
| PICARONES_CSRF_SECRET= | |
| # Liste de chemins (sΓ©parateur : ``:`` Unix / ``;`` Windows) que | |
| # ``/api/corpus/browse`` et ``/api/reports`` autorisent. Surcharge | |
| # le dΓ©faut. | |
| PICARONES_BROWSE_ROOTS= | |
| # Allowlist (sΓ©parateur virgule) des dotted paths d'extracteurs NER | |
| # autorisΓ©s via le champ ``entity_extractor`` du payload web. | |
| # Vide = le champ entity_extractor est REFUSΓ cΓ΄tΓ© web dans TOUS les | |
| # modes (import+appel dynamique = surface rΓ©seau trop puissante, | |
| # mΓͺme hors mode public/derriΓ¨re SSO). La CLI reste libre. | |
| # Renseigner explicitement pour autoriser des dotted paths prΓ©cis : | |
| # monpkg.ner:SpacyExtractor,autrepkg.ner:Fn | |
| PICARONES_ENTITY_EXTRACTOR_ALLOWLIST= | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # docker-compose β rΓ©seau & images | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Interface de bind du port hΓ΄te (docker-compose.yml). | |
| # DΓ©faut fail-closed : 127.0.0.1 (accessible uniquement en local). | |
| # Mettre ``0.0.0.0`` pour exposer délibérément (derrière TLS/proxy). | |
| PICARONES_BIND=127.0.0.1 | |
| # Image Ollama (docker-compose.yml, profil ``ollama``). | |
| # DΓ©faut : ollama/ollama:latest. Γpingler une version pour la | |
| # reproductibilitΓ© institutionnelle, ex : OLLAMA_IMAGE=ollama/ollama:0.3.14 | |
| OLLAMA_IMAGE= | |
| # Plafonds applicatifs. | |
| # MAX_UPLOAD_MB : plafond dur PAR fichier (streaming, rejet 413). | |
| # MAX_TOTAL_UPLOAD_MB : plafond dur CUMULΓ par requΓͺte d'upload. | |
| PICARONES_MAX_UPLOAD_MB=100 | |
| PICARONES_MAX_TOTAL_UPLOAD_MB=500 | |
| PICARONES_MAX_CONCURRENT_JOBS=2 | |
| PICARONES_RATE_LIMIT_PER_HOUR=5 | |
| # Attribut ``Secure`` des cookies (CSRF, langue). Vide = auto : | |
| # ``Secure`` UNIQUEMENT sur HuggingFace Space (HTTPS certain). | |
| # DΓ©couplΓ© de PUBLIC_MODE : Β« mutualisΓ© Β» n'implique pas Β« HTTPS Β» | |
| # (le compose local est public_mode=1 mais http://127.0.0.1). | |
| # Forcer ``1`` derrière un reverse-proxy TLS (fait par | |
| # docker-compose.prod.yml), ``0`` pour un dΓ©bogage explicite. | |
| # NB : CSRF requis + cookies non-Secure + dΓ©ploiement exposΓ© | |
| # (HF Space / mode public) β refus de dΓ©marrage (config incohΓ©rente). | |
| PICARONES_SECURE_COOKIES= | |
| # Surcharge la Content-Security-Policy si nΓ©cessaire. | |
| # La CSP par dΓ©faut conserve ``script-src/style-src 'unsafe-inline'`` | |
| # (dette connue : ~30 handlers onclick inline dans la SPA, migration | |
| # vers addEventListener planifiΓ©e). En institutionnel durci, fournir | |
| # ici une CSP sans unsafe-inline une fois le frontend migrΓ©. | |
| PICARONES_CSP= | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # ClΓ©s API LLM (optionnel β uniquement si vous utilisez un pipeline LLM) | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| OPENAI_API_KEY= | |
| ANTHROPIC_API_KEY= | |
| MISTRAL_API_KEY= | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # ClΓ©s API OCR cloud (optionnel) | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| GOOGLE_APPLICATION_CREDENTIALS= | |
| AZURE_DOC_INTEL_ENDPOINT= | |
| AZURE_DOC_INTEL_KEY= | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # RΓ©seau / port d'exposition. | |
| # | |
| # NB : variable utilisΓ©e UNIQUEMENT par ``docker-compose.yml`` pour | |
| # mapper le port hΓ΄te (cf. ligne ``${PICARONES_PORT:-7860}:7860``). | |
| # Le code Python ne la lit pas β pour changer le port serveur, | |
| # utiliser ``picarones serve --port <N>`` ou modifier le CMD du | |
| # Dockerfile. | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| PICARONES_PORT=7860 | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Persistance (Sprint A8) β chemin de la base SQLite des jobs. | |
| # Override pour sortir du conteneur (volume montΓ©). | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| PICARONES_JOBS_DB= | |