2020-03-05 19:54:10 +01:00
# Awesome Compose [](https://awesome.re)

2020-03-11 13:20:49 +01:00
> A curated list of Docker Compose samples.
2020-03-26 18:08:29 +01:00
2020-03-20 17:09:43 +00:00
These samples provide a starting point for how to integrate different services using a Compose file and to manage their deployment with Docker Compose.
2020-03-05 19:54:10 +01:00
2022-09-01 11:39:33 -05:00
> **Note**
2020-08-12 13:13:25 +01:00
> The following samples are intended for use in local development environments such as project setups, tinkering with software stacks, etc. These samples must not be deployed in production environments.
2020-03-26 18:08:29 +01:00
<!-- lint disable awesome - toc -->
## Contents
- [Samples of Docker Compose applications with multiple integrated services ](#samples-of-docker-compose-applications-with-multiple-integrated-services ).
- [Single service samples ](#single-service-samples ).
- [Basic setups for different platforms (not production ready - useful for personal use) ](#basic-setups-for-different-platforms-not-production-ready---useful-for-personal-use ).
## Samples of Docker Compose applications with multiple integrated services
2022-08-09 10:30:30 +02:00
2023-01-09 15:30:59 -06:00
< a href = "https://docs.docker.com/desktop/wasm/" >< img src = "icon_wasm.svg" alt = "Docker + wasm" height = "30" align = "top" /></ a > Icon indicates Sample is compatible with [Docker+Wasm ](https://docs.docker.com/desktop/wasm/ ).
2022-09-01 11:39:33 -05:00
- [`ASP.NET / MS-SQL` ](aspnet-mssql ) - Sample ASP.NET core application
2020-03-26 18:08:29 +01:00
with MS SQL server database.
2022-09-01 11:39:33 -05:00
- [`Elasticsearch / Logstash / Kibana` ](elasticsearch-logstash-kibana ) - Sample Elasticsearch, Logstash, and Kibana stack.
- [`Go / NGINX / MySQL` ](nginx-golang-mysql ) - Sample Go application
2024-05-15 11:17:42 +02:00
with an Nginx proxy and a MySQL database.
2022-09-01 11:39:33 -05:00
- [`Go / NGINX / PostgreSQL` ](nginx-golang-postgres ) - Sample Go
2024-05-15 11:17:42 +02:00
application with an Nginx proxy and a PostgreSQL database.
2022-09-01 11:39:33 -05:00
- [`Java Spark / MySQL` ](sparkjava-mysql ) - Sample Java application and
2024-05-15 11:17:42 +02:00
a MySQL database.
- [`NGINX / ASP.NET / MySQL` ](nginx-aspnet-mysql ) - Sample Nginx reverse proxy with an C# backend using ASP.NET.
2022-09-01 11:39:33 -05:00
- [`NGINX / Flask / MongoDB` ](nginx-flask-mongo ) - Sample Python/Flask
2024-05-15 11:17:42 +02:00
application with Nginx proxy and a Mongo database.
2022-09-01 11:39:33 -05:00
- [`NGINX / Flask / MySQL` ](nginx-flask-mysql ) - Sample Python/Flask application with an Nginx proxy and a MySQL database.
2024-05-15 11:17:42 +02:00
- [`NGINX / Node.js / Redis` ](nginx-nodejs-redis ) - Sample Node.js application with Nginx proxy and a Redis database.
- [`NGINX / Go` ](nginx-golang ) - Sample Nginx proxy with a Go backend.
2022-09-01 11:39:33 -05:00
- [`NGINX / WSGI / Flask` ](nginx-wsgi-flask ) - Sample Nginx reverse proxy with a Flask backend using WSGI.
2024-05-15 11:17:42 +02:00
- [`PostgreSQL / pgAdmin` ](postgresql-pgadmin ) - Sample setup for postgreSQL database with pgAdmin web interface.
- [`Python / Flask / Redis` ](flask-redis ) - Sample Python/Flask and a Redis database.
2022-09-01 11:39:33 -05:00
- [`React / Spring / MySQL` ](react-java-mysql ) - Sample React
2024-05-15 11:17:42 +02:00
application with a Spring backend and a MySQL database.
2022-09-01 11:39:33 -05:00
- [`React / Express / MySQL` ](react-express-mysql ) - Sample React
2024-05-15 11:17:42 +02:00
application with a Node.js backend and a MySQL database.
2022-09-01 11:39:33 -05:00
- [`React / Express / MongoDB` ](react-express-mongodb ) - Sample React
2024-05-15 11:17:42 +02:00
application with a Node.js backend and a Mongo database.
2022-09-01 11:39:33 -05:00
- [`React / Rust / PostgreSQL` ](react-rust-postgres ) - Sample React
2024-05-15 11:17:42 +02:00
application with a Rust backend and a Postgres database.
- [`React / Nginx` ](react-nginx ) - Sample React application with Nginx.
2022-09-01 11:39:33 -05:00
- [`Spring / PostgreSQL` ](spring-postgres ) - Sample Java application
2024-05-15 11:17:42 +02:00
with Spring framework and a Postgres database.
2023-01-09 15:30:59 -06:00
- [`WasmEdge / MySQL / Nginx` ](wasmedge-mysql-nginx ) - Sample Wasm-based web application with a static HTML frontend, using a MySQL (MariaDB) database. The frontend connects to a Wasm microservice written in Rust, that runs using the WasmEdge runtime. < a href = "wasmedge-mysql-nginx" >< img src = "icon_wasm.svg" alt = "Compatible with Docker+wasm" height = "30" align = "top" /></ a >
- [`WasmEdge / Kafka / MySQL` ](wasmedge-kafka-mysql ) - Sample Wasm-based microservice that subscribes to a Kafka (Redpanda) queue topic, and transforms and saves any incoming message into a MySQL (MariaDB) database. < a href = "wasmedge-kafka-mysql" >< img src = "icon_wasm.svg" alt = "Compatible with Docker+wasm" height = "30" align = "top" /></ a >
2022-09-01 11:39:33 -05:00
2020-03-26 18:08:29 +01:00
## Single service samples
2022-08-09 10:30:30 +02:00
2024-05-15 11:17:42 +02:00
- [`Angular` ](angular )
- [`Spark` ](sparkjava )
- [`VueJS` ](vuejs )
- [`Flask` ](flask )
- [`PHP` ](apache-php )
- [`Traefik` ](traefik-golang )
- [`Django` ](django )
2020-08-10 17:17:10 +02:00
- [`Minecraft server` ](https://github.com/docker/awesome-compose/tree/master/minecraft )
2021-08-07 14:36:28 +02:00
- [`Plex` ](https://github.com/docker/awesome-compose/tree/master/plex )
2021-08-07 14:37:23 +02:00
- [`Portainer` ](https://github.com/docker/awesome-compose/tree/master/portainer )
2021-08-07 14:38:20 +02:00
- [`Wireguard` ](https://github.com/docker/awesome-compose/tree/master/wireguard )
2024-05-15 11:17:42 +02:00
- [`FastAPI` ](fastapi )
2022-09-01 11:39:33 -05:00
## Basic setups for different platforms (not production ready - useful for personal use)
- [`Gitea / PostgreSQL` ](gitea-postgres )
- [`Nextcloud / PostgreSQL` ](nextcloud-postgres )
- [`Nextcloud / Redis / MariaDB` ](nextcloud-redis-mariadb )
- [`Pi-hole / cloudflared` ](pihole-cloudflared-DoH ) - Sample Pi-hole setup with use of DoH cloudflared service
- [`Prometheus / Grafana` ](prometheus-grafana )
- [`Wordpress / MySQL` ](wordpress-mysql )
2020-03-26 18:08:29 +01:00
<!-- lint disable awesome - toc -->
2022-09-01 11:39:33 -05:00
2020-03-11 13:20:49 +01:00
## Getting started
2020-03-06 15:04:03 +01:00
2020-03-11 13:20:49 +01:00
These instructions will get you through the bootstrap phase of creating and
2020-03-20 17:09:43 +00:00
deploying samples of containerized applications with Docker Compose.
2020-03-06 15:04:03 +01:00
### Prerequisites
2020-03-26 18:08:29 +01:00
- Make sure that you have Docker and Docker Compose installed
- Windows or macOS:
2020-03-11 13:20:49 +01:00
[Install Docker Desktop ](https://www.docker.com/get-started )
2020-03-26 18:08:29 +01:00
- Linux: [Install Docker ](https://www.docker.com/get-started ) and then
2020-03-20 17:09:43 +00:00
[Docker Compose ](https://github.com/docker/compose )
2020-03-26 18:08:29 +01:00
- Download some or all of the samples from this repository.
2020-03-06 15:04:03 +01:00
### Running a sample
2022-05-10 11:59:25 +02:00
The root directory of each sample contains the `compose.yaml` which
2020-03-11 13:20:49 +01:00
describes the configuration of service components. All samples can be run in
a local environment by going into the root directory of each one and executing:
```console
2022-05-10 11:59:25 +02:00
docker compose up -d
2020-03-06 15:04:03 +01:00
```
2020-03-11 13:20:49 +01:00
Check the `README.md` of each sample to get more details on the structure and
what is the expected output.
2020-06-12 20:34:29 +05:30
To stop and remove all containers of the sample application run:
2020-03-11 13:20:49 +01:00
```console
2022-05-10 11:59:25 +02:00
docker compose down
2020-03-06 15:04:03 +01:00
```
2022-10-28 09:46:40 +02:00
### Quickstart guides
In addition to all the ready to run Compose samples listed above the folder [official-documentation-samples ](official-documentation-samples/README.md ) contains quickstart guides. Each of these step by step guides explain which files need to be created to build and run a Docker Compose application.
2020-03-26 18:08:29 +01:00
<!-- lint disable awesome - toc -->
2020-03-05 19:54:10 +01:00
## Contribute
2020-03-20 17:09:43 +00:00
We welcome examples that help people understand how to use Docker Compose for
2020-03-26 18:08:29 +01:00
common applications. Check the [Contribution Guide ](CONTRIBUTING.md ) for more details.