Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
79 lines (68 loc) · 3.72 KB
/
Copy path.env.example
File metadata and controls
79 lines (68 loc) · 3.72 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
# Copy to .env and fill in real values. Never commit .env (see .gitignore).
# --- Postgres --------------------------------------------------------------
# Bootstrap superuser, used once at first init to create the nuron_ai/nuron_api
# schemas and roles (schema.sql). Application code never connects as this user.
POSTGRES_USER=postgres
POSTGRES_PASSWORD=changeme
POSTGRES_DB=nuron
# Passwords for the two schema-scoped login roles schema.sql creates via psql
# \getenv -- never hardcoded in schema.sql itself.
NURON_AI_DB_PASSWORD=changeme
NURON_API_DB_PASSWORD=changeme
# Host-published Postgres port (see docker-compose.yml) -- nuron-ai isn't containerized
# yet, so it talks to Postgres over the host network, not the `nuron` compose network.
NURON_AI_DB_HOST=127.0.0.1
NURON_AI_DB_PORT=5432
# --- Neo4j -------------------------------------------------------------------
# Community edition has exactly one user, `neo4j`, and exactly one database -- no
# NEO4J_USERNAME/NEO4J_DATABASE var, nothing to configure.
NEO4J_PASSWORD=changeme
# Host-published bolt port (see docker-compose.yml) -- nuron-ai isn't containerized yet,
# so it talks to Neo4j over the host network, not the `nuron` compose network.
NEO4J_URI=bolt://127.0.0.1:7687
# --- RustFS ------------------------------------------------------------------
RUSTFS_ACCESS_KEY=changeme
RUSTFS_SECRET_KEY=changeme
# Bucket-only URI plus endpoint: swapping RustFS for MinIO/S3 is an endpoint_url change,
# not a code change (fsspec/s3fs resolve the backend from RUSTFS_URI's scheme).
RUSTFS_URI=s3://nuron
# Host-published RustFS port (see docker-compose.yml) -- nuron-ai isn't containerized yet,
# so it talks to RustFS over the host network, not the `nuron` compose network.
RUSTFS_ENDPOINT_URL=http://127.0.0.1:9000
# --- LLM (OpenAILike -- any OpenAI-compatible endpoint) ----------------------
OPENAI_API_KEY=
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o-mini
# Compatible (non-OpenAI) endpoints need these stated explicitly.
OPENAI_IS_CHAT_MODEL=true
OPENAI_IS_FUNCTION_CALLING_MODEL=true
# --- Embeddings --------------------------------------------------------------
# One-way door once real content exists (ADR-0004): the model id and dimension
# count are baked into the Neo4j vector index at creation time.
OPENAI_EMBEDDING_MODEL=text-embedding-3-large
EMBEDDING_DIMENSIONS=1024
# --- PDF extraction ------------------------------------------------------
# Off by default -- dev/test only against LlamaParse (PRD §5.1). Verify current
# per-page credit pricing for the chosen tier before ever setting ENABLED=true
# (docs/tracer-bullet-01.md §7) -- pricing varies by tier and changes over time.
LLAMA_PARSE_ENABLED=false
LLAMA_PARSE_API_KEY=
# fast (rule-based, cheapest) | cost_effective | agentic | agentic_plus
LLAMA_PARSE_TIER=fast
# --- Watcher -------------------------------------------------------------
WATCHED_DIRECTORY=../../fixtures/watched
SCAN_INTERVAL_HOURS=24
# Decoupled from the scan interval on purpose -- see tracer-bullet-01.md.
MTIME_STABILITY_WINDOW_SECONDS=30
# --- Upload --------------------------------------------------------------
# PHP's `M` ini shorthand is already binary (25M = 25 MiB), matching Laravel's
# `max:25600` KB exactly. post_max_size carries 1 MiB of multipart headroom so an
# oversized file is rejected before Laravel finishes parsing it, not after --
# setting both to the same value would let a 25-26 MiB file be fully parsed first.
UPLOAD_MAX_FILESIZE=25M
POST_MAX_SIZE=26M
# --- Attribution fallback --------------------------------------------------
# Used only when a document's own content has no attribution. Never called
# `author` -- that name is reserved for what a citation actually claims a
# person said or decided (CONTEXT.md).
SOURCE_OWNER=