--- title: Deploy a multi-service app description: Learn how to deploy containerized applications on a cluster, with Docker Universal Control Plane. keywords: ucp, deploy, application, stack, service, compose redirect_from: - /ee/ucp/user/services/ - /ee/ucp/swarm/deploy-from-cli/ - /ee/ucp/swarm/deploy-from-ui/ --- Docker Universal Control Plane allows you to use the tools you already know, like `docker stack deploy` to deploy multi-service applications. You can also deploy your applications from the UCP web UI. In this example we'll deploy a multi-service application that allows users to vote on whether they prefer cats or dogs. ```yaml version: "3" services: # A Redis key-value store to serve as message queue redis: image: redis:alpine ports: - "6379" networks: - frontend # A PostgreSQL database for persistent storage db: image: postgres:9.4 volumes: - db-data:/var/lib/postgresql/data networks: - backend # Web UI for voting vote: image: dockersamples/examplevotingapp_vote:before ports: - 5000:80 networks: - frontend depends_on: - redis # Web UI to count voting results result: image: dockersamples/examplevotingapp_result:before ports: - 5001:80 networks: - backend depends_on: - db # Worker service to read from message queue worker: image: dockersamples/examplevotingapp_worker networks: - frontend - backend networks: frontend: backend: volumes: db-data: ``` ## From the web UI To deploy your applications from the **UCP web UI**, on the left navigation bar expand **Shared resources**, choose **Stacks**, and click **Create stack**. {: .with-border} Choose the name you want for your stack, and choose **Swarm services** as the deployment mode. When you choose this option, UCP deploys your app using the Docker swarm built-in orchestrator. If you choose 'Basic containers' as the deployment mode, UCP deploys your app using the classic Swarm orchestrator. Then copy-paste the application definition in docker-compose.yml format. {: .with-border} Once you're done click **Create** to deploy the stack. ## From the CLI To deploy the application from the CLI, start by configuring your Docker CLI using a [UCP client bundle](../user-access/cli.md). Then, create a file named `docker-stack.yml` with the content of the yaml above, and run: