openvibers/openvibe.vision .env.example

.env.example

main 4.1 KB · 94 lines · plaintext

1# OpenVibe.Vision — environment (production: /etc/openvibe/vision.env). Names only; never commit values.
2
3NODE_ENV=production
4PORT=5130
5HOST=127.0.0.1
6BASE_URL=https://openvibe.vision
7TRUST_PROXY=2
8# PostgreSQL (ADR-035): the runtime role through PgBouncer and the owner on a direct connection for migrations.
9# Without DATABASE_URL, development uses an embedded PGlite database in data/pglite.
10DATABASE_URL=
11DATABASE_DIRECT_URL=
12VALKEY_URL=
13VALKEY_PREFIX=ov:vision:
14# Per-actor limits (server/http/api.js) and per-address limits (server/app.js).
15#VISION_LIMITS_MINUTE=60
16#VISION_LIMITS_HOUR=600
17#VISION_API_RATE_LIMIT_PER_MIN=120
18#VISION_RATE_LIMIT_PER_MIN=180
19
20# OpenVibe.Network: SSO (OAuth client `vision`, PKCE S256, cookies vision_at/vision_rt/vision_oauth) and its JWKS;
21# service/app tokens for audience openvibe.vision.
22OV_NETWORK_URL=https://openvibe.network
23OV_NETWORK_INTERNAL_URL=http://127.0.0.1:4000
24# OV_NETWORK_ISSUER=https://openvibe.network
25OV_OAUTH_CLIENT_ID=vision
26OV_OAUTH_CLIENT_SECRET=
27# OV_OAUTH_REDIRECT_URI=https://openvibe.vision/auth/callback
28# VISION_AUDIENCE=openvibe.vision
29# OV_SESSION_AUDIENCE=openvibe.network
30# VISION_PGLITE_DIR=./data/pglite
31
32# OpenVibe.Events: account export/deletion deliveries to POST /internal/events. The secret signs a delivery
33# (comma-separated for rotation, 32+ characters each; unset makes the route answer 503).
34VISION_EVENTS_SECRET=
35VISION_EVENTS_URL=
36#VISION_EVENTS_ENDPOINT=http://127.0.0.1:5130/internal/events
37#VISION_EVENTS_INTERVAL_MS=5000
38# The event outbox relay: how often the drain looks for events that are due (the retry backoff is 1s, 5s, 30s, 2min, 10min).
39#VISION_EVENTS_OUTBOX_INTERVAL_MS=2000
40
41# OpenVibe.AI: the only model gateway. A first-party service token for client `vision` (Network grant
42# ai.run.create, namespace ai.*) makes the run; AI's routing, quotas, cache and cost accounting apply. Vision
43# holds no provider key and calls no paid provider directly. Unset the client secret and only local engines serve.
44OV_AI_URL=https://ai.openvibe.services
45# VISION_AI_AUDIENCE=openvibe.ai
46# VISION_AI_SCOPE=ai.run.create
47# VISION_AI_NAMESPACE=ai.*
48# VISION_AI_MODELS=openai:gpt-5-mini,local:qwen
49#VISION_AI_TIMEOUT_MS=45000
50#VISION_AI_WAIT_MS=30000
51#VISION_AI_MAX_TOKENS=700
52#VISION_AI_TEMPERATURE=0.1
53
54# The local OCR engine (Tesseract 5). A missing binary is an honest 503; no cloud fallback without consent.
55VISION_TESSERACT=tesseract
56#VISION_OCR_LANG=eng
57#VISION_OCR_TIMEOUT_MS=20000
58
59# Image inputs: upload, data URL or public URL. URLs are fetched only after every resolved address is public.
60#VISION_IMAGE_MAX_MB=8
61#VISION_IMAGE_TIMEOUT_MS=10000
62#VISION_ALLOW_PRIVATE_URLS=0
63
64# Local face models live in DATA_DIR/models. Run npm run models:faces to fetch pinned, hashed weights.
65# Without weights/key, only face routes degrade; /api/ready reports the missing component.
66# VISION_FACE_KEY must be a random 32-byte AES key encoded as base64. Never rotate it without re-encrypting stored rows.
67DATA_DIR=
68VISION_FACE_KEY=
69# Comma-separated region codes; empty means library grouping is off everywhere.
70VISION_FACE_LIBRARY_REGIONS=
71# F1 familiar faces: cameras in these regions take the named person's consent before a template exists.
72# An unknown region defaults to strict; everything else can name faces freely.
73#VISION_FACE_STRICT_REGIONS=US-IL,US-TX,US-WA,EU,EU-*,GB,UK,UNKNOWN
74#VISION_FACE_CONSENT_REQUEST_DAYS=14
75#VISION_FACE_MATCH_THRESHOLD=0.363
76#VISION_FACE_PRIVACY_RATE_LIMIT_PER_MIN=30
77
78# The UI check: HTML, URL or screenshot. It never executes JavaScript and never fetches remote stylesheets.
79#VISION_UI_MAX_HTML_KB=1024
80#VISION_UI_TIMEOUT_MS=10000
81#VISION_UI_MAX_FINDINGS=200
82
83# A restore drill starts no account subscriptions.
84#VISION_DRILL=0
85
86# optional: defaults to true in production
87# COOKIE_SECURE=true
88
89# Network tool models; npm run models:fetch downloads pinned ONNX files here/models.
90# DATA_DIR=/var/lib/openvibe/vision
91# Structured candidate offer search APIs (not yet provided by Deals/open.shoes).
92# VISION_DEALS_SEARCH_URL=https://openvibe.deals/api/v1/product-search
93# VISION_SHOES_SEARCH_URL=https://open.shoes/api/v1/search
94