# Meilisearch Configuration # Managed Meilisearch is the default Docker deployment. # Generate a secure random key: openssl rand -base64 32 MEILI_MASTER_KEY=your-secure-master-key-here # Set ONESEARCH_MANAGED_MEILI=false and MEILI_URL only if you use # docker-compose.legacy.yml or another external Meilisearch instance. ONESEARCH_MANAGED_MEILI=true # MEILI_URL=http://meilisearch:7700 # Image to run. Defaults to the latest published release. # Pin a version, or point it at your own build (docker build -t onesearch:dev .) # ONESEARCH_IMAGE=ghcr.io/demigodmode/onesearch:1.5.0 # Database Configuration # SQLite database will be stored at /app/data/onesearch.db inside the container DATABASE_URL=sqlite:////app/data/onesearch.db # Logging LOG_LEVEL=INFO # Optional: deployment access # CORS_ORIGINS= # Comma-separated origins; empty uses localhost defaults # ALLOWED_SOURCE_PATHS=/data # Comma-separated container paths allowed as source roots # Optional: runtime user/group for mounted volumes # Set these to a host user/group that can read your source mounts and write app volumes. # PUID=1000 # PGID=1000 # Optional: Max file sizes (in MB) # MAX_TEXT_FILE_SIZE_MB=10 # MAX_PDF_FILE_SIZE_MB=50 # MAX_OFFICE_FILE_SIZE_MB=50 # IMAGE_METADATA_MAX_SIZE_MB=100 # EPUB_EXTRACTION_MAX_SIZE_MB=100 # COMIC_EXTRACTION_MAX_SIZE_MB=100 # Optional: Rich media behavior defaults # Most of these can also be changed in Admin -> Settings. # UNSUPPORTED_FILE_POLICY=metadata_only # metadata_only or skip # MEDIA_METADATA_MODE=auto # auto or off # RAW_METADATA_MODE=auto # auto or off # INDEX_GPS_METADATA=false # GPS photo metadata is private, so default is off # SHOW_PREVIEWS=true # RAW_PREVIEW_ENABLED=true # MAX_PREVIEW_SIZE_MB=50 # 25, 50, or 100 # MEDIA_PROBE_MAX_SIZE_MB=0 # 0 means unlimited; timeout still applies # READABLE_PREVIEW_PAGE_CHARS=6000 # LONG_TEXT_PAGINATION_THRESHOLD_CHARS=20000 # Optional: Extraction timeouts (in seconds) # TEXT_EXTRACTION_TIMEOUT=5 # PDF_EXTRACTION_TIMEOUT=30 # OFFICE_EXTRACTION_TIMEOUT=30 # RAW_METADATA_TIMEOUT_SECONDS=10 # Optional: Indexing configuration # MEILISEARCH_BATCH_SIZE=100 # Number of documents to batch before sending to Meilisearch # INDEXING_PROGRESS_INTERVAL=100 # Log progress every N files during indexing # Optional: Meilisearch indexing limits # OneSearch works these out from the container's memory at startup, so leave them # unset unless Meilisearch keeps getting killed during indexing (lower the threads) # or you have memory to spare and want faster indexing (raise them). # Roughly 0.6 GB plus 0.3 GB per thread. # MEILI_MAX_INDEXING_THREADS=2 # MEILI_MAX_INDEXING_MEMORY=1Gb # Authentication # Generate a secure random key: openssl rand -base64 32 SESSION_SECRET=your-session-secret-key-here # SESSION_EXPIRE_HOURS=24 # How long tokens remain valid # AUTH_RATE_LIMIT=5 # Max login attempts per minute per IP