Deplomo
Sign in
Monorepo deployment guide

Deploy a monorepo: multiple services from one repository

Deploy a monorepo on Deplomo: run multiple services from one repository with Turborepo and pnpm workspaces. Set the root directory, Dockerfile path, and build context, then deploy with the CLI.

Short answer

For each app in the monorepo, such as apps/web or apps/api, create a separate service on the cloud platform. Connect each app to the same repository and branch. Set the Root Directory to choose where to build from, and use Watch Paths to avoid deploying unaffected services. Browse Deployment guide all the deployment guides.

Last reviewed:6 September 2026

How monorepo deployments work on Deplomo

A single repository can contain multiple services. Each app in a multi-service deployment has its own build and run commands, environment variables, domain, and scaling settings, while all the services belong to one shared project:

repo/
├── apps/
│   ├── web/       # frontend service
│   └── api/       # backend service
├── packages/
│   └── shared/    # shared code package
├── package.json
└── pnpm-lock.yaml

Set the root directory, Dockerfile path, and build context

  • Root Directory: Path to the app directory relative to the repository root. For example, apps/api. Stack detection and scripts start from this directory.
  • Dockerfile path: Path to the Dockerfile relative to the repository root, for example apps/api/Dockerfile. If you need a dedicated isolated environment, use the advanced Deplomo Cloud containers platform.
  • Build Context: value . This makes shared root files and the lockfile available to the COPY Docker build.

Deploy Turborepo and workspaces with shared packages

When deploying a Turborepo, if apps need code from the packages/shared directory, set the build context to the repository root:

# Configure deployment in the Deplomo dashboard
Root Directory:    apps/api
Dockerfile path:   apps/api/Dockerfile
Build Context:     .
Watch Paths:
  apps/api/**
  packages/shared/**
  pnpm-lock.yaml

With this setting, changes in shared packages will automatically rebuild all dependent services.

Watch Paths: avoid unnecessary builds

A Git-connected service is redeployed only when changed files match its Watch Paths patterns:

  • apps/api/** Covers all API files and subfolders.
  • packages/shared/** Monitors changes to shared libraries.
  • Including the lockfile name at the repository root ensures dependency updates trigger a build.

Deploy multiple services with the Deplomo CLI

Use the Deplomo CLI to deploy monorepo services from your local machine:

cd repo
deplomo deploy . \
  --name api \
  --root-dir apps/api \
  --dockerfile apps/api/Dockerfile \
  --build-context . \
  --port 8080

Frequently asked questions

What is a monorepo, and how can it help development teams?

A monorepo is a code management strategy that keeps multiple independent software projects and services in a single Git repository. It makes it easier to share code, coordinate packages, and make large-scale changes.

How do you deploy a monorepo on Deplomo?

Connect the repository, then create a separate service for each app and set its Root Directory. Watch Paths detect changes and trigger builds and deployments only for affected services.

Are Turborepo and pnpm workspaces supported?

Yes. Turborepo and pnpm, Yarn, and npm workspaces are supported when you set the correct Build Context, so each service can access root files and shared packages.

How does deploying multiple services from a single repository affect resource consumption?

Each service in a multi-service project runs in its own container with allocated CPU and RAM. The combined resources count towards your fixed monthly package limits for the selected zone.