-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
143 lines (125 loc) · 6.33 KB
/
Copy path.env.example
File metadata and controls
143 lines (125 loc) · 6.33 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
# ---------------------------------------------------------------------------
# NextSearch configuration
# Copy to .env, adjust the values, then `docker compose up -d`.
# ---------------------------------------------------------------------------
# --- Public access -----------------------------------------------------------
# The only port published to the outside. Everything else stays on the internal network.
APP_PORT=3000
APP_URL=http://localhost:3000
APP_NAME=NextSearch
APP_ENV=production
APP_DEBUG=false
# Required. Generate with: docker compose run --rm app php artisan key:generate --show
# Among other things, encrypts the stored Nextcloud app passwords.
APP_KEY=
# --- Images (production) -----------------------------------------------------
# Locally the images are built from source. In production, point these at the
# published images and run `docker compose pull` instead of building — see
# docs/hosting.md. Pin a version rather than :latest for reproducible deploys.
# APP_IMAGE=mirkohaaser/nextsearch-app:latest
# WEB_IMAGE=mirkohaaser/nextsearch-web:latest
# --- Admin account -----------------------------------------------------------
# Created idempotently on startup. An existing user with this email is left untouched —
# change the password through the UI in that case.
ADMIN_NAME=Administrator
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=change-me-please
# --- Database ----------------------------------------------------------------
# Defaults to the bundled Postgres container. For an external database (e.g. RDS),
# set DB_HOST/DB_PORT and drop the `postgres` service — see docs/hosting.md.
# DB_HOST=your-postgres-host
# DB_PORT=5432
DB_DATABASE=nextsearch
DB_USERNAME=nextsearch
DB_PASSWORD=nextsearch
# --- Redis -------------------------------------------------------------------
# Queue, cache and session. Defaults to the bundled Redis container. For an
# external Redis, set REDIS_HOST/REDIS_PORT (and REDIS_PASSWORD if required).
# REDIS_HOST=your-redis-host
# REDIS_PORT=6379
# REDIS_PASSWORD=your-redis-password
# High availability via Redis Sentinel: point at the sentinels instead of a
# single host. A comma-separated list of sentinel host:port plus the master's
# service name; the client switches to predis automatically. REDIS_PASSWORD
# then authenticates against the data nodes.
# REDIS_SENTINELS=sentinel1:26379,sentinel2:26379,sentinel3:26379
# REDIS_SENTINEL_SERVICE=mymaster
# --- Search index ------------------------------------------------------------
# At least 16 bytes. Meilisearch is not published to the outside, but the key still
# guards against access from other containers on the same network.
MEILI_MASTER_KEY=change-me-at-least-16-bytes
# For an external Meilisearch, point this at it and drop the bundled service.
# MEILISEARCH_HOST=http://your-meili-host:7700
# --- Object storage ----------------------------------------------------------
# Default: the bundled MinIO. For real S3, point the AWS_* values at your provider,
# clear AWS_ENDPOINT, set AWS_USE_PATH_STYLE_ENDPOINT=false, and drop the `minio`
# service from docker-compose.yml.
MINIO_ROOT_USER=nextsearch
MINIO_ROOT_PASSWORD=nextsearch-secret
AWS_ACCESS_KEY_ID=nextsearch
AWS_SECRET_ACCESS_KEY=nextsearch-secret
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=nextsearch
# Optional: a subfolder inside the bucket to keep all NextSearch objects under
# (e.g. AWS_ROOT=nextsearch → previews/… becomes nextsearch/previews/…).
# Leave empty to use the bucket root.
AWS_ROOT=
AWS_ENDPOINT=http://minio:9000
AWS_USE_PATH_STYLE_ENDPOINT=true
# --- Indexing ----------------------------------------------------------------
# Access to Nextcloud is strictly read-only (GET/HEAD/PROPFIND/OPTIONS).
# See docs/permissions.md.
INDEX_DEFAULT_INTERVAL_MINUTES=15
INDEX_MAX_FILE_SIZE_MB=100
INDEX_EXTENSIONS=pdf,eml,msg,md,txt,rtf,odt,ods,odp,doc,docx,xls,xlsx,ppt,pptx,csv,html,htm,epub,png,jpg,jpeg,tif,tiff
# --- Tags --------------------------------------------------------------------
# How long the "Neu" tag stays on a newly indexed document. Only the starting
# point: an administrator adjusts it in the interface, and that is not
# overwritten on the next start. See docs/tags.md.
TAGS_NEW_DURATION_MINUTES=10080
# --- Public API --------------------------------------------------------------
# Requests per minute per API key on /api/v1. See docs/api.md.
API_RATE_LIMIT=120
# --- MCP server ---------------------------------------------------------------
# The Model Context Protocol endpoint under /api/mcp, so an assistant such as
# Claude can search and tag. Authentication is either a personal API key or the
# OAuth flow below, which is what Claude Desktop uses. See docs/mcp.md.
#
# Both rely on APP_URL above being the address people actually reach — a client
# compares the issuer it discovered against the one in the metadata, and refuses
# the connection when they differ.
MCP_ENABLED=true
# What the client shows in its connector list.
MCP_SERVER_NAME=NextSearch
# Requests per minute per token. One tool call is one request.
MCP_RATE_LIMIT=240
# Hits a single search call returns at most.
MCP_MAX_RESULTS=25
# The OAuth server in front of the endpoint. Without it only personal keys work,
# and Claude Desktop cannot connect on its own.
MCP_OAUTH_ENABLED=true
# Clients registering themselves (RFC 7591). Off means every client has to be
# entered by hand — which no assistant can do for you.
MCP_OAUTH_DYNAMIC_REGISTRATION=true
# New registrations per hour per address.
MCP_OAUTH_REGISTRATION_RATE_LIMIT=10
MCP_ACCESS_TOKEN_TTL_MINUTES=60
MCP_REFRESH_TOKEN_TTL_DAYS=30
# --- Text extraction (Apache Tika) -------------------------------------------
# OCR only kicks in when a PDF has no text layer. It costs processing time.
TIKA_URL=http://tika:9998
TIKA_TIMEOUT=300
TIKA_OCR_ENABLED=true
TIKA_OCR_LANGUAGES=deu+eng
# --- Preview images ----------------------------------------------------------
# Office formats are converted to PDF via Gotenberg and then rendered.
# Setting this to false saves the Gotenberg container.
PREVIEW_ENABLED=true
PREVIEW_OFFICE_ENABLED=true
PREVIEW_WIDTH=600
# Preview images are served through the backend, not via a signed S3 URL — the object
# store deliberately has no published port.
GOTENBERG_URL=http://gotenberg:3000
# --- Demo stack (only with --profile demo) -----------------------------------
DEMO_NEXTCLOUD_ADMIN_USER=demo
DEMO_NEXTCLOUD_ADMIN_PASSWORD=demo-password