-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathenv_example
More file actions
189 lines (148 loc) · 8.47 KB
/
Copy pathenv_example
File metadata and controls
189 lines (148 loc) · 8.47 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# Настройки API
API_PORT=7555
DEBUG=false
# ===========================================
# CORS И АУТЕНТИФИКАЦИЯ (новое в v1.11.0)
# ===========================================
# Список разрешённых Origin для CORS (через запятую). По умолчанию "*" (любые).
# В prod рекомендуется указать конкретные домены:
# ALLOWED_ORIGINS=https://app.example.com,https://admin.example.com
ALLOWED_ORIGINS=*
# Режим аутентификации: none (открытый API) | apikey (требуется заголовок X-API-Key)
AUTH_MODE=none
# Список API-ключей через запятую. Используется только при AUTH_MODE=apikey.
# Несколько ключей позволяют ротацию без даунтайма.
# ВАЖНО: замените значение на собственное секретное при включении apikey.
# Пример: AUTH_MODE=apikey и API_KEYS=<your-secret-key-here>
API_KEYS=
# Настройки OCR
OCR_LANGUAGES=rus+eng
# Настройки обработки
PROCESSING_TIMEOUT_SECONDS=300
# Настройки производительности
# Количество ядер CPU сервера (используется для автоматического расчета WORKERS)
# Для Docker: количество доступных ядер в контейнере
# Для bare metal: количество физических ядер сервера
CPU_CORES=4
# Количество worker-процессов uvicorn
# Для разработки: 1
# Для продакшена рекомендуется: 2 * CPU_CORES + 1 (автоматически вычисляется в prod)
WORKERS=1
# Настройки обработки файлов
# 20MB в байтах
MAX_FILE_SIZE=20971520
# Настройки архивов
# 20MB
MAX_ARCHIVE_SIZE=20971520
# 100MB
MAX_EXTRACTED_SIZE=104857600
MAX_ARCHIVE_NESTING=3
# ===========================================
# НАСТРОЙКИ ЗАЩИТЫ ОТ DoS АТАК
# ===========================================
# Включить/выключить ограничения ресурсов для дочерних процессов
ENABLE_RESOURCE_LIMITS=true
# Максимальное потребление памяти дочерними процессами (в байтах)
# 1GB - базовый лимит
MAX_SUBPROCESS_MEMORY=1073741824
# Максимальное потребление памяти для LibreOffice (в байтах)
# LibreOffice может потреблять больше памяти при конвертации сложных документов
# 1.5GB
MAX_LIBREOFFICE_MEMORY=1610612736
# Максимальное потребление памяти для Tesseract (в байтах)
# Tesseract обычно потребляет меньше памяти, но может быть требователен к большим изображениям
# 512MB
MAX_TESSERACT_MEMORY=536870912
# Максимальное разрешение для OCR изображений (в пикселях)
# Изображения больше этого размера будут отклонены
# 50MP (например, 7071x7071 или 10000x5243)
MAX_OCR_IMAGE_PIXELS=52428800
# ===========================================
# РЕКОМЕНДАЦИИ ПО НАСТРОЙКЕ
# ===========================================
# Для небольших систем (2-4GB RAM):
# MAX_SUBPROCESS_MEMORY=536870912 # 512MB
# MAX_LIBREOFFICE_MEMORY=1073741824 # 1GB
# MAX_TESSERACT_MEMORY=268435456 # 256MB
# Для средних систем (8-16GB RAM) - АКТИВНЫЕ НАСТРОЙКИ:
# 1GB
MAX_SUBPROCESS_MEMORY=1073741824
# 2GB
MAX_LIBREOFFICE_MEMORY=2147483648
# 512MB
MAX_TESSERACT_MEMORY=536870912
# Для крупных систем (32GB+ RAM):
# MAX_SUBPROCESS_MEMORY=2147483648 # 2GB
# MAX_LIBREOFFICE_MEMORY=4294967296 # 4GB
# MAX_TESSERACT_MEMORY=1073741824 # 1GB
# Для отключения ограничений (НЕ РЕКОМЕНДУЕТСЯ в production):
# ENABLE_RESOURCE_LIMITS=false
# Логирование
LOG_LEVEL=INFO
# ===========================================
# НАСТРОЙКИ ВЕБ-ЭКСТРАКТОРА (v1.10.0)
# ===========================================
# Минимальный размер изображений для OCR в пикселях (ширина * высота)
# 150x150 = 22500 пикселей
MIN_IMAGE_SIZE_FOR_OCR=22500
# Максимальное количество изображений для обработки на одной веб-странице
MAX_IMAGES_PER_PAGE=20
# Таймаут загрузки веб-страницы в секундах
WEB_PAGE_TIMEOUT=30
# Таймаут загрузки изображения в секундах
IMAGE_DOWNLOAD_TIMEOUT=15
# User-Agent по умолчанию для веб-запросов
DEFAULT_USER_AGENT="Text Extraction Bot 1.0"
# Включить выполнение JavaScript (требует дополнительных ресурсов)
# false - только статический HTML (по умолчанию)
# true - выполнение JavaScript для динамического контента
ENABLE_JAVASCRIPT=false
# Заблокированные IP-диапазоны для защиты от SSRF-атак
# Блокируются: localhost, частные сети (10.*, 192.168.*, 172.16-31.*), IPv6 localhost, metadata service
BLOCKED_IP_RANGES="127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,::1/128,fe80::/10"
# Заблокированные хосты (hostname-based блокировка)
# Блокируются: localhost, Docker хосты, IPv6 loopback имена
BLOCKED_HOSTNAMES="localhost,host.docker.internal,ip6-localhost,ip6-loopback"
# ===========================================
# НАСТРОЙКИ ВЕБ-ЭКСТРАКТОРА v1.10.1 (PLAYWRIGHT)
# ===========================================
# Включить поддержку base64 изображений в веб-страницах
# true - обрабатывать изображения в формате data:image/...;base64,... (по умолчанию)
# false - игнорировать base64 изображения
ENABLE_BASE64_IMAGES=true
# Задержка после загрузки JavaScript в секундах
# Время ожидания завершения JS-рендеринга после основной загрузки страницы
WEB_PAGE_DELAY=3
# Включить ожидание lazy loading изображений
# true - автоматический скролл страницы для активации ленивой загрузки (по умолчанию)
# false - не скроллить страницу
ENABLE_LAZY_LOADING_WAIT=true
# Отдельный таймаут для JS-рендеринга в секундах
# Время ожидания стабилизации сетевой активности при выполнении JavaScript
JS_RENDER_TIMEOUT=10
# Максимальное количество попыток скролла для lazy loading
# Защита от бесконечных страниц
MAX_SCROLL_ATTEMPTS=3
# Жёсткий верхний предел: пользовательские значения max_scroll_attempts
# из API будут clamp-иться этим значением (защита от DoS, новое в v1.11.0).
# ВНИМАНИЕ: каждая итерация скролла = +N секунд обработки. Увеличение этого
# значения = больший DoS-вектор. Не рекомендуется ставить больше 20.
MAX_SCROLL_ATTEMPTS_CAP=10
# ===========================================
# РЕКОМЕНДАЦИИ ПО НАСТРОЙКЕ PLAYWRIGHT
# ===========================================
# Для быстрой обработки без JS (минимальные ресурсы):
# ENABLE_JAVASCRIPT=false
# ENABLE_BASE64_IMAGES=true
# ENABLE_LAZY_LOADING_WAIT=false
# Для полной обработки с JavaScript (требует больше ресурсов):
ENABLE_JAVASCRIPT=true
ENABLE_BASE64_IMAGES=true
ENABLE_LAZY_LOADING_WAIT=true
WEB_PAGE_DELAY=5
JS_RENDER_TIMEOUT=15
MAX_SCROLL_ATTEMPTS=5
# Для обработки сложных SPA приложений:
# ENABLE_JAVASCRIPT=true
# WEB_PAGE_DELAY=10
# JS_RENDER_TIMEOUT=20