{"id":7488,"date":"2026-08-19T19:10:11","date_gmt":"2026-08-19T19:10:11","guid":{"rendered":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/reference\/configuration\/"},"modified":"2026-08-19T19:10:11","modified_gmt":"2026-08-19T19:10:11","slug":"configuration","status":"publish","type":"wvn_doc","link":"https:\/\/www.wiven.ai\/en\/wiven-llm\/docs\/reference\/configuration\/","title":{"rendered":"Environmental variables"},"content":{"rendered":"<h1>Environmental variables<\/h1>\n<p>The configuration of a server instance is done via environment variables.<br \/>\nShe is <strong>complementary<\/strong> of the interface: most settings are done<br \/>\nin the application, and the variables are used for automated deployment and<br \/>\nparameters that must exist before the first startup.<\/p>\n<blockquote>\n<p>This page describes the categories and structuring variables. The list<br \/>\nexhaustive information is included in the example file provided with the installation.<\/p>\n<\/blockquote>\n<hr \/>\n<h2>Mandatory<\/h2>\n<p>These three values must be <strong>long, random and unique to your<br \/>\nfacility<\/strong>. Never reuse those from the example file: they are<br \/>\npublic.<\/p>\n<table>\n<thead>\n<tr>\n<th>Variable<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>JWT_SECRET<\/code><\/td>\n<td>User session signing<\/td>\n<\/tr>\n<tr>\n<td><code>SIG_KEY<\/code><\/td>\n<td>Internal signature key<\/td>\n<\/tr>\n<tr>\n<td><code>SIG_SALT<\/code><\/td>\n<td>Salt associated<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>A change of <code>JWT_SECRET<\/code> invalidates all current sessions: the<br \/>\nUsers will need to log in again.<\/p>\n<hr \/>\n<h2>Storage<\/h2>\n<table>\n<thead>\n<tr>\n<th>Variable<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>STORAGE_DIR<\/code><\/td>\n<td>Directory containing database, documents, index and models<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>This is the most important variable in operations.<\/strong> It must point towards<br \/>\na volume <strong>persistent<\/strong>. If the storage is not persistent, everything is lost.<br \/>\ncontainer restart.<\/p>\n<hr \/>\n<h2>Network and service<\/h2>\n<table>\n<thead>\n<tr>\n<th>Variable<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SERVER_PORT<\/code><\/td>\n<td>Application listening port<\/td>\n<\/tr>\n<tr>\n<td><code>COLLECTOR_PORT<\/code><\/td>\n<td>Port of the document extraction service<\/td>\n<\/tr>\n<tr>\n<td><code>ENABLE_HTTPS<\/code><\/td>\n<td>Enables TLS directly within the application<\/td>\n<\/tr>\n<tr>\n<td><code>HTTPS_CERT_PATH<\/code>, <code>HTTPS_KEY_PATH<\/code><\/td>\n<td>Location of the certificate and key<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If you are using a reverse proxy for TLS, leave application-level TLS enabled.<br \/>\ndisabled.<\/p>\n<hr \/>\n<h2>Authentication<\/h2>\n<table>\n<thead>\n<tr>\n<th>Variable<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>AUTH_TOKEN<\/code><\/td>\n<td>Unique password, in single-user mode<\/td>\n<\/tr>\n<tr>\n<td><code>JWT_EXPIRY<\/code><\/td>\n<td>Validity period of sessions<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In multi-user mode, accounts are managed within the application; ;<br \/>\n<code>AUTH_TOKEN<\/code> has no effect.<\/p>\n<hr \/>\n<h2>AI Providers<\/h2>\n<p>Each supplier has its own variables, following a consistent pattern:<\/p>\n<ul>\n<li>a <strong>API key<\/strong> or a <strong>service address<\/strong> ;<\/li>\n<li>a <strong>model preference<\/strong> ;<\/li>\n<li>sometimes a <strong>context limit<\/strong> when it cannot be discovered<br \/>\n  automatically.<\/li>\n<\/ul>\n<p>Three general variables define active selection:<\/p>\n<table>\n<thead>\n<tr>\n<th>Variable<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>LLM_PROVIDER<\/code><\/td>\n<td>Language model provider<\/td>\n<\/tr>\n<tr>\n<td><code>EMBEDDING_ENGINE<\/code><\/td>\n<td>Embeddings engine<\/td>\n<\/tr>\n<tr>\n<td><code>VECTOR_DB<\/code><\/td>\n<td>Vector base<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p>These settings can be modified in the interface, and these are the values<br \/>\nrecorded in the application which are considered valid once onboarding is completed.<br \/>\nThe variables are therefore mainly used to preconfigure a deployment.<\/p>\n<\/blockquote>\n<hr \/>\n<h2>Segmentation and indexing<\/h2>\n<table>\n<thead>\n<tr>\n<th>Variable<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>EMBEDDING_MODEL_MAX_CHUNK_LENGTH<\/code><\/td>\n<td>Maximum size of a fragment sent to the embeddings engine<\/td>\n<\/tr>\n<tr>\n<td><code>MAX_EMBED_CHUNK_SIZE<\/code><\/td>\n<td>Fragment size ceiling<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>These values can also be adjusted in the interface.<\/p>\n<hr \/>\n<h2>Agents Verification Status<\/h2>\n<table>\n<thead>\n<tr>\n<th>Variable<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>AGENT_MAX_TOOL_CALLS<\/code><\/td>\n<td>Maximum number of tool calls per task \u2014 safeguard against loops<\/td>\n<\/tr>\n<tr>\n<td>Search engine keywords<\/td>\n<td>Web search skill configuration<\/td>\n<\/tr>\n<tr>\n<td><code>AGENT_AUTO_APPROVED_SKILLS<\/code><\/td>\n<td>Skills that can be performed without confirmation<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2>Confidentiality and exploitation<\/h2>\n<table>\n<thead>\n<tr>\n<th>Variable<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>DISABLE_TELEMETRY<\/code><\/td>\n<td>Completely disable telemetry<\/td>\n<\/tr>\n<tr>\n<td><code>DISABLE_SWAGGER_DOCS<\/code><\/td>\n<td>Hides the interactive API documentation<\/td>\n<\/tr>\n<tr>\n<td><code>DISABLE_VIEW_CHAT_HISTORY<\/code><\/td>\n<td>Prevents users from viewing their history<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>On a sovereignty-required installation, explicitly disable the<br \/>\nMeasure the telemetry and document it.<\/p>\n<hr \/>\n<h2>Best practices<\/h2>\n<p><strong>Treat the configuration file like a secret.<\/strong> It contains all your<br \/>\nKeys. Restrict its access rights, do not version it, back it up.<br \/>\nseparately and in encrypted form.<\/p>\n<p><strong>Generate real secrets.<\/strong> A long random string, produced by a<br \/>\ngenerator, for each of the three required values.<\/p>\n<p><strong>Check storage persistence<\/strong> Before putting into service: restart<br \/>\nthe instance and confirm that the settings and documents are still there.<\/p>\n<p><strong>Document your choices.<\/strong> Which supplier, which embedding engine, which<br \/>\nBase: This information will be necessary for your processing register.<br \/>\nand for any subsequent intervention.<\/p>","protected":false},"parent":7453,"menu_order":703,"template":"","meta":[],"class_list":["post-7488","wvn_doc","type-wvn_doc","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Variables d&#039;environnement \u2014 Documentation WivenLLM<\/title>\n<meta name=\"description\" content=\"Configurer une instance au d\u00e9ploiement \u2014 secrets obligatoires, r\u00e9seau, fournisseurs et options d&#039;exploitation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wiven.ai\/en\/wiven-llm\/docs\/reference\/configuration\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Variables d&#039;environnement \u2014 Documentation WivenLLM\" \/>\n<meta property=\"og:description\" content=\"Configurer une instance au d\u00e9ploiement \u2014 secrets obligatoires, r\u00e9seau, fournisseurs et options d&#039;exploitation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wiven.ai\/en\/wiven-llm\/docs\/reference\/configuration\/\" \/>\n<meta property=\"og:site_name\" content=\"Wiven AI\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/reference\\\/configuration\\\/\",\"url\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/reference\\\/configuration\\\/\",\"name\":\"Variables d'environnement \u2014 Documentation WivenLLM\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.wiven.ai\\\/#website\"},\"datePublished\":\"2026-08-19T19:10:11+00:00\",\"description\":\"Configurer une instance au d\u00e9ploiement \u2014 secrets obligatoires, r\u00e9seau, fournisseurs et options d'exploitation.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/reference\\\/configuration\\\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/reference\\\/configuration\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/reference\\\/configuration\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.wiven.ai\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"R\u00e9f\u00e9rence\",\"item\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/reference\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Variables d&#8217;environnement\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.wiven.ai\\\/#website\",\"url\":\"https:\\\/\\\/www.wiven.ai\\\/\",\"name\":\"Wiven AI\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.wiven.ai\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Environment Variables \u2014 WivenLLM Documentation","description":"Configuring an instance for deployment \u2014 required secrets, network, providers and operating options.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wiven.ai\/en\/wiven-llm\/docs\/reference\/configuration\/","og_locale":"en_US","og_type":"article","og_title":"Variables d'environnement \u2014 Documentation WivenLLM","og_description":"Configurer une instance au d\u00e9ploiement \u2014 secrets obligatoires, r\u00e9seau, fournisseurs et options d'exploitation.","og_url":"https:\/\/www.wiven.ai\/en\/wiven-llm\/docs\/reference\/configuration\/","og_site_name":"Wiven AI","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/reference\/configuration\/","url":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/reference\/configuration\/","name":"Environment Variables \u2014 WivenLLM Documentation","isPartOf":{"@id":"https:\/\/www.wiven.ai\/#website"},"datePublished":"2026-08-19T19:10:11+00:00","description":"Configuring an instance for deployment \u2014 required secrets, network, providers and operating options.","breadcrumb":{"@id":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/reference\/configuration\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wiven.ai\/wiven-llm\/docs\/reference\/configuration\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/reference\/configuration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.wiven.ai\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/"},{"@type":"ListItem","position":3,"name":"R\u00e9f\u00e9rence","item":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/reference\/"},{"@type":"ListItem","position":4,"name":"Variables d&#8217;environnement"}]},{"@type":"WebSite","@id":"https:\/\/www.wiven.ai\/#website","url":"https:\/\/www.wiven.ai\/","name":"Wiven AI","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wiven.ai\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"}]}},"_links":{"self":[{"href":"https:\/\/www.wiven.ai\/en\/wp-json\/wp\/v2\/wvn_doc\/7488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wiven.ai\/en\/wp-json\/wp\/v2\/wvn_doc"}],"about":[{"href":"https:\/\/www.wiven.ai\/en\/wp-json\/wp\/v2\/types\/wvn_doc"}],"up":[{"embeddable":true,"href":"https:\/\/www.wiven.ai\/en\/wp-json\/wp\/v2\/wvn_doc\/7453"}],"wp:attachment":[{"href":"https:\/\/www.wiven.ai\/en\/wp-json\/wp\/v2\/media?parent=7488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}