# Deploy docker-compose apps (Wordpress, MySQL, Redis, Keycloak ...)

You are about to learn how to deploy docker-compose applications to a CI/CD target. This is useful when you don't need a Git workflow, and your images are already available on a public or private Docker registry.

Use cases:

- Deploy one or multiple instances of stateful apps like Wordpress / Directus / MySQL / Redis / RabbitMQ / ...
- Deploy an internal service available only to your private network
- Deploy an app built somewhere else and published to a private Docker registry

First, open the [<span style="text-decoration: underline;">Elestio dashboard and click on CI/CD</span>](https://dash.elest.io/new/deployment/ci-cd/)

##### **1) Select your app to deploy**

When you select Docker compose the deployment method, we provide a few samples of applications that you can deploy

[![image.png](https://docs.elest.io/uploads/images/gallery/2026-10/scaled-1680-/UAzimage.png)](https://docs.elest.io/uploads/images/gallery/2026-10/UAzimage.png)

From there, click on Github or Gitlab, and you will be asked to provide authorization to list your projects in Elestio.

Then you will be able to browse Organizations &amp; Repositories detected on your account. You can also use the search to find your project directly to deploy. Once you find it, click on Import, then click on Next.

##### **2) Select your target (where to deploy)**

Here you have to indicate where the app should be deployed. It can be a "New infrastructure"; in that case, you can select your preferred provider/region/instance size. Or an existing infrastructure; then you just have to pick it from the list.

[![image.png](https://docs.elest.io/uploads/images/gallery/2022-06/scaled-1680-/On9image.png)](https://docs.elest.io/uploads/images/gallery/2022-06/On9image.png)

[![image.png](https://docs.elest.io/uploads/images/gallery/2022-06/scaled-1680-/YZ7image.png)](https://docs.elest.io/uploads/images/gallery/2022-06/YZ7image.png)

#####   


##### **3) Configure your app**

This is the last step of the process where you can adjust the app settings, docker-compose, env vars, and reverse proxy configuration.

##### a) Docker-compose stack

[![image.png](https://docs.elest.io/uploads/images/gallery/2022-07/scaled-1680-/okzimage.png)](https://docs.elest.io/uploads/images/gallery/2022-07/okzimage.png)

##### b) Environment variables

In most cases, you will have to indicate configuration for your app through env vars. This is useful to pass various configurations to your app, like a database connection string, S3 bucket details, email address to use, and other global configurations.

[![image.png](https://docs.elest.io/uploads/images/gallery/2022-06/scaled-1680-/Lqmimage.png)](https://docs.elest.io/uploads/images/gallery/2022-06/Lqmimage.png)


##### c) Reverse proxy 

To make your app accessible on the internet, indicate in the target port the same thing you have configured on the host port in the docker-compose ports binding.

[![image.png](https://docs.elest.io/uploads/images/gallery/2022-06/scaled-1680-/JW5image.png)](https://docs.elest.io/uploads/images/gallery/2022-06/JW5image.png)

Finally, click on "Create CI/CD pipeline" to complete your deployment.

[![image.png](https://docs.elest.io/uploads/images/gallery/2022-06/scaled-1680-/OYcimage.png)](https://docs.elest.io/uploads/images/gallery/2022-06/OYcimage.png)

After a few minutes, your app should be accessible on the CI/CD pipeline url, you can find it in the dashboard overview of your pipeline. Your generated credentials are visible in the "Build &amp; Deploy" tab in the env var section or reverse proxy section if you have activated basic authentication.

[![image.png](https://docs.elest.io/uploads/images/gallery/2022-06/scaled-1680-/Mc0image.png)](https://docs.elest.io/uploads/images/gallery/2022-06/Mc0image.png)

[![image.png](https://docs.elest.io/uploads/images/gallery/2022-06/scaled-1680-/7IFimage.png)](https://docs.elest.io/uploads/images/gallery/2022-06/7IFimage.png)