Paste your Vercel token and a project name, then verify the connection.
Vercel provider settings
3
Server configuration
Confirm the embedding model, then choose the AI chat runtime for this deployment. It uses the Project provider by default and can be overridden with OpenAI, DeepSeek, Google, Mistral, Cohere, or Vercel AI Gateway. Review the environment values, including the server API key.
Server configuration for a Vercel deployment
Local LanceDB files are not durable on a serverless deployment. Use Pinecone, LanceDB with S3 compatible storage, or another persistent provider when the deployed server includes the knowledge base.
4
Deploy
Select Deploy Server. Larkup opens the Cloud deployments tab when the request is accepted, where you can follow the provider status and open the API endpoint.
Choose the provider from the same Deploy menu. For an SSH target, provide the host, user, authentication method, and required environment values. Larkup builds the server, launches it through Docker, and returns the deployed endpoint.
Put a reverse proxy such as Caddy or Nginx in front of a public VPS endpoint to provide HTTPS and a custom domain.
Set the title, welcome message, placeholder, accent colour, position, and dark mode. Save, then restart the local runtime or redeploy to publish the update.
Chat widget appearance settings with a live preview
The generated server owns /widget.js and /chat, so the widget works the same locally, in Docker, and after deployment. It renders inside a Shadow DOM to keep its styles separate from the host site.Individual embeds can override the generated defaults:
data-class is applied to the widget’s outer mount. The chat interface itself is intentionally isolated, so host Tailwind classes cannot accidentally break the embedded UI.
data-api-key is readable by every visitor to the page. Use a scoped, low-privilege retrieval key for a browser widget, or put a small authenticated proxy in front of the Agent server for production sites. Never embed an admin, ingest, model-provider, sandbox, or Marketplace credential in client code.The same key is available behind a reveal/copy control in the Larkup Server screen only for the current browser session. Use it server side for production calls, where the key stays private.
Prefer a proxy or a purpose-made retrieval key rather than exposing a general server key through a NEXT_PUBLIC_* variable.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Larkup","colors":{"primary":"#000000","light":"#000000","dark":"#222222"},"logo":{"light":"https://mintcdn.com/larkup/J0lnyYIE7T-PEajl/documentation/logo/logo-light2.png?fit=max\u0026auto=format\u0026n=J0lnyYIE7T-PEajl\u0026q=85\u0026s=a8d0f36de4d9d0698e8a6ee73e6bf1aa","dark":"https://mintcdn.com/larkup/J0lnyYIE7T-PEajl/documentation/logo/logo-dark2.png?fit=max\u0026auto=format\u0026n=J0lnyYIE7T-PEajl\u0026q=85\u0026s=fa0405df7faa06592472499c015d828c"},"favicon":"https://mintcdn.com/larkup/J0lnyYIE7T-PEajl/documentation/images/favicon.ico?fit=max\u0026auto=format\u0026n=J0lnyYIE7T-PEajl\u0026q=85\u0026s=feef65be53c3a3fe73a8289e38d3fd83","background":{"color":{"light":"#F9FAFB","dark":"#0F1117"}},"navbar":{"links":[{"href":"mailto:abdelrahmanaboneda@gmail.com","label":"Support"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/Larkup-AI/larkup"}},"footer":{"socials":{"github":"https://github.com/Larkup-AI/larkup"}},"contextual":{"options":["copy"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"larkup","hasAudioNarration":false,"actualSubdomain":"larkup","customDomains":["larkup.de"],"gitSource":{"type":"github","owner":"larkup-ai","repo":"larkup","deployBranch":"main","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"41ed47f6-9e92-488c-bf50-0a09ec845389","liveDeploymentHistoryId":"6ad54ec7cfe0d5be20f803dd","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad54ec7cfe0d5be20f803dd"},"entitlements":{},"buildId":"6ad54ec7cfe0d5be20f803dd","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Documentation","count":13},{"language":"default","tag":"API Reference","count":11},{"language":"default","tag":"Use Cases","count":6},{"language":"default","tag":"Documents","count":5},{"language":"default","tag":"Getting Started","count":5},{"language":"default","tag":"Marketplace","count":5},{"language":"default","tag":"SDK","count":5},{"language":"default","tag":"Developer Guide","count":4},{"language":"default","tag":"Querying","count":2},{"language":"default","tag":"Overview","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/documentation","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"editor-v7-file-tree","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":"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"documentation/style.css","content":""}],"page":{"pagePath":"documentation/developer/deploy","slug":"/documentation/developer/deploy","pageMetadata":{"title":"Deploy Your Server","description":"Launch locally, deploy to a cloud provider, or export a portable server.","href":"/documentation/developer/deploy"},"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: \"Launch locally, deploy to a cloud provider, or export a portable server.\"\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={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Note,OptimizedImage,Step,Steps,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Larkup can run the retrieval and chat API locally or deploy it to a cloud provider. Open `,_jsx(_components.strong,{children:`Settings → Larkup Server`}),` to manage both paths.`]}),`\n`,_jsx(Heading,{level:`2`,id:`launch-and-test-locally`,children:`Launch and test locally`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open Larkup Server`,children:[_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings → Larkup Server`}),`. When the server is stopped, select `,_jsx(_components.strong,{children:`Launch server`}),`.`]}),_jsx(Frame,{caption:`Larkup Server before the local API is launched`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-off.png?fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=875cfdf5719cf17a75f117420fcde386`,alt:`Larkup Server settings with the local server stopped`,\"data-og-width\":`3012`,width:`3012`,\"data-og-height\":`1434`,height:`1434`,\"data-path\":`documentation/images/deploy/server-off.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-off.png?w=280\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=1c15a20faaf9ae23f103d257d9c38d2c 280w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-off.png?w=560\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=862455cb13d17a5024591ac050adacc9 560w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-off.png?w=840\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=dd0ec32e1d609142878720468e65c413 840w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-off.png?w=1100\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=81c2b8b2fa31927a48814f3ce36670f3 1100w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-off.png?w=1650\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=b4e5eca2771c96e2e736921f2313a9fe 1650w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-off.png?w=2500\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=3ec3bc60a6070a9e826bbb2e078426ca 2500w`})})]}),_jsxs(Step,{title:`Copy the connection details`,children:[_jsx(_components.p,{children:`After launch, the page shows the local endpoint, server API key, SDK connection action, test action, and interactive API reference.`}),_jsx(Frame,{caption:`A running local server with connection actions`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-on.png?fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=bc7e37149d4b25e569f9202296d92404`,alt:`Running Larkup server with endpoint and API key controls`,\"data-og-width\":`3012`,width:`3012`,\"data-og-height\":`1434`,height:`1434`,\"data-path\":`documentation/images/deploy/server-on.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-on.png?w=280\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=75ee89ecd2340c406c9c08441884a08f 280w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-on.png?w=560\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=aec8049520b5e291c2a61ba660aa482d 560w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-on.png?w=840\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=233df6f87b72654edc242005c228a03b 840w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-on.png?w=1100\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=dc153bd40c2a8f07ec52b211eec1cda6 1100w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-on.png?w=1650\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=0b028eb5f969e7a149bd30548a1551d7 1650w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-on.png?w=2500\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=1ce5503314bb7fb7322f37018e2056f8 2500w`})}),_jsxs(_components.p,{children:[`The app assigns an available workspace port starting at `,_jsx(_components.code,{children:`8080`}),`. A generated standalone server uses `,_jsx(_components.code,{children:`8080`}),` by default.`]})]}),_jsxs(Step,{title:`Verify the API`,children:[_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`Try it`}),`, open `,_jsx(_components.strong,{children:`API reference`}),`, or run:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`larkup`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` test`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --endpoint`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` http://localhost:8080`})]}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`deploy-from-the-web-ui`,children:`Deploy from the Web UI`}),`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Deploy`}),` to choose Vercel, Hetzner, Azure, AWS, GCP, DigitalOcean, or another available target.`]}),`\n`,_jsx(Frame,{caption:`Choose a cloud target from Larkup Server settings`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-click-deploy.png?fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=b3dea85b866cccd4d5b1ca5a3512a09a`,alt:`Deployment provider menu in Larkup Server settings`,\"data-og-width\":`3012`,width:`3012`,\"data-og-height\":`1434`,height:`1434`,\"data-path\":`documentation/images/deploy/server-click-deploy.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-click-deploy.png?w=280\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=99528403bbcb54a8dc538d3247350da8 280w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-click-deploy.png?w=560\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=36e0cb2b34cbdb8d9695072dc1f01ef7 560w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-click-deploy.png?w=840\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=bb0557a9bc72f96e36d88297be86c76c 840w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-click-deploy.png?w=1100\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=56926af1f2ff18bba70ad06b8d89166b 1100w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-click-deploy.png?w=1650\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=b2d037a7096a930723fc157fb6100a8c 1650w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/server-click-deploy.png?w=2500\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=839c90040363494323c7e8ed5e38142b 2500w`})}),`\n`,_jsx(Heading,{level:`3`,id:`vercel`,children:`Vercel`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Choose Vercel`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Deploy → Vercel`}),` from the server page.`]})}),_jsxs(Step,{title:`Provider settings`,children:[_jsx(_components.p,{children:`Paste your Vercel token and a project name, then verify the connection.`}),_jsx(Frame,{caption:`Vercel provider settings`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy1.png?fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=5b6fc28f88e1347d1fdf2b9c88560825`,alt:`Vercel token and project name form`,\"data-og-width\":`2982`,width:`2982`,\"data-og-height\":`1384`,height:`1384`,\"data-path\":`documentation/images/deploy/deploy1.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy1.png?w=280\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=491b7c3817ddc3d33f21a1801f0e6687 280w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy1.png?w=560\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=9ce1ee370ae3e748fb5b9380c8210faa 560w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy1.png?w=840\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=12a44b4a4f43a19f12385bcf988ac93d 840w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy1.png?w=1100\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=6ee6b025370742ff025e0cba9fe9742c 1100w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy1.png?w=1650\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=b5991b2a0530047c7b27f5fe68f92d36 1650w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy1.png?w=2500\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=45c87df40834110160d723a1e77b19af 2500w`})})]}),_jsxs(Step,{title:`Server configuration`,children:[_jsxs(_components.p,{children:[`Confirm the embedding model, then choose the `,_jsx(_components.strong,{children:`AI chat runtime`}),` for this deployment. It uses the Project provider by default and can be overridden with OpenAI, DeepSeek, Google, Mistral, Cohere, or Vercel AI Gateway. Review the environment values, including the server API key.`]}),_jsx(Frame,{caption:`Server configuration for a Vercel deployment`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy2.png?fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=320cb5acf7be162f2d0533c8e18861e3`,alt:`Embedding model, AI chat runtime, and environment variables`,\"data-og-width\":`2982`,width:`2982`,\"data-og-height\":`1384`,height:`1384`,\"data-path\":`documentation/images/deploy/deploy2.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy2.png?w=280\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=84bcb9c8d2928b387d28df9c7b39aef4 280w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy2.png?w=560\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=baa44ffebcc7eb18174bdfae0d2911d6 560w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy2.png?w=840\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=f7e6ff51967f5decb5aef75a57ed9d3a 840w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy2.png?w=1100\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=4ca5672f1dae933e582c7dfad9cd5c0c 1100w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy2.png?w=1650\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=d32cb66153a9b54f82458827c9c74ba5 1650w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/deploy/deploy2.png?w=2500\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=8b09eb300d04dab48dec11b0c1e42dae 2500w`})}),_jsx(Warning,{children:_jsx(_components.p,{children:`Local LanceDB files are not durable on a serverless deployment. Use Pinecone, LanceDB with S3 compatible storage, or another persistent provider when the deployed server includes the knowledge base.`})})]}),_jsx(Step,{title:`Deploy`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Deploy Server`}),`. Larkup opens the `,_jsx(_components.strong,{children:`Cloud deployments`}),` tab when the request is accepted, where you can follow the provider status and open the API endpoint.`]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`vps-and-other-cloud-targets`,children:`VPS and other cloud targets`}),`\n`,_jsxs(_components.p,{children:[`Choose the provider from the same `,_jsx(_components.strong,{children:`Deploy`}),` menu. For an SSH target, provide the host, user, authentication method, and required environment values. Larkup builds the server, launches it through Docker, and returns the deployed endpoint.`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Put a reverse proxy such as Caddy or Nginx in front of a public VPS endpoint to provide HTTPS and a custom domain.`})}),`\n`,_jsx(Heading,{level:`2`,id:`deploy-from-the-cli`,children:`Deploy from the CLI`}),`\n`,_jsx(_components.p,{children:`Generate a portable artifact:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`larkup`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` deploy`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` docker`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --out`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./deployment`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`larkup`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` deploy`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vercel`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --out`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./deployment`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Start locally or create the agent server target:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`larkup`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` deploy`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` local`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`larkup`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` deploy`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` agent`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`larkup`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` deploy`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` agent`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --start`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`After deployment, verify the endpoint:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`larkup`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` test`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --endpoint`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://your-server.example.com`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --api-key`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$LARKUP_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`before-going-live`,children:`Before going live`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Set a strong server API key.`}),`\n`,_jsx(_components.li,{children:`Use persistent storage for the deployed knowledge base.`}),`\n`,_jsx(_components.li,{children:`Add the model, embedding, and storage credentials required by your configuration.`}),`\n`,_jsx(_components.li,{children:`Keep secrets in the deployment provider rather than source control.`}),`\n`,_jsx(_components.li,{children:`Test the health, query, chat, and API reference endpoints.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The generated output is a standard Node.js server and includes a `,_jsx(_components.code,{children:`Dockerfile`}),` and `,_jsx(_components.code,{children:`vercel.json`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-chat-assistant-for-your-website-in-minutes`,children:`Create a chat assistant for your website in minutes`}),`\n`,_jsxs(_components.p,{children:[`Once your server is running, open `,_jsx(_components.strong,{children:`Settings → Larkup Server → Connections → Chat Widget → Customize`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`customize-the-appearance`,children:`Customize the appearance`}),`\n`,_jsx(_components.p,{children:`Set the title, welcome message, placeholder, accent colour, position, and dark mode. Save, then restart the local runtime or redeploy to publish the update.`}),`\n`,_jsx(Frame,{caption:`Chat widget appearance settings with a live preview`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/chat-widget.png?fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=82ca96bee39c85e57c3f2947a65b1985`,alt:`Chat widget appearance form with a live preview`,\"data-og-width\":`2982`,width:`2982`,\"data-og-height\":`1384`,height:`1384`,\"data-path\":`documentation/images/chat-widget.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/chat-widget.png?w=280\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=a8572858dd8f5dcbcf0a6c766cf55075 280w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/chat-widget.png?w=560\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=02cc1d22e0b0bcf0b476fac0e8f7ee06 560w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/chat-widget.png?w=840\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=a95f5515dbfc2b1a6a8d43dc3be2a2e7 840w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/chat-widget.png?w=1100\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=db00d13b71e7247e2bc78b19092ca36c 1100w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/chat-widget.png?w=1650\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=ad1d37fd4da4872286c8ad0890d665d5 1650w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/chat-widget.png?w=2500\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=35ef2ef615c4ee911a5faf6036936133 2500w`})}),`\n`,_jsx(_components.p,{children:`This is what it looks like running on a page:`}),`\n`,_jsx(Frame,{caption:`The widget open on a live site`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/demo-widget-preview.png?fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=51adf0b1cebf90a2476feb63f6ebc9e1`,alt:`Chat widget open and answering a question on a demo site`,\"data-og-width\":`3012`,width:`3012`,\"data-og-height\":`1418`,height:`1418`,\"data-path\":`documentation/images/demo-widget-preview.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/demo-widget-preview.png?w=280\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=2778cc870a9567ff5fe9c1c022a42ca2 280w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/demo-widget-preview.png?w=560\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=5c89660d0c88c1713b5a95c70e821b4f 560w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/demo-widget-preview.png?w=840\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=5928487128997729c2f351663240120d 840w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/demo-widget-preview.png?w=1100\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=a6aa72fa07e21339586e63e388a32167 1100w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/demo-widget-preview.png?w=1650\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=c5be1e241651c16077ae2778a58cac2f 1650w, https://mintcdn.com/larkup/13l_fOT1PJRw-f4o/documentation/images/demo-widget-preview.png?w=2500\u0026fit=max\u0026auto=format\u0026n=13l_fOT1PJRw-f4o\u0026q=85\u0026s=6470d35934df5d0142b51ee60abe431b 2500w`})}),`\n`,_jsx(Heading,{level:`3`,id:`embed-it`,children:`Embed it`}),`\n`,_jsx(_components.p,{children:`The same page gives you a ready to copy script using your server’s URL:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`html`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`html`,children:_jsxs(_components.code,{language:`html`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` async`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` src`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://your-agent.example.com/widget.js\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data-api-key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_SERVER_API_KEY\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data-position`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bottom-right\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data-theme`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"light\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The generated server owns `,_jsx(_components.code,{children:`/widget.js`}),` and `,_jsx(_components.code,{children:`/chat`}),`, so the widget works the same locally, in Docker, and after deployment. It renders inside a Shadow DOM to keep its styles separate from the host site.`]}),`\n`,_jsx(_components.p,{children:`Individual embeds can override the generated defaults:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`html`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`html`,children:_jsxs(_components.code,{language:`html`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` async`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` src`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://your-agent.example.com/widget.js\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data-api-key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_SERVER_API_KEY\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data-title`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Sales questions\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data-primary-color`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"#0ea5e9\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data-position`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bottom-left\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data-theme`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"dark\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data-class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"fixed z-50\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`data-class`}),` is applied to the widget’s outer mount. The chat interface itself is intentionally isolated, so host Tailwind classes cannot accidentally break the embedded UI.`]}),`\n`,_jsx(Heading,{level:`3`,id:`security`,children:`Security`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`data-api-key`}),` is readable by every visitor to the page. Use a scoped, low-privilege retrieval key for a browser widget, or put a small authenticated proxy in front of the Agent server for production sites. Never embed an admin, ingest, model-provider, sandbox, or Marketplace credential in client code.`]}),`\n`,_jsx(_components.p,{children:`The same key is available behind a reveal/copy control in the Larkup Server screen only for the current browser session. Use it server side for production calls, where the key stays private.`}),`\n`,_jsx(Heading,{level:`3`,id:`react`,children:`React`}),`\n`,_jsx(_components.p,{children:`Load the same script once in a client component:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`tsx`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`tsx`,children:_jsxs(_components.code,{language:`tsx`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'use client'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`useEffect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'react'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`export`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` SupportWidget`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` useEffect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` script`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` document`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createElement`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'script'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`src`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://your-agent.example.com/widget.js'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dataset`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`apiKey`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`NEXT_PUBLIC_LARKUP_WIDGET_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` document`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`appendChild`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` () `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` window`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`LarkupWidget`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`?.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`destroy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }, []);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Prefer a proxy or a purpose-made retrieval key rather than exposing a general server key through a `,_jsx(_components.code,{children:`NEXT_PUBLIC_*`}),` variable.`]})]})}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":"Deploy Your Server","description":"Launch locally, deploy to a cloud provider, or export a portable server.","href":"/documentation/developer/deploy"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Launch and test locally","slug":"launch-and-test-locally","depth":2,"children":[]},{"title":"Deploy from the Web UI","slug":"deploy-from-the-web-ui","depth":2,"children":[{"title":"Vercel","slug":"vercel","depth":3,"children":[]},{"title":"VPS and other cloud targets","slug":"vps-and-other-cloud-targets","depth":3,"children":[]}]},{"title":"Deploy from the CLI","slug":"deploy-from-the-cli","depth":2,"children":[]},{"title":"Before going live","slug":"before-going-live","depth":2,"children":[]},{"title":"Create a chat assistant for your website in minutes","slug":"create-a-chat-assistant-for-your-website-in-minutes","depth":2,"children":[{"title":"Customize the appearance","slug":"customize-the-appearance","depth":3,"children":[]},{"title":"Embed it","slug":"embed-it","depth":3,"children":[]},{"title":"Security","slug":"security","depth":3,"children":[]},{"title":"React","slug":"react","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"larkup","siteName":"Larkup","title":"Deploy Your Server - Larkup","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-20T01:06:55.804Z","originalFileLocation":"documentation/developer/deploy.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=\"Launch locally, deploy to a cloud provider, or export a portable server.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Larkup\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/larkup/O-SbaNQDkZFAZqod/_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/larkup/O-SbaNQDkZFAZqod/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/larkup/O-SbaNQDkZFAZqod/_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/larkup/O-SbaNQDkZFAZqod/_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/larkup/O-SbaNQDkZFAZqod/_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/larkup/O-SbaNQDkZFAZqod/_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/larkup/O-SbaNQDkZFAZqod/_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/larkup/O-SbaNQDkZFAZqod/_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/larkup/O-SbaNQDkZFAZqod/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Deploy Your Server - Larkup\">\u003cmeta data-mint-head property=\"og:description\" content=\"Launch locally, deploy to a cloud provider, or export a portable server.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Larkup\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://larkup.de/documentation/developer/deploy\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://larkup.mintlify.app/_mintlify/api/og/v2?division=Developer+Guide\u0026amp;title=Deploy+Your+Server\u0026amp;description=Launch+locally%2C+deploy+to+a+cloud+provider%2C+or+export+a+portable+server.\u0026amp;theme=bde185ca85eb94a198a8ed1e\u0026amp;signature=00f26b28bae30fba5693a6a2127a2d528501f87b551df979eb128a01d7826f4d\">\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=\"Deploy Your Server - Larkup\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Launch locally, deploy to a cloud provider, or export a portable server.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://larkup.mintlify.app/_mintlify/api/og/v2?division=Developer+Guide\u0026amp;title=Deploy+Your+Server\u0026amp;description=Launch+locally%2C+deploy+to+a+cloud+provider%2C+or+export+a+portable+server.\u0026amp;theme=bde185ca85eb94a198a8ed1e\u0026amp;signature=00f26b28bae30fba5693a6a2127a2d528501f87b551df979eb128a01d7826f4d\">\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/larkup/O-SbaNQDkZFAZqod/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Larkup\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://larkup.de/documentation/developer/deploy\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/documentation/developer/deploy.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://larkup.de/#organization\",\"name\":\"Larkup\",\"url\":\"https://larkup.de\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/larkup/J0lnyYIE7T-PEajl/documentation/logo/logo-light2.png?fit=max\u0026auto=format\u0026n=J0lnyYIE7T-PEajl\u0026q=85\u0026s=a8d0f36de4d9d0698e8a6ee73e6bf1aa\"}},{\"@type\":\"WebSite\",\"@id\":\"https://larkup.de#website\",\"name\":\"Larkup\",\"url\":\"https://larkup.de\",\"publisher\":{\"@id\":\"https://larkup.de/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://larkup.de/documentation/developer/deploy#webpage\",\"url\":\"https://larkup.de/documentation/developer/deploy\",\"name\":\"Deploy Your Server\",\"description\":\"Launch locally, deploy to a cloud provider, or export a portable server.\",\"dateModified\":\"2026-08-20T01:06:55.804Z\",\"isPartOf\":{\"@id\":\"https://larkup.de#website\"},\"breadcrumb\":{\"@id\":\"https://larkup.de/documentation/developer/deploy#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://larkup.de/documentation/developer/deploy#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Developer Guide\",\"item\":\"https://larkup.de/documentation/developer/agent-runtime-api\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deploy Your Server\",\"item\":\"https://larkup.de/documentation/developer/deploy\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://larkup.de/documentation/developer/deploy#article\",\"headline\":\"Deploy Your Server\",\"name\":\"Deploy Your Server\",\"description\":\"Launch locally, deploy to a cloud provider, or export a portable server.\",\"url\":\"https://larkup.de/documentation/developer/deploy\",\"mainEntityOfPage\":{\"@id\":\"https://larkup.de/documentation/developer/deploy#webpage\"},\"dateModified\":\"2026-08-20T01:06:55.804Z\",\"publisher\":{\"@id\":\"https://larkup.de/#organization\"},\"isPartOf\":{\"@id\":\"https://larkup.de#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Larkup\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Larkup","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/documentation"},{"title":"Installation","href":"/documentation/guide/installation"},{"title":"Quickstart","href":"/documentation/guide/quickstart"}]},{"group":"Use Cases","pages":[{"title":"Build Your RAG Server","href":"/documentation/guide/build-rag-server"},{"title":"Web Crawl at Scale","href":"/documentation/guide/data-loading"},{"title":"Chat with Video","href":"/documentation/guide/video-chat"},{"title":"Talk to Your Custom AI from Social Media","sidebarTitle":"AI in Social Media","href":"/documentation/guide/public-webhooks"},{"title":"Sign and Fill Documents","href":"/documentation/guide/document-editor"},{"title":"Analyze Tabular Data","href":"/documentation/guide/data-analysis"}]},{"group":"Developer Guide","pages":[{"title":"Agent Server API","description":"Launch a Larkup Agent Server, customize it, and connect through REST, the SDK, or Scalar.","href":"/documentation/developer/agent-runtime-api"},{"title":"Deploy Your Server","href":"/documentation/developer/deploy"},{"title":"CLI Reference","description":"Build, index, test, and deploy Larkup servers from the terminal.","href":"/documentation/developer/cli"},{"title":"Configuration Reference","href":"/documentation/developer/configuration"}]}]},{"tab":"Marketplace","pages":[{"title":"Marketplace","href":"/documentation/marketplace/overview"}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/documentation/sdk/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/documentation/api-reference/overview"}]}]},"title":"Deploy Your Server - Larkup","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-COGkNuA6.js","DynamicMarkdown-85clUA0i.js","zoom-image-lightbox-BZxD9MAj.js","lightbox-handle-r17bVUz3.js"]}