Deploying Multiwoven on Google Cloud Platform using Docker Compose
This guide walks you through setting up Multiwoven, on a Google Cloud Platform (GCP) Compute Engine instance using Docker Compose. We’ll cover launching the instance, installing Docker, running Multiwoven with its dependencies, and accessing the Multiwoven UI.Prerequisites:
A Google Cloud Platform account with an active project and billing enabled.
Basic knowledge of GCP, Docker, and command-line tools.
Docker Compose installed on your local machine.
Note: This guide uses environment variables for sensitive information. Replace the placeholders with your own values before proceeding.1. Create a GCP Compute Engine Instance:
Install Docker Compose: Download the latest version from the Docker Compose releases page and place it in a suitable directory (e.g., /usr/local/bin/docker-compose). Make the file executable: sudo chmod +x /usr/local/bin/docker-compose.
Start and enable Docker: Run sudo systemctl start docker and sudo systemctl enable docker to start Docker and configure it to start automatically on boot.
4. Download Multiwoven docker-compose.yml file and Configure Environment:
Create and Configure .env File: Rename multiwoven/.env.example to .env. This file holds environment variables for various services. Replace the placeholders with your own values, including:
* DB_PASSWORD and DB_USERNAME for your PostgreSQL database
* REDIS_PASSWORD for your Redis server
* (Optional) Additional environment variables specific to your Multiwoven configuration
Example .env file:
DB_PASSWORD=your_db_passwordDB_USERNAME=your_db_usernameREDIS_PASSWORD=your_redis_password# Modify your Multiwoven-specific environment variables here
5. Run Multiwoven with Docker Compose:Start Multiwoven: Navigate to the multiwoven directory and run.
docker-compose up -d
6. Accessing Multiwoven UI:Open your web browser and navigate to http://<external_ip_address>:8000 (replace <external_ip_address> with your instance’s IP address). You should now see the Multiwoven UI.7. Stopping Multiwoven:To stop Multiwoven, navigate to the multiwoven directory and run.
docker-compose down
8. Upgrading Multiwoven:
When a new version of Multiwoven is released, you can upgrade the Multiwoven using the following command.
docker-compose pull && docker-compose up -d
Make sure to run the above command from the same directory where the docker-compose.yml file is present.
Additional Notes:
Note: the frontend and backend services run on port 8000 and 3000, respectively. Make sure you update the VITE_API_HOST environment variable in the .env file to the desired backend service URL running on port 3000.
Depending on your firewall configuration, you might need to open port 8000 for inbound traffic.
For production deployments, consider using a managed load balancer and a Cloud SQL database instance for better performance and scalability.
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":""},"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":"6aec8ed18029e5fb8e3e9868","clientVersion":"0.0.4088","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":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","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/gce","slug":"/deployment-and-security/setup/gce","pageMetadata":{"title":"Google Cloud Compute Engine","description":null,"href":"/deployment-and-security/setup/gce"},"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,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`deploying-multiwoven-on-google-cloud-platform-using-docker-compose`,children:`Deploying Multiwoven on Google Cloud Platform using Docker Compose`}),`\n`,_jsx(_components.p,{children:`This guide walks you through setting up Multiwoven, on a Google Cloud Platform (GCP) Compute Engine instance using Docker Compose. We’ll cover launching the instance, installing Docker, running Multiwoven with its dependencies, and accessing the Multiwoven UI.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Prerequisites:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A Google Cloud Platform account with an active project and billing enabled.`}),`\n`,_jsx(_components.li,{children:`Basic knowledge of GCP, Docker, and command-line tools.`}),`\n`,_jsx(_components.li,{children:`Docker Compose installed on your local machine.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note:`}),` This guide uses environment variables for sensitive information. Replace the placeholders with your own values before proceeding.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`1. Create a GCP Compute Engine Instance:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Open the GCP Console:`}),` `,_jsx(_components.a,{href:`https://console.cloud.google.com`,children:`https://console.cloud.google.com`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Navigate to Compute Engine:`}),` Go to the “Compute Engine” section and click on “VM Instances.”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Create a new instance:`}),` Choose an appropriate machine type based on your workload requirements. Ubuntu is a popular choice.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Configure your instance:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Select a suitable boot disk size and operating system image (Ubuntu recommended).`}),`\n`,_jsx(_components.li,{children:`Enable SSH access with a strong password or SSH key.`}),`\n`,_jsx(_components.li,{children:`Configure firewall rules to allow inbound traffic on port 22 (SSH) and potentially port 8000 (Multiwoven UI, optional).`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Create the instance:`}),` Review your configuration and click “Create” to launch the instance.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`2. Connect to your Instance:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Get the external IP address:`}),` Once the instance is running, find its external IP address in the GCP Console.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Connect via SSH:`}),` Use your preferred SSH client to connect to the instance:`]}),`\n`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`ssh -i your_key_pair.pem user@\u003cexternal_ip_address>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`3. Install Docker and Docker Compose:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Update and upgrade:`}),` Run `,_jsx(_components.code,{children:`sudo apt update \u0026\u0026 sudo apt upgrade -y`}),` to ensure your system is up-to-date.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Install Docker:`}),` Follow the official Docker installation instructions for Ubuntu: `,_jsx(_components.a,{href:`https://docs.docker.com/engine/install/`,children:`https://docs.docker.com/engine/install/`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Install Docker Compose:`}),` Download the latest version from the Docker Compose releases page and place it in a suitable directory (e.g., `,_jsx(_components.code,{children:`/usr/local/bin/docker-compose`}),`). Make the file executable: `,_jsx(_components.code,{children:`sudo chmod +x /usr/local/bin/docker-compose`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Start and enable Docker:`}),` Run `,_jsx(_components.code,{children:`sudo systemctl start docker`}),` and `,_jsx(_components.code,{children:`sudo systemctl enable docker`}),` to start Docker and configure it to start automatically on boot.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.strong,{children:[`4. Download Multiwoven `,_jsx(_components.code,{children:`docker-compose.yml`}),` file and Configure Environment:`]})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Download the file:`}),`\\xA0`]}),`\n`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl -LO https://multiwoven-deployments.s3.amazonaws.com/docker/docker-compose/docker-compose.yaml`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Download the `,_jsx(_components.code,{children:`.env`}),` file:`]}),`\\xA0\\xA0`]}),`\n`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl -LO https://multiwoven-deployments.s3.amazonaws.com/docker/docker-compose/.env`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Create and Configure `,_jsx(_components.code,{children:`.env`}),` File:`]}),` Rename `,_jsx(_components.code,{children:`multiwoven/.env.example`}),` to `,_jsx(_components.code,{children:`.env`}),`. This file holds environment variables for various services. Replace the placeholders with your own values, including:\n\\xA0\\xA0* `,_jsx(_components.code,{children:`DB_PASSWORD`}),` and `,_jsx(_components.code,{children:`DB_USERNAME`}),` for your PostgreSQL database\n\\xA0\\xA0* `,_jsx(_components.code,{children:`REDIS_PASSWORD`}),` for your Redis server\n\\xA0\\xA0* (Optional) Additional environment variables specific to your Multiwoven configuration`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.strong,{children:[`Example `,_jsx(_components.code,{children:`.env`}),` file:`]})}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`DB_PASSWORD=your_db_password`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`DB_USERNAME=your_db_username`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`REDIS_PASSWORD=your_redis_password`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`# Modify your Multiwoven-specific environment variables here`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`5. Run Multiwoven with Docker Compose:`})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Start Multiwoven:`}),` Navigate to the `,_jsx(_components.code,{children:`multiwoven`}),` directory and run.`]}),`\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`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`6. Accessing Multiwoven UI:`})}),`\n`,_jsxs(_components.p,{children:[`Open your web browser and navigate to `,_jsx(_components.code,{children:`http://\u003cexternal_ip_address>:8000`}),` (replace `,_jsx(_components.code,{children:`\u003cexternal_ip_address>`}),` with your instance’s IP address). You should now see the Multiwoven UI.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`7. Stopping Multiwoven:`})}),`\n`,_jsxs(_components.p,{children:[`To stop Multiwoven, navigate to the `,_jsx(_components.code,{children:`multiwoven`}),` directory and run.`]}),`\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:` down`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`8. Upgrading Multiwoven:`}),`\nWhen a new version of Multiwoven is released, you can upgrade 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:` 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`]})})}),`\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.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Additional Notes:`})}),`\n`,_jsxs(Tip,{children:[_jsx(_components.strong,{children:`Note`}),`: the frontend and backend services run on port 8000 and 3000, respectively. Make sure you update the `,_jsx(_components.strong,{children:`VITE_API_HOST`}),` environment variable in the `,_jsx(_components.strong,{children:`.env`}),` file to the desired backend service URL running on port 3000. `]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Depending on your firewall configuration, you might need to open port 8000 for inbound traffic.`}),`\n`,_jsx(_components.li,{children:`For production deployments, consider using a managed load balancer and a Cloud SQL database instance for better performance and scalability.`}),`\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":"Google Cloud Compute Engine","description":null,"href":"/deployment-and-security/setup/gce"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Deploying Multiwoven on Google Cloud Platform using Docker Compose","slug":"deploying-multiwoven-on-google-cloud-platform-using-docker-compose","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/multiwoven-74/aaa40dfb088f7973/docs-bot.js"],"subdomain":"multiwoven-74","siteName":"AI Squared","title":"Google Cloud Compute Engine - AI Squared","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-15T19:26:29.927Z","originalFileLocation":"deployment-and-security/setup/gce.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=\"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=\"Google Cloud Compute Engine - AI Squared\">\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/gce\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://multiwoven-74.mintlify.site/_mintlify/api/og/v2?division=Self-Hosted+%28On-Premise%29\u0026amp;title=Google+Cloud+Compute+Engine\u0026amp;theme=f527afd5024577da42908e7f\u0026amp;signature=f54d99b2ac2f616bd5b1c2d460ba6140a16cf1293894fe86e1bf4c90b577ee05\">\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=\"Google Cloud Compute Engine - AI Squared\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://multiwoven-74.mintlify.site/_mintlify/api/og/v2?division=Self-Hosted+%28On-Premise%29\u0026amp;title=Google+Cloud+Compute+Engine\u0026amp;theme=f527afd5024577da42908e7f\u0026amp;signature=f54d99b2ac2f616bd5b1c2d460ba6140a16cf1293894fe86e1bf4c90b577ee05\">\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/gce\">\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/gce.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/gce#webpage\",\"url\":\"https://docs.squared.ai/deployment-and-security/setup/gce\",\"name\":\"Google Cloud Compute Engine\",\"dateModified\":\"2026-10-15T19:26:29.927Z\",\"isPartOf\":{\"@id\":\"https://docs.squared.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.squared.ai/deployment-and-security/setup/gce#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.squared.ai/deployment-and-security/setup/gce#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\":\"Google Cloud Compute Engine\",\"item\":\"https://docs.squared.ai/deployment-and-security/setup/gce\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.squared.ai/deployment-and-security/setup/gce#article\",\"headline\":\"Google Cloud Compute Engine\",\"name\":\"Google Cloud Compute Engine\",\"url\":\"https://docs.squared.ai/deployment-and-security/setup/gce\",\"mainEntityOfPage\":{\"@id\":\"https://docs.squared.ai/deployment-and-security/setup/gce#webpage\"},\"dateModified\":\"2026-10-15T19:26:29.927Z\",\"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","href":"/deployment-and-security/setup/environment-variables"},{"title":"Docker","href":"/deployment-and-security/setup/docker-compose"},{"title":"Helm Charts","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)","description":"Coming soon...","href":"/deployment-and-security/setup/gke"},{"title":"Google Cloud Compute Engine","href":"/deployment-and-security/setup/gce"},{"title":"Azure AKS (Kubernetes)","description":null,"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":"Google Cloud Compute Engine - AI Squared","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}