File size: 6,545 Bytes
7d5b986
fc30527
 
 
 
 
 
 
 
 
7d5b986
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fc30527
7d5b986
fc30527
 
7d5b986
 
fc30527
 
7d5b986
 
 
 
 
 
fc30527
7d5b986
 
 
 
 
 
 
 
 
 
 
 
 
 
fc30527
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# 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 : pas de CSRF, OCR cloud bloquΓ©s, rate limit par IP.
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`` autorise. Surcharge le dΓ©faut.
PICARONES_BROWSE_ROOTS=

# Plafonds applicatifs.
PICARONES_MAX_UPLOAD_MB=100
PICARONES_MAX_CONCURRENT_JOBS=2
PICARONES_RATE_LIMIT_PER_HOUR=5

# Surcharge la Content-Security-Policy si nΓ©cessaire.
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 (utilisΓ© par docker-compose.yml)
# ──────────────────────────────────────────────────────────────────
PICARONES_PORT=7860

# ──────────────────────────────────────────────────────────────────
# Persistance (Sprint A8) β€” chemin de la base SQLite des jobs.
# Override pour sortir du conteneur (volume montΓ©).
# ──────────────────────────────────────────────────────────────────
PICARONES_JOBS_DB=