All Kubernetes clusters are unique and have different sets of capabilities. See the Kubernetes page to understand the basic requirements for Kubernetes cluster before you start deploying.
The Artifacts page explains Helm charts as our distribution model, which is compatible with many deployment workflows and CI/CD tools. On this stage you should register necessary Helm repositories and prepare the initial configurations for the releases.If you are starting from scratch and don’t have a strong tooling preference - we recommend you to try the “infrastructure-as-code” approach that is described in our Quick Start guide.
We recommend you to deploy to get things running early. It’s always easier to progressively customize a working deployment than to plan out everything ahead.On this stage we recommend you to deploy the Node using in-memory transient storage and dummy auth which we will subsequently replace with real implementations.If you are using our deployment template, once again follow the Quick Start guide.
Most companies will have their own preferences for storage, databases, security, and disaster recovery workflows. For this reason in a production deployment we expect you to provide storage to Kamu Node. All storage solutions we provide with our deployment examples are meant for demonstrative purposes only and must not be used for data of any value.See Storage page for the list of supported storage systems for data lake and operational data.
Kamu Node is designed to provide optimal performance of all workloads according to the available cluster capacity, applying back pressure when needed. If you are deploying the node in a Kubernetes cluster shared with other applications you may want to restrict the resource usage of the node to prevent applications from “starving” one another. Limiting capacity can also be done for cost management.See Capacity page to understand available configuration options and the back pressure strategies the node uses when resources are insufficient.
Now that you have a working deployment, see Operator Manual to learn how to keep it up-to-date and troubleshoot issues.
Last modified on March 15, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Kamu Docs","colors":{"primary":"#ec6e2a","light":"#ec6e2a","dark":"#ec6e2a"},"logo":{"light":"https://mintcdn.com/kamu/j1tx5fgzyFHd1DYS/images/kamu-logo-light.svg?fit=max\u0026auto=format\u0026n=j1tx5fgzyFHd1DYS\u0026q=85\u0026s=a09261b617da6e1515dea3d28495f633","dark":"https://mintcdn.com/kamu/j1tx5fgzyFHd1DYS/images/kamu-logo-dark.svg?fit=max\u0026auto=format\u0026n=j1tx5fgzyFHd1DYS\u0026q=85\u0026s=8c6d0d7ffa23ef050859453f64354192"},"favicon":"https://mintcdn.com/kamu/j1tx5fgzyFHd1DYS/images/favicon.svg?fit=max\u0026auto=format\u0026n=j1tx5fgzyFHd1DYS\u0026q=85\u0026s=a7b01f8f352427f5a4afe3aef1f8a9d3","background":{"color":{"dark":"#050C1E"}},"navbar":{"links":[{"href":"https://discord.gg/nU6TXRQNXC","label":"Get Help"}],"primary":{"type":"button","label":"Install","href":"/cli/install/"}},"footer":{"socials":{"github":"https://github.com/kamu-data","discord":"https://discord.gg/nU6TXRQNXC","youtube":"https://www.youtube.com/@kamudata","linkedin":"https://www.linkedin.com/company/kamu-data","medium":"https://medium.com/kamu-data","bluesky":"https://bsky.app/profile/kamu.dev","x":"https://x.com/kamu_data"},"links":[{"header":"Company","items":[{"label":"Blog","href":"https://kamu.dev/blog"},{"label":"Careers","href":"https://kamu.dev/jobs"}]}]},"seo":{"metatags":{"canonical":"https://docs.kamu.dev"}},"styling":{"eyebrows":"breadcrumbs","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kamu","hasAudioNarration":false,"actualSubdomain":"kamu","customDomains":["docs.kamu.dev"],"gitSource":{"type":"github","owner":"kamu-data","repo":"kamu-docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad05633011b02bffcb4463d","collectionId":"0127742b-6059-4668-b046-f443923b1bdd","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad05633011b02bffcb4463d"},"entitlements":{},"buildId":"6ad05633011b02bffcb4463d","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"Guides","count":75},{"language":"default","tag":"Reference","count":42},{"language":"default","tag":"Open Data Fabric","count":39},{"language":"default","tag":"Kamu CLI","count":31},{"language":"default","tag":"RFCs","count":22},{"language":"default","tag":"Kamu Node","count":17},{"language":"default","tag":"Specification","count":15},{"language":"default","tag":"APIs","count":13},{"language":"default","tag":"Get Started","count":12},{"language":"default","tag":"Datasets","count":10}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"a.card:is(.dark *),div.card:is(.dark *){background:#09162d}a.card:is(.light *),div.card:is(.light *){background:#fafafa}a:has(svg[style*=\"wrench.svg\"]){pointer-events:none;opacity:.7}button:has(svg[style*=\"wrench.svg\"]){opacity:.7}a:has(svg[style*=\"wrench.svg\"])>div:first-child,button:has(svg[style*=\"wrench.svg\"])>svg[style*=\"wrench.svg\"]{order:2;margin-left:auto}.prose a.glossary-term:is(.dark *, .light *){color:inherit;font-weight:inherit;border-bottom:2px dotted #325495}.prose a.schema-object:is(.dark *, .light *){color:inherit;font-weight:inherit;border-bottom:2px dotted #2c802c}h4.project-title:is(.dark *, .light *){display:block;text-align:center}div.badges a,h4.project-title a{border-bottom:0}a.project-quicklink:is(.dark *, .light *){font-size:15px;font-weight:300;color:#ec6e2a;border-bottom:0}.prose div img:is(\n [src*=\"projects/odf.svg\"],\n [src*=\"projects/kamu-cli.svg\"],\n [src*=\"projects/kamu-node.svg\"],\n [src*=\"projects/kamu-platform.svg\"]\n ){display:block;margin:30px auto 0;height:100px;width:auto}div.badges{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px;margin:20px}div.badges img{display:inline;margin:0}"}],"page":{"pagePath":"node/deploy/manual","slug":"/node/deploy/manual","pageMetadata":{"title":"Deployment Manual","description":null,"href":"/node/deploy/manual"},"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`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,Info}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);return _jsxs(_Fragment,{children:[_jsxs(Info,{children:[_jsxs(_components.p,{children:[`Want to try out Kamu Node in a `,_jsx(_components.strong,{children:`local environment`}),`?`]}),_jsxs(_components.p,{children:[`Then check out the `,_jsx(_components.a,{href:`/node/quick-start`,children:`Quick Start`}),` guide.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`recommended-steps`,children:`Recommended Steps`}),`\n`,_jsx(_components.p,{children:`Deployment and customization of a production environment is an iterative process, but you may want to roughly follow these steps:`}),`\n`,_jsx(Heading,{level:`3`,id:`1-prepare-your-kubernetes-cluster`,children:`1. Prepare your Kubernetes cluster`}),`\n`,_jsxs(_components.p,{children:[`All Kubernetes clusters are unique and have different sets of capabilities. See the `,_jsx(_components.a,{href:`/node/deploy/k8s`,children:`Kubernetes`}),` page to understand the basic requirements for Kubernetes cluster before you start deploying.`]}),`\n`,_jsx(Heading,{level:`3`,id:`2-prepare-artifacts-\u0026-configuration`,children:`2. Prepare artifacts \u0026 configuration`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`/node/deploy/artifacts`,children:`Artifacts`}),` page explains Helm charts as our distribution model, which is compatible with many deployment workflows and CI/CD tools. On this stage you should register necessary Helm repositories and prepare the initial configurations for the releases.`]}),`\n`,_jsxs(_components.p,{children:[`If you are starting from scratch and don’t have a strong tooling preference - we recommend you to try the “infrastructure-as-code” approach that is described in our `,_jsx(_components.a,{href:`/node/quick-start`,children:`Quick Start`}),` guide.`]}),`\n`,_jsx(Heading,{level:`3`,id:`3-deploy-a-minimal-environment`,children:`3. Deploy a minimal environment`}),`\n`,_jsx(_components.p,{children:`We recommend you to deploy to get things running early. It’s always easier to progressively customize a working deployment than to plan out everything ahead.`}),`\n`,_jsx(_components.p,{children:`On this stage we recommend you to deploy the Node using in-memory transient storage and dummy auth which we will subsequently replace with real implementations.`}),`\n`,_jsxs(_components.p,{children:[`If you are using our deployment template, once again follow the `,_jsx(_components.a,{href:`/node/quick-start`,children:`Quick Start`}),` guide.`]}),`\n`,_jsx(Heading,{level:`3`,id:`4-customize-authentication-\u0026-authorization`,children:`4. Customize authentication \u0026 authorization`}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/node/deploy/auth`,children:`Authentication \u0026 Authorization`}),` page for available options of providing own or integrating with 3rd party auth providers.`]}),`\n`,_jsx(Heading,{level:`3`,id:`5-customize-dataset-and-operational-storage`,children:`5. Customize dataset and operational storage`}),`\n`,_jsx(_components.p,{children:`Most companies will have their own preferences for storage, databases, security, and disaster recovery workflows. For this reason in a production deployment we expect you to provide storage to Kamu Node. All storage solutions we provide with our deployment examples are meant for demonstrative purposes only and must not be used for data of any value.`}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/node/deploy/storage`,children:`Storage`}),` page for the list of supported storage systems for data lake and operational data.`]}),`\n`,_jsx(Heading,{level:`3`,id:`6-create-a-capacity-plan-and-configure-resources`,children:`6. Create a capacity plan and configure resources`}),`\n`,_jsx(_components.p,{children:`Kamu Node is designed to provide optimal performance of all workloads according to the available cluster capacity, applying back pressure when needed. If you are deploying the node in a Kubernetes cluster shared with other applications you may want to restrict the resource usage of the node to prevent applications from “starving” one another. Limiting capacity can also be done for cost management.`}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/node/deploy/capacity`,children:`Capacity`}),` page to understand available configuration options and the back pressure strategies the node uses when resources are insufficient.`]}),`\n`,_jsx(Heading,{level:`3`,id:`7-security-checklist`,children:`7. Security checklist`}),`\n`,_jsxs(_components.p,{children:[`Security of the deployment is your responsibility, but our `,_jsx(_components.a,{href:`/node/deploy/security`,children:`Security`}),` page provides a list of things to watch out for.`]}),`\n`,_jsx(Heading,{level:`3`,id:`8-further-customization`,children:`8. Further customization`}),`\n`,_jsxs(_components.p,{children:[`Once you have a fully working secure deployment you can further customize it to your liking. See `,_jsx(_components.a,{href:`/node/deploy/customization`,children:`Customization`}),` page for the list of available options.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what’s-next`,children:`What’s Next?`}),`\n`,_jsxs(_components.p,{children:[`Now that you have a working deployment, see `,_jsx(_components.a,{href:`/node/operator`,children:`Operator Manual`}),` to learn how to keep it up-to-date and troubleshoot issues.`]})]})}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":"Deployment Manual","description":null,"href":"/node/deploy/manual"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Recommended Steps","slug":"recommended-steps","depth":2,"children":[{"title":"1. Prepare your Kubernetes cluster","slug":"1-prepare-your-kubernetes-cluster","depth":3,"children":[]},{"title":"2. Prepare artifacts \u0026 configuration","slug":"2-prepare-artifacts-\u0026-configuration","depth":3,"children":[]},{"title":"3. Deploy a minimal environment","slug":"3-deploy-a-minimal-environment","depth":3,"children":[]},{"title":"4. Customize authentication \u0026 authorization","slug":"4-customize-authentication-\u0026-authorization","depth":3,"children":[]},{"title":"5. Customize dataset and operational storage","slug":"5-customize-dataset-and-operational-storage","depth":3,"children":[]},{"title":"6. Create a capacity plan and configure resources","slug":"6-create-a-capacity-plan-and-configure-resources","depth":3,"children":[]},{"title":"7. Security checklist","slug":"7-security-checklist","depth":3,"children":[]},{"title":"8. Further customization","slug":"8-further-customization","depth":3,"children":[]}]},{"title":"What’s Next?","slug":"what’s-next","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"kamu","siteName":"Kamu Docs","title":"Deployment Manual - Kamu Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-15T04:13:50.259Z","gitLastModified":"2026-03-15T00:26:17.000Z","originalFileLocation":"node/deploy/manual.md"},"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=\"application-name\" content=\"Kamu Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kamu/FxhmdHpAfy0cwcpV/_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/kamu/FxhmdHpAfy0cwcpV/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kamu/FxhmdHpAfy0cwcpV/_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/kamu/FxhmdHpAfy0cwcpV/_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/kamu/FxhmdHpAfy0cwcpV/_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/kamu/FxhmdHpAfy0cwcpV/_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/kamu/FxhmdHpAfy0cwcpV/_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/kamu/FxhmdHpAfy0cwcpV/_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/kamu/FxhmdHpAfy0cwcpV/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Deployment Manual - Kamu Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kamu Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kamu.dev/node/deploy/manual\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kamu.mintlify.app/_mintlify/api/og/v2?division=Deployment\u0026amp;title=Deployment+Manual\u0026amp;theme=4425de33767c8dc7c1d6072e\u0026amp;signature=8610ad500af5ce8e17d84be65789591a816e94ebf578e2e57d1f7dbbd9b948cd\">\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=\"Deployment Manual - Kamu Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kamu.mintlify.app/_mintlify/api/og/v2?division=Deployment\u0026amp;title=Deployment+Manual\u0026amp;theme=4425de33767c8dc7c1d6072e\u0026amp;signature=8610ad500af5ce8e17d84be65789591a816e94ebf578e2e57d1f7dbbd9b948cd\">\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/kamu/FxhmdHpAfy0cwcpV/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kamu Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ec6e2a\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kamu.dev/node/deploy/manual\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/node/deploy/manual.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kamu.dev/#organization\",\"name\":\"Kamu Docs\",\"url\":\"https://docs.kamu.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kamu/j1tx5fgzyFHd1DYS/images/kamu-logo-light.svg?fit=max\u0026auto=format\u0026n=j1tx5fgzyFHd1DYS\u0026q=85\u0026s=a09261b617da6e1515dea3d28495f633\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kamu.dev#website\",\"name\":\"Kamu Docs\",\"url\":\"https://docs.kamu.dev\",\"publisher\":{\"@id\":\"https://docs.kamu.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kamu.dev/node/deploy/manual#webpage\",\"url\":\"https://docs.kamu.dev/node/deploy/manual\",\"name\":\"Deployment Manual\",\"dateModified\":\"2026-03-15T00:26:17.000Z\",\"isPartOf\":{\"@id\":\"https://docs.kamu.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kamu.dev/node/deploy/manual#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kamu.dev/node/deploy/manual#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Kamu Node\",\"item\":\"https://docs.kamu.dev/node/about\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deployment Manual\",\"item\":\"https://docs.kamu.dev/node/deploy/manual\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.kamu.dev/node/deploy/manual#article\",\"headline\":\"Deployment Manual\",\"name\":\"Deployment Manual\",\"url\":\"https://docs.kamu.dev/node/deploy/manual\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kamu.dev/node/deploy/manual#webpage\"},\"dateModified\":\"2026-03-15T00:26:17.000Z\",\"publisher\":{\"@id\":\"https://docs.kamu.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kamu.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kamu Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kamu Docs","nav":{"global":{"anchors":[]},"tabs":[{"tab":"Guides","icon":"person-chalkboard","groups":[{"group":"Get Started","pages":[{"title":"Welcome to Kamu!","sidebarTitle":"Welcome","icon":"hand-spock","mode":"wide","href":"/start/welcome"},{"title":"Frequently asked questions","sidebarTitle":"FAQ","icon":"circle-question","href":"/start/faq"},{"title":"First Steps","icon":"list-ol","href":"/start/first-steps"},{"title":"Learning Materials","icon":"person-chalkboard","mode":"wide","href":"/start/learning-materials"},{"title":"Online Tutorial","icon":"play","href":"/start/tutorial"},{"group":"Examples","icon":"book-open","root":{"title":"Examples","href":"/examples/index"},"pages":[{"title":"COVID-19 Daily Cases","href":"/examples/covid19"},{"title":"Currency Conversion","href":"/examples/currency-conversion"},{"title":null,"href":"/examples/housing-prices"},{"title":null,"href":"/examples/leaderboard"},{"title":"Overdue Order Shipments","href":"/examples/overdue-shipments"},{"title":null,"href":"/examples/stock-trading"},{"title":null,"href":"/examples/web3-data"}]}]},{"group":"Kamu CLI","pages":[{"title":"About","href":"/cli/about"},{"title":"Install","href":"/cli/install"},{"title":"Quick Start","href":"/cli/quick-start"},{"group":"Ingesting Data","root":{"title":"Ingesting Data","href":"/cli/ingest/index"},"pages":[{"title":"Input Formats","href":"/cli/ingest/input-formats"},{"title":"Polling Sources","href":"/cli/ingest/polling-source"},{"title":"Push Sources","href":"/cli/ingest/push-source"},{"title":"Merge Strategies","href":"/cli/ingest/merge-strategies"},{"title":"Blockchain Sources","href":"/cli/ingest/blockchain-source"}]},{"group":"Transforming Data","root":{"title":"Transforming Data","href":"/cli/transform/index"},"pages":[{"title":"Projections","icon":"wrench","href":"/cli/transform/projections"},{"title":"Retractions \u0026 Corrections","href":"/cli/transform/retractions-corrections"},{"title":"Streaming Aggregations","icon":"wrench","href":"/cli/transform/aggregations"},{"title":"Stream-to-Stream Joins","icon":"wrench","href":"/cli/transform/joins-s2s"},{"title":"Temporal Table Joins","icon":"wrench","href":"/cli/transform/joins-tt"},{"title":"Watermarks","icon":"wrench","href":"/cli/transform/watermarks"},{"title":"Geospatial Data","icon":"wrench","href":"/cli/transform/gis-data"}]},{"title":"Exploring Data","href":"/cli/explore"},{"group":"Sharing \u0026 Collaboration","root":{"title":"Sharing \u0026 Collaboration","href":"/cli/collab/index"},"pages":[{"title":"Repositories","href":"/cli/collab/repositories"},{"title":"Privacy and Permissions","icon":"wrench","href":"/cli/collab/privacy-and-permissions"},{"title":"Sharing datasets with IPFS","href":"/cli/collab/ipfs"},{"title":"Validity of Data","href":"/cli/collab/validity"},{"title":"Provenance","icon":"wrench","href":"/cli/collab/provenance"}]},{"group":"Dataset Evolution","icon":"wrench","pages":[{"title":"Schema Evolution","icon":"wrench","href":"/cli/evolve/schema"},{"title":"Root Dataset Evolution","icon":"wrench","href":"/cli/evolve/root"},{"title":"Derivative Dataset Evolution","icon":"wrench","href":"/cli/evolve/deriv"}]},{"group":"Handling Bad Data","icon":"wrench","pages":[{"title":"Retractions \u0026 Corrections","icon":"wrench","href":"/cli/bad-data/retractions-corrections"},{"title":"Bad Data on Ingestion","icon":"wrench","href":"/cli/bad-data/ingest-errors"},{"title":"Bad Data in Upstream Datasets","icon":"wrench","href":"/cli/bad-data/upstream"},{"title":"PII and Sensitive Data","icon":"wrench","href":"/cli/bad-data/pii"}]},{"title":"Troubleshooting","href":"/cli/troubleshooting"}]},{"group":"Kamu Node","pages":[{"title":"About","href":"/node/about"},{"title":"Quick Start","href":"/node/quick-start"},{"title":"Architecture","description":null,"href":"/node/architecture"},{"group":"Deployment","pages":[{"title":"Deployment Manual","href":"/node/deploy/manual"},{"title":"Kubernetes Setup","icon":"wrench","description":null,"href":"/node/deploy/k8s"},{"title":"Artifacts","href":"/node/deploy/artifacts"},{"title":"Auth","icon":"wrench","href":"/node/deploy/auth"},{"title":"Storage","href":"/node/deploy/storage"},{"title":"Capacity Planning","icon":"wrench","href":"/node/deploy/capacity"},{"title":"Security","icon":"wrench","href":"/node/deploy/security"},{"title":"Customization","icon":"wrench","href":"/node/deploy/customization"}]},{"group":"Operations","icon":"wrench","pages":[{"title":"Monitoring","icon":"wrench","href":"/node/operator/monitoring"},{"title":"Upgrades","icon":"wrench","href":"/node/operator/upgrades"},{"title":"Performance Tips","icon":"wrench","href":"/node/operator/performance"}]},{"title":"Verifiable Queries","href":"/node/commitments"},{"title":"Troubleshooting","icon":"wrench","href":"/node/troubleshoot"}]},{"group":"Kamu Web Platform","pages":[{"title":"About","href":"/platform/about"},{"title":"Accounts \u0026 Organizations","icon":"wrench","href":"/platform/accounts"},{"group":"Datasets","icon":"wrench","pages":[{"title":"Attachments","icon":"wrench","href":"/platform/datasets/attachments"},{"title":"Licenses","icon":"wrench","href":"/platform/datasets/licenses"}]},{"group":"Data Exploration","icon":"wrench","pages":[{"title":"Querying","icon":"wrench","href":"/platform/data/querying"},{"title":"Notebooks","icon":"wrench","href":"/platform/data/notebooks"}]},{"title":"Privacy","icon":"wrench","href":"/platform/privacy"},{"group":"Flow System","icon":"wrench","pages":[{"title":"Overview","icon":"wrench","href":"/platform/flows/overview"}]},{"group":"Administration","icon":"wrench","pages":[{"title":"Monitoring","icon":"wrench","href":"/platform/admin/monitoring"},{"title":"Tasks \u0026 Executors","icon":"wrench","href":"/platform/admin/tasks-executors"}]}]},{"group":"General","pages":[{"title":"Project Status","icon":"temperature-full","href":"/general/project-status"},{"title":"Supported Data Engines","icon":"database","href":"/general/supported-engines"},{"title":"Community","icon":"user-group","href":"/general/community"},{"title":"Contributing","icon":"heart","href":"/general/contrib"},{"title":"Licensing Terms","icon":"scroll","href":"/general/licensing"},{"title":"Terms of Service","icon":"scale-balanced","href":"/general/terms"},{"title":"Glossary","icon":"arrow-down-a-z","href":"/general/glossary"},{"icon":"pen","title":null,"href":"/general/typography"}]}]},{"tab":"Reference","icon":"book-open-cover","pages":[{"title":"Reference","href":"/odf/about"}]},{"tab":"APIs","icon":"code","pages":[{"title":"APIs","href":"/api/overview"}]},{"tab":"Integrations","icon":"network-wired","pages":[{"title":"Integrations","href":"/integrations/overview"}]}]},"title":"Deployment Manual - Kamu Docs","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":[],"chunks":[]}