Create a protected .env file using the vendor’s instructions. Supply values for the registry and image version; PostgreSQL credentials and connection; Keycloak administrator and realm; internal and external Keycloak URLs; frontend URL; AI endpoint; shared and upload paths; and retention settings. For the included database, use the Compose service host db and container port 5432 for backend connections.The supplied Compose file exposes service ports and starts Keycloak in development mode. Its realm contains example accounts and localhost-oriented client settings. Review and harden authentication, TLS, redirects, network access, and secrets with the vendor before production use. See production installation.
SECRET_ENCRYPTION_KEY protects values stored in the Secrets Vault. Generate and store a unique key securely, following the vendor’s instructions. Provider API keys are stored separately in the application database; see Configure AI providers.
LICENSE_FERNET_KEY must be compatible with the keys issued by the licensing service. Obtain it through the vendor’s secure provisioning process.
LICENSE_SERVER_URL and LICENSE_SERVER_API_KEY identify and authenticate to the separately supplied licensing service. The license server is not part of the core production Compose stack.
Do not reuse sample keys or passwords, omit the license encryption key, or enable development mode in production. The current implementation can otherwise enable a development license. Never publish .env files, keys, or credentials.
Back up encryption keys securely with the data they protect. Losing or changing a key without a supported migration may make existing encrypted data unreadable.
Open LLM Config and follow Configure AI providers to add and test providers and select active LLM, embedding, and OCR defaults.
Review data retention, storage, and access settings against your organization’s policies.
Create document types and workflows, then assign appropriate workflow access under User Config.
Submit a non-sensitive test document and verify extraction, review, and export before processing production data.
An external provider may receive document contents or prompts. Model or provider overrides can exist at document-type or workflow-stage level; check both the global configuration and the relevant workflow when troubleshooting.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Weles Documentation","description":"Weles documentation: deploy and operate an on-premises AI assistant platform for company knowledge, AI agent workflows, intelligent document processing, and OCR.","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/weles-ai/69L-b7AW2V9Rp9yL/images/logo.svg?fit=max\u0026auto=format\u0026n=69L-b7AW2V9Rp9yL\u0026q=85\u0026s=a20ff2971489b24d3f0f65c738b6f807","dark":"https://mintcdn.com/weles-ai/XixGqBqwYLWYtsXP/images/logo-white.svg?fit=max\u0026auto=format\u0026n=XixGqBqwYLWYtsXP\u0026q=85\u0026s=507bcc794d6e5ec0cd503590b4227e97","href":"https://welesai.com"},"favicon":{"light":"https://mintcdn.com/weles-ai/69L-b7AW2V9Rp9yL/images/logo.svg?fit=max\u0026auto=format\u0026n=69L-b7AW2V9Rp9yL\u0026q=85\u0026s=a20ff2971489b24d3f0f65c738b6f807","dark":"https://mintcdn.com/weles-ai/XixGqBqwYLWYtsXP/images/logo-white.svg?fit=max\u0026auto=format\u0026n=XixGqBqwYLWYtsXP\u0026q=85\u0026s=507bcc794d6e5ec0cd503590b4227e97"},"navbar":{"links":[{"href":"mailto:support@welesai.com","label":"Support"}],"primary":{"type":"button","label":"Weles","href":"https://welesai.com"}},"seo":{"metatags":{"keywords":"Weles, WelesAI, on-premises AI, AI assistant, AI agents, agent workflows, intelligent document processing, IDP, OCR, LLM, self-hosted AI","author":"WelesAI","robots":"index, follow","og:locale":"en_US","theme-color":"#16A34A"}},"icons":{"library":"fontawesome"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"weles-ai","hasAudioNarration":false,"actualSubdomain":"weles-ai","customDomains":["docs.welesai.com"],"gitSource":{"type":"artifacts","owner":"prod","repo":"6af1e377576b5817482d859e","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6af1e407332b36706b716649"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af24f2eddd7e7bcd0c78922","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Administration","count":6},{"language":"default","tag":"Workflows","count":5},{"language":"default","tag":"For AI Agents","count":3},{"language":"default","tag":"Getting Started","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"img.nav-logo{height:4rem!important;width:auto!important}#navbar{padding-top:0.5rem;padding-bottom:0.5rem}a:has(>img.nav-logo){display:flex!important;align-items:center;gap:0.5rem}a:has(>img.nav-logo)::after{content:\"Weles\";font-size:1.5rem;font-weight:700;line-height:1;color:#111827}html.dark a:has(>img.nav-logo)::after{color:#ffffff}"}],"page":{"pagePath":"administration/configuration","slug":"/administration/configuration","pageMetadata":{"title":"Configuration and first setup","description":"Configure a Weles deployment: environment settings, PostgreSQL, Keycloak identity, encryption and licensing, AI models, and user access.","keywords":["Weles configuration",".env","PostgreSQL","Keycloak","user management"],"href":"/administration/configuration"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Configure a Weles deployment: environment settings, PostgreSQL, Keycloak identity, encryption and licensing, AI models, and user access.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`deployment-configuration`,children:`Deployment configuration`}),`\n`,_jsxs(_components.p,{children:[`Create a protected `,_jsx(_components.code,{children:`.env`}),` file using the vendor’s instructions. Supply values for the registry and image version; PostgreSQL credentials and connection; Keycloak administrator and realm; internal and external Keycloak URLs; frontend URL; AI endpoint; shared and upload paths; and retention settings. For the included database, use the Compose service host `,_jsx(_components.code,{children:`db`}),` and container port `,_jsx(_components.code,{children:`5432`}),` for backend connections.`]}),`\n`,_jsxs(_components.p,{children:[`The supplied Compose file exposes service ports and starts Keycloak in development mode. Its realm contains example accounts and localhost-oriented client settings. Review and harden authentication, TLS, redirects, network access, and secrets with the vendor before production use. See `,_jsx(_components.a,{href:`/quickstart`,children:`production installation`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`encryption-and-licensing-settings`,children:`Encryption and licensing settings`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SECRET_ENCRYPTION_KEY`}),` protects values stored in the Secrets Vault. Generate and store a unique key securely, following the vendor’s instructions. Provider API keys are stored separately in the application database; see `,_jsx(_components.a,{href:`/administration/llm-providers`,children:`Configure AI providers`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`LICENSE_FERNET_KEY`}),` must be compatible with the keys issued by the licensing service. Obtain it through the vendor’s secure provisioning process.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`LICENSE_SERVER_URL`}),` and `,_jsx(_components.code,{children:`LICENSE_SERVER_API_KEY`}),` identify and authenticate to the separately supplied licensing service. The license server is not part of the core production Compose stack.`]}),`\n`]}),`\n`,_jsxs(Warning,{children:[`Do not reuse sample keys or passwords, omit the license encryption key, or enable development mode in production. The current implementation can otherwise enable a development license. Never publish `,_jsx(_components.code,{children:`.env`}),` files, keys, or credentials.`]}),`\n`,_jsx(_components.p,{children:`Back up encryption keys securely with the data they protect. Losing or changing a key without a supported migration may make existing encrypted data unreadable.`}),`\n`,_jsx(Heading,{level:`2`,id:`first-setup-in-weles`,children:`First setup in Weles`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Sign in with an administrator account provisioned in the configured Keycloak realm. Review user roles and remove or secure example accounts.`}),`\n`,_jsxs(_components.li,{children:[`Open `,_jsx(_components.strong,{children:`License`}),` and `,_jsx(_components.a,{href:`/administration/licensing`,children:`activate a valid license`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Open `,_jsx(_components.strong,{children:`LLM Config`}),` and follow `,_jsx(_components.a,{href:`/administration/llm-providers`,children:`Configure AI providers`}),` to add and test providers and select active LLM, embedding, and OCR defaults.`]}),`\n`,_jsx(_components.li,{children:`Review data retention, storage, and access settings against your organization’s policies.`}),`\n`,_jsxs(_components.li,{children:[`Create document types and workflows, then assign appropriate workflow access under `,_jsx(_components.strong,{children:`User Config`}),`.`]}),`\n`,_jsx(_components.li,{children:`Submit a non-sensitive test document and verify extraction, review, and export before processing production data.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`An external provider may receive document contents or prompts. Model or provider overrides can exist at document-type or workflow-stage level; check both the global configuration and the relevant workflow when troubleshooting.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Configuration and first setup","description":"Configure a Weles deployment: environment settings, PostgreSQL, Keycloak identity, encryption and licensing, AI models, and user access.","keywords":["Weles configuration",".env","PostgreSQL","Keycloak","user management"],"href":"/administration/configuration"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Deployment configuration","slug":"deployment-configuration","depth":2,"children":[]},{"title":"Encryption and licensing settings","slug":"encryption-and-licensing-settings","depth":2,"children":[]},{"title":"First setup in Weles","slug":"first-setup-in-weles","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"weles-ai","siteName":"Weles Documentation","title":"Configuration and first setup - Weles Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T19:00:31.033Z","originalFileLocation":"administration/configuration.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Configure a Weles deployment: environment settings, PostgreSQL, Keycloak identity, encryption and licensing, AI models, and user access.\">\u003cmeta data-mint-head name=\"keywords\" content=\"Weles, WelesAI, on-premises AI, AI assistant, AI agents, agent workflows, intelligent document processing, IDP, OCR, LLM, self-hosted AI\">\u003cmeta data-mint-head name=\"application-name\" content=\"Weles Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/weles-ai/WuQ_JNnkvlzL7wf3/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/weles-ai/WuQ_JNnkvlzL7wf3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/weles-ai/WuQ_JNnkvlzL7wf3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/weles-ai/WuQ_JNnkvlzL7wf3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/weles-ai/WuQ_JNnkvlzL7wf3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/weles-ai/WuQ_JNnkvlzL7wf3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/weles-ai/WuQ_JNnkvlzL7wf3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/weles-ai/WuQ_JNnkvlzL7wf3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/weles-ai/WuQ_JNnkvlzL7wf3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Configuration and first setup - Weles Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configure a Weles deployment: environment settings, PostgreSQL, Keycloak identity, encryption and licensing, AI models, and user access.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Weles Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.welesai.com/administration/configuration\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://weles-ai.mintlify.site/_mintlify/api/og/v2?division=Administration\u0026amp;title=Configuration+and+first+setup\u0026amp;description=Configure+a+Weles+deployment%3A+environment+settings%2C+PostgreSQL%2C+Keycloak+identity%2C+encryption+and+licensing%2C+AI+models%2C+and+user+access.\u0026amp;theme=6e7c9dd4f0cf6ebab663dfed\u0026amp;signature=56610ff93bb7c7eedbedddefd7e413d17fa83b1eaae4b46484c48abca09415a6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Configuration and first setup - Weles Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configure a Weles deployment: environment settings, PostgreSQL, Keycloak identity, encryption and licensing, AI models, and user access.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://weles-ai.mintlify.site/_mintlify/api/og/v2?division=Administration\u0026amp;title=Configuration+and+first+setup\u0026amp;description=Configure+a+Weles+deployment%3A+environment+settings%2C+PostgreSQL%2C+Keycloak+identity%2C+encryption+and+licensing%2C+AI+models%2C+and+user+access.\u0026amp;theme=6e7c9dd4f0cf6ebab663dfed\u0026amp;signature=56610ff93bb7c7eedbedddefd7e413d17fa83b1eaae4b46484c48abca09415a6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/weles-ai/WuQ_JNnkvlzL7wf3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Weles Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003cmeta data-mint-head name=\"author\" content=\"WelesAI\">\u003cmeta data-mint-head name=\"theme-color\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.welesai.com/administration/configuration\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/administration/configuration.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.welesai.com/#organization\",\"name\":\"Weles Documentation\",\"url\":\"https://docs.welesai.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/weles-ai/69L-b7AW2V9Rp9yL/images/logo.svg?fit=max\u0026auto=format\u0026n=69L-b7AW2V9Rp9yL\u0026q=85\u0026s=a20ff2971489b24d3f0f65c738b6f807\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.welesai.com#website\",\"name\":\"Weles Documentation\",\"url\":\"https://docs.welesai.com\",\"publisher\":{\"@id\":\"https://docs.welesai.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.welesai.com/administration/configuration#webpage\",\"url\":\"https://docs.welesai.com/administration/configuration\",\"name\":\"Configuration and first setup\",\"description\":\"Configure a Weles deployment: environment settings, PostgreSQL, Keycloak identity, encryption and licensing, AI models, and user access.\",\"dateModified\":\"2026-11-09T19:00:31.033Z\",\"isPartOf\":{\"@id\":\"https://docs.welesai.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.welesai.com/administration/configuration#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.welesai.com/administration/configuration#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Weles Documentation\",\"item\":\"https://docs.welesai.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Configuration and first setup\",\"item\":\"https://docs.welesai.com/administration/configuration\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.welesai.com/administration/configuration#article\",\"headline\":\"Configuration and first setup\",\"name\":\"Configuration and first setup\",\"description\":\"Configure a Weles deployment: environment settings, PostgreSQL, Keycloak identity, encryption and licensing, AI models, and user access.\",\"url\":\"https://docs.welesai.com/administration/configuration\",\"mainEntityOfPage\":{\"@id\":\"https://docs.welesai.com/administration/configuration#webpage\"},\"dateModified\":\"2026-11-09T19:00:31.033Z\",\"keywords\":\"Weles configuration, .env, PostgreSQL, Keycloak, user management\",\"publisher\":{\"@id\":\"https://docs.welesai.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.welesai.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Weles Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Weles Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/administration/configuration.md","siteName":"Weles Documentation","nav":{"global":null,"pages":[{"group":"Getting Started","pages":[{"title":"Welcome to Weles","sidebarTitle":"Introduction","href":"/index"},{"title":"Install from production images","sidebarTitle":"Production installation","href":"/quickstart"},{"title":"Using Weles","description":"Upload documents, verify extracted data, and chat with configured agents.","href":"/guides/using-weles"}]},{"group":"Administration","pages":[{"title":"Configuration and first setup","href":"/administration/configuration"},{"title":"Licensing","description":"Understand Weles licensing, the end user license agreement (EULA), third-party components, and how to activate a Weles product license.","href":"/administration/licensing"},{"title":"Troubleshooting","href":"/administration/troubleshooting"},{"title":"Configure AI providers","href":"/administration/llm-providers"},{"title":"Dashboard","href":"/administration/dashboard"},{"title":"Administration areas","href":"/administration/application-areas"}]},{"group":"Workflows","pages":[{"title":"Create document types","href":"/workflows/document-types"},{"title":"Create your first workflow","href":"/workflows/first-workflow"},{"title":"Build an agent workflow","href":"/workflows/agent-workflow"},{"title":"Add and configure agent tools","href":"/workflows/agent-tools"},{"title":"Workflow stages reference","href":"/workflows/stages"}]},{"group":"For AI Agents","pages":[{"title":"Start here: building Weles with AI","href":"/ai-agents/start-here"},{"title":"Generate workflow imports with AI","sidebarTitle":"Generate workflow imports","href":"/workflows/ai-generated-imports"},{"title":"Create Tool Manager packages","href":"/ai-agents/tool-packages"}]}]},"basePath":"","title":"Configuration and first setup - Weles Documentation","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":[],"chunks":[]}