Below steps will guide you through deploying Multiwoven on a server using Docker Compose. We require PostgreSQL database to store meta data for Multiwoven. We will use Docker Compose to deploy Multiwoven and PostgreSQL.Important Note: TLS is mandatory for deployment. To successfully deploy the Platform via docker-compose, you must have access to a DNS record and obtain a valid TLS certificate from a Certificate Authority. You can acquire a free TLS certificate using tools like CertBot, Let’s Encrypt, or other ACME-based solutions. If using a reverse proxy (e.g., Nginx or Traefik), consider integrating an automated certificate management tool such as letsencrypt-nginx-proxy-companion or Traefik’s built-in Let’s Encrypt support.
Note: If you are setting up Multiwoven on your local machine, you can skip this section and refer to Local Setup section.
Rename the file .env.production to .env and update the PostgreSQL environment variables.
DB_HOST - Database HostDB_USERNAME - Database UsernameDB_PASSWORD - Database PasswordThe default port for PostgreSQL is 5432. If you are using a different port, update the DB_PORT environment variable.
If you are using a custom domain, make sure to update the API_HOST and UI_HOST environment variables in the .env file.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"AI Squared","colors":{"primary":"#00249c","light":"#ffffff","dark":"#00249c"},"logo":{"light":"https://mintcdn.com/multiwoven-74/-MbwV9-QpicPIrse/logo/ai-squared-docs-logo-light.svg?fit=max\u0026auto=format\u0026n=-MbwV9-QpicPIrse\u0026q=85\u0026s=ca08017182cbe96397a10feab3cfeda6","dark":"https://mintcdn.com/multiwoven-74/-MbwV9-QpicPIrse/logo/ai-squared-docs-logo-dark.svg?fit=max\u0026auto=format\u0026n=-MbwV9-QpicPIrse\u0026q=85\u0026s=c68b55937e803881c30f296d78422e53"},"favicon":"https://mintcdn.com/multiwoven-74/-MbwV9-QpicPIrse/favicon.svg?fit=max\u0026auto=format\u0026n=-MbwV9-QpicPIrse\u0026q=85\u0026s=d664c5e29af113255a0beffa1adc634c","navbar":{"links":[{"href":"https://squared.ai","label":"Book a Demo"}],"primary":{"type":"button","label":"Back to App","href":"https://app.squared.ai"}},"footer":{"socials":{"github":"https://github.com/Multiwoven/multiwoven","linkedin":"https://www.linkedin.com/company/aisquaredinc"}},"styling":{"latex":false},"integrations":{"mixpanel":{"projectToken":"cd589b1602a01416f4cc17aa04accc66"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"multiwoven-74","hasAudioNarration":false,"actualSubdomain":"multiwoven-74","customDomains":["docs.squared.ai"],"gitSource":{"type":"github","owner":"multiwoven","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae83b1f6e6e556c3ab68690","collectionId":"00447bbb-3cbd-4642-b21e-5238f8861193","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae83b1f6e6e556c3ab68690"},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae83b1f6e6e556c3ab68690","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Data Movement","count":65},{"language":"default","tag":"Product Updates","count":62},{"language":"default","tag":"Destinations","count":37},{"language":"default","tag":"Business Applications","count":37},{"language":"default","tag":"Developers","count":30},{"language":"default","tag":"AI Activation","count":24},{"language":"default","tag":"Deployment \u0026 Security","count":22},{"language":"default","tag":"Sources","count":20},{"language":"default","tag":"Data Sources","count":19},{"language":"default","tag":"Deployment","count":17}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".border-primary{--tw-border-opacity: 1;border-color:rgb(var(--primary) / var(--tw-border-opacity));margin-bottom:2px;border-bottom-width:0.1875rem}#topbar-cta-button a{display:flex;align-items:center;padding:0.475rem 1rem!important;gap:0.5rem;color:#fff!important;border-radius:0.25rem;font-weight:500;letter-spacing:0.4px}"}],"page":{"pagePath":"deployment-and-security/setup/docker-compose","slug":"/deployment-and-security/setup/docker-compose","pageMetadata":{"title":"Docker","description":"Deploying Multiwoven using Docker","href":"/deployment-and-security/setup/docker-compose"},"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: \"Deploying Multiwoven using Docker\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,Tab,Tabs,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Below steps will guide you through deploying Multiwoven on a server using Docker Compose. We require PostgreSQL database to store meta data for Multiwoven. We will use Docker Compose to deploy Multiwoven and PostgreSQL.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Important Note:`}),` TLS is mandatory for deployment. To successfully deploy the Platform via docker-compose, you must have access to a DNS record and obtain a valid TLS certificate from a Certificate Authority. You can acquire a free TLS certificate using tools like CertBot, Let’s Encrypt, or other ACME-based solutions. If using a reverse proxy (e.g., Nginx or Traefik), consider integrating an automated certificate management tool such as letsencrypt-nginx-proxy-companion or Traefik’s built-in Let’s Encrypt support.`]}),`\n`,_jsxs(Tip,{children:[`Note: If you are setting up Multiwoven on your local machine, you can skip this section and refer to `,_jsx(_components.a,{href:`/guides/setup/docker-compose-dev`,children:`Local Setup`}),` section.`]}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://docs.docker.com/get-docker/`,children:`Docker`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://docs.docker.com/compose/install/`,children:`Docker Compose`})}),`\n`]}),`\n`,_jsx(Info,{children:` All our Docker images are available in x86_64 architecture, make sure your server supports x86_64 architecture.`}),`\n`,_jsx(Heading,{level:`2`,id:`deployment-options`,children:`Deployment options`}),`\n`,_jsx(_components.p,{children:`Multiwoven can be deployed using two different options for PostgreSQL database.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`In-built PostgreSQL`,id:`in-built-postgresql`,children:[_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Create a new directory for Multiwoven and navigate to it.`}),`\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:`mkdir`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` multiwoven`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`cd`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` multiwoven`})]}),`\n`]})})}),_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsxs(_components.li,{children:[`Download the production `,_jsx(_components.code,{children:`docker-compose.yml`}),` file from the following link.`]}),`\n`]}),_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:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -LO`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://multiwoven-deployments.s3.amazonaws.com/docker/docker-compose/docker-compose.yaml`})]}),`\n`]})})}),_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsxs(_components.li,{children:[`Download the `,_jsx(_components.code,{children:`.env.production`}),` file from the following link.`]}),`\n`]}),_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:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -LO`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://multiwoven-deployments.s3.amazonaws.com/docker/docker-compose/.env.production`})]}),`\n`]})})}),_jsxs(_components.ol,{start:`4`,children:[`\n`,_jsx(_components.li,{children:`Rename the file .env.production to .env and update the environment variables if required.`}),`\n`]}),_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:`mv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .env.production`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .env`})]}),`\n`]})})}),_jsxs(_components.ol,{start:`5`,children:[`\n`,_jsx(_components.li,{children:`Start the Multiwoven using the following command.`}),`\n`]}),_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:`docker-compose`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`})]}),`\n`]})})}),_jsxs(_components.ol,{start:`6`,children:[`\n`,_jsx(_components.li,{children:`Stopping Multiwoven`}),`\n`]}),_jsx(_components.p,{children:`To stop the Multiwoven, use the following command.`}),_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:`docker-compose`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` down`})]}),`\n`]})})}),_jsxs(_components.ol,{start:`7`,children:[`\n`,_jsx(_components.li,{children:`Upgrading Multiwoven`}),`\n`]}),_jsx(_components.p,{children:`When a new version of Multiwoven is released, you can upgrade the Multiwoven using the following command.`}),_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:`docker-compose`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pull`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`docker-compose`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`})]}),`\n`]})})}),_jsxs(Tip,{children:[` Make sure to run the above command from the same directory where the `,_jsx(_components.code,{children:`docker-compose.yml`}),` file is present.`]})]}),_jsx(Tab,{title:`Cloud PostgreSQL`,id:`cloud-postgresql`,children:_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Create a new directory for Multiwoven and navigate to it.`}),`\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:`mkdir`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` multiwoven`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`cd`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` multiwoven`})]}),`\n`]})})}),`\n`,_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsxs(_components.li,{children:[`Download the production `,_jsx(_components.code,{children:`docker-compose.yml`}),` file from the following link.`]}),`\n`]}),`\n`,_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:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -LO`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://multiwoven-deployments.s3.amazonaws.com/docker/docker-compose/docker-compose-cloud-postgres.yaml`})]}),`\n`]})})}),`\n`,_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsxs(_components.li,{children:[`Rename the file .env.production to .env and update the `,_jsx(_components.strong,{children:`PostgreSQL`}),` environment variables.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`DB_HOST`}),` - Database Host`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`DB_USERNAME`}),` - Database Username`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`DB_PASSWORD`}),` - Database Password`]}),`\n`,_jsxs(_components.p,{children:[`The default port for PostgreSQL is 5432. If you are using a different port, update the `,_jsx(_components.code,{children:`DB_PORT`}),` environment variable.`]}),`\n`,_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:`mv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .env.production`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .env`})]}),`\n`]})})}),`\n`,_jsxs(_components.ol,{start:`4`,children:[`\n`,_jsx(_components.li,{children:`Start the Multiwoven using the following command.`}),`\n`]}),`\n`,_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:`docker-compose`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`})]}),`\n`]})})}),`\n`]}),`\n`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`accessing-multiwoven`,children:`Accessing Multiwoven`}),`\n`,_jsx(_components.p,{children:`Once the Multiwoven is up and running, you can access it using the following URL and port.`}),`\n`,_jsx(_components.p,{children:`Multiwoven Server URL:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`http`,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:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`http://\u003cserver-ip>:3000`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Multiwoven UI Service:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`http`,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:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`http://\u003cserver-ip>:8000`})}),`\n`]})})}),`\n`,_jsxs(Info,{children:[`If you are using a custom domain you can update the `,_jsx(_components.code,{children:`API_HOST`}),` and `,_jsx(_components.code,{children:`UI_HOST`}),` environment variable in the `,_jsx(_components.code,{children:`.env`}),` file.`]}),`\n`,_jsx(Heading,{level:`3`,id:`important-considerations`,children:`Important considerations`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Make sure to update the environment variables in the `,_jsx(_components.code,{children:`.env`}),` file before starting the Multiwoven.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Make sure to take regular `,_jsx(_components.strong,{children:`backups`}),` of the PostgreSQL database.`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`To restore the backup, you can use the following command.`}),`\n`,_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:`cat`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dump.sql`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` docker`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` exec`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -i`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --user`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` postgres`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`postgres-container-nam`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`e`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` psql`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -U`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` postgres`})]}),`\n`]})})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`If you are using a custom domain, make sure to update the `,_jsx(_components.code,{children:`API_HOST`}),` and `,_jsx(_components.code,{children:`UI_HOST`}),` environment variables in the `,_jsx(_components.code,{children:`.env`}),` file.`]}),`\n`]})]})}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":"Docker","description":"Deploying Multiwoven using Docker","href":"/deployment-and-security/setup/docker-compose"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Deployment options","slug":"deployment-options","depth":2,"children":[]},{"title":"Accessing Multiwoven","slug":"accessing-multiwoven","depth":2,"children":[{"title":"Important considerations","slug":"important-considerations","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/multiwoven-74/aaa40dfb088f7973/docs-bot.js"],"subdomain":"multiwoven-74","siteName":"AI Squared","title":"Docker - AI Squared","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2025-10-08T09:27:36.291Z","originalFileLocation":"deployment-and-security/setup/docker-compose.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=\"Deploying Multiwoven using Docker\">\u003cmeta data-mint-head name=\"application-name\" content=\"AI Squared\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/multiwoven-74/NkrXgVYPR_dCevS6/_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/multiwoven-74/NkrXgVYPR_dCevS6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/multiwoven-74/NkrXgVYPR_dCevS6/_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/multiwoven-74/NkrXgVYPR_dCevS6/_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/multiwoven-74/NkrXgVYPR_dCevS6/_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/multiwoven-74/NkrXgVYPR_dCevS6/_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/multiwoven-74/NkrXgVYPR_dCevS6/_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/multiwoven-74/NkrXgVYPR_dCevS6/_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/multiwoven-74/NkrXgVYPR_dCevS6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Docker - AI Squared\">\u003cmeta data-mint-head property=\"og:description\" content=\"Deploying Multiwoven using Docker\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"AI Squared\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.squared.ai/deployment-and-security/setup/docker-compose\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://multiwoven-74.mintlify.app/_mintlify/api/og/v2?division=Self-Hosted+%28On-Premise%29\u0026amp;title=Docker\u0026amp;description=Deploying+Multiwoven+using+Docker\u0026amp;theme=f527afd5024577da42908e7f\u0026amp;signature=977f85ff4841c8f599cbe489b9bdfc640c916ae5a51128b3617401265f7e78bb\">\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=\"Docker - AI Squared\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Deploying Multiwoven using Docker\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://multiwoven-74.mintlify.app/_mintlify/api/og/v2?division=Self-Hosted+%28On-Premise%29\u0026amp;title=Docker\u0026amp;description=Deploying+Multiwoven+using+Docker\u0026amp;theme=f527afd5024577da42908e7f\u0026amp;signature=977f85ff4841c8f599cbe489b9bdfc640c916ae5a51128b3617401265f7e78bb\">\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/multiwoven-74/NkrXgVYPR_dCevS6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"AI Squared\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00249c\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.squared.ai/deployment-and-security/setup/docker-compose\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/deployment-and-security/setup/docker-compose.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.squared.ai/#organization\",\"name\":\"AI Squared\",\"url\":\"https://docs.squared.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/multiwoven-74/-MbwV9-QpicPIrse/logo/ai-squared-docs-logo-light.svg?fit=max\u0026auto=format\u0026n=-MbwV9-QpicPIrse\u0026q=85\u0026s=ca08017182cbe96397a10feab3cfeda6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.squared.ai#website\",\"name\":\"AI Squared\",\"url\":\"https://docs.squared.ai\",\"publisher\":{\"@id\":\"https://docs.squared.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.squared.ai/deployment-and-security/setup/docker-compose#webpage\",\"url\":\"https://docs.squared.ai/deployment-and-security/setup/docker-compose\",\"name\":\"Docker\",\"description\":\"Deploying Multiwoven using Docker\",\"dateModified\":\"2025-10-08T09:27:36.291Z\",\"isPartOf\":{\"@id\":\"https://docs.squared.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.squared.ai/deployment-and-security/setup/docker-compose#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.squared.ai/deployment-and-security/setup/docker-compose#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Deployment\",\"item\":\"https://docs.squared.ai/deployment-and-security/cloud\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Self-Hosted (On-Premise)\",\"item\":\"https://docs.squared.ai/deployment-and-security/setup/environment-variables\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Docker\",\"item\":\"https://docs.squared.ai/deployment-and-security/setup/docker-compose\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.squared.ai/deployment-and-security/setup/docker-compose#article\",\"headline\":\"Docker\",\"name\":\"Docker\",\"description\":\"Deploying Multiwoven using Docker\",\"url\":\"https://docs.squared.ai/deployment-and-security/setup/docker-compose\",\"mainEntityOfPage\":{\"@id\":\"https://docs.squared.ai/deployment-and-security/setup/docker-compose#webpage\"},\"dateModified\":\"2025-10-08T09:27:36.291Z\",\"publisher\":{\"@id\":\"https://docs.squared.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.squared.ai#website\"}}]}\u003c/script>","siteName":"AI Squared","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/home/welcome"}]},{"tab":"Getting Started","pages":[{"title":"Getting Started","href":"/getting-started/introduction"}]},{"tab":"AI Activation","pages":[{"title":"AI Activation","href":"/activation/ai-modelling/introduction"}]},{"tab":"AI Workflows","pages":[{"title":"AI Workflows","href":"/workflows/overview"}]},{"tab":"Data Movement","pages":[{"title":"Data Movement","href":"/guides/core-concepts"}]},{"tab":"Sparx","pages":[{"title":"Sparx","href":"/sparx/overview"}]},{"tab":"Proprietary Models","pages":[{"title":"Proprietary Models","href":"/overview"}]},{"tab":"Deployment \u0026 Security","groups":[{"group":"Deployment \u0026 Security","pages":[{"title":"Overview","href":"/deployment-and-security/overview"}]},{"group":"Deployment","pages":[{"title":"Cloud (Managed by AI Squared)","href":"/deployment-and-security/cloud"},{"group":"Deploy Locally","pages":[{"title":"Docker","href":"/deployment-and-security/setup/docker-compose-dev"}]},{"group":"Self-Hosted (On-Premise)","pages":[{"title":"Environment Variables","description":null,"href":"/deployment-and-security/setup/environment-variables"},{"title":"Docker","href":"/deployment-and-security/setup/docker-compose"},{"title":"Helm Charts","description":"Deploy the AI Squared platform to any Kubernetes cluster with the aisquared Helm chart.","href":"/deployment-and-security/setup/helm"},{"title":"Helm Configuration Reference","href":"/deployment-and-security/setup/configuration-reference"},{"title":"AWS EC2","href":"/deployment-and-security/setup/ec2"},{"title":"AWS ECS","href":"/deployment-and-security/setup/ecs"},{"title":"AWS EKS (Kubernetes)","href":"/deployment-and-security/setup/eks"},{"title":"Google Cloud GKE (Kubernetes)","href":"/deployment-and-security/setup/gke"},{"title":"Google Cloud Compute Engine","href":"/deployment-and-security/setup/gce"},{"title":"Azure AKS (Kubernetes)","href":"/deployment-and-security/setup/aks"},{"title":"Azure VMs","href":"/deployment-and-security/setup/avm"},{"title":"Digital Ocean Droplets","href":"/deployment-and-security/setup/dod"},{"title":"Digital Ocean Kubernetes","href":"/deployment-and-security/setup/dok"},{"title":"Heroku","href":"/deployment-and-security/setup/heroku"},{"title":"OpenShift","href":"/deployment-and-security/setup/openshift"}]}]},{"group":"Authentication \u0026 Access Control","pages":[{"title":"Overview","icon":"","href":"/deployment-and-security/auth/overview"}]},{"group":"Data Security \u0026 Infrastructure","pages":[{"title":"Overview","icon":"","href":"/deployment-and-security/data-security-infra/overview"}]},{"group":"Compliance \u0026 Certifications","pages":[{"title":"SOC 2 Type II","icon":"shield","href":"/deployment-and-security/security-and-compliance/overview"}]}]},{"tab":"Developers","pages":[{"title":"Developers","href":"/api-reference/introduction"}]},{"tab":"Product Updates","pages":[{"title":"Product Updates","href":"/release-notes/2026"}]}]},"basePath":"","title":"Docker - AI Squared","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":[],"chunks":[]}