diff --git a/{{cookiecutter.project_slug}}/.env b/{{cookiecutter.project_slug}}/.env
index 95fc3abfcd..6211634c62 100644
--- a/{{cookiecutter.project_slug}}/.env
+++ b/{{cookiecutter.project_slug}}/.env
@@ -1,6 +1,3 @@
-COMPOSE_PATH_SEPARATOR=:
-COMPOSE_FILE=docker-compose.shared.admin.yml:docker-compose.shared.base-images.yml:docker-compose.shared.depends.yml:docker-compose.shared.env.yml:docker-compose.dev.build.yml:docker-compose.dev.command.yml:docker-compose.dev.env.yml:docker-compose.dev.labels.yml:docker-compose.dev.networks.yml:docker-compose.dev.ports.yml:docker-compose.dev.volumes.yml
-
 DOMAIN=localhost
 # DOMAIN=local.dockertoolbox.tiangolo.com
 # DOMAIN=localhost.tiangolo.com
diff --git a/{{cookiecutter.project_slug}}/docker-compose.deploy.build.yml b/{{cookiecutter.project_slug}}/docker-compose.deploy.build.yml
deleted file mode 100644
index 178a1646b5..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.deploy.build.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-version: '3.3'
-services:
-  backend:
-    build: 
-      context: ./backend
-      dockerfile: backend.dockerfile
-  celeryworker:
-    build:
-      context: ./backend
-      dockerfile: celeryworker.dockerfile
-  frontend:
-    build: 
-      context: ./frontend
-      args:
-          FRONTEND_ENV: ${FRONTEND_ENV-production}
diff --git a/{{cookiecutter.project_slug}}/docker-compose.deploy.command.yml b/{{cookiecutter.project_slug}}/docker-compose.deploy.command.yml
deleted file mode 100644
index 141ee407be..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.deploy.command.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-version: '3.3'
-services:
-  proxy:
-    command: --docker \
-      --docker.swarmmode \
-      --docker.watch \
-      --docker.exposedbydefault=false \
-      --constraints=tag==${TRAEFIK_TAG} \
-      --logLevel=INFO \
-      --accessLog \
-      --web
diff --git a/{{cookiecutter.project_slug}}/docker-compose.deploy.images.yml b/{{cookiecutter.project_slug}}/docker-compose.deploy.images.yml
deleted file mode 100644
index f68f78d82e..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.deploy.images.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-version: '3.3'
-services:
-  backend:
-    image: '${DOCKER_IMAGE_BACKEND}:${TAG-latest}'
-  celeryworker:
-    image: '${DOCKER_IMAGE_CELERYWORKER}:${TAG-latest}'
-  frontend:
-    image: '${DOCKER_IMAGE_FRONTEND}:${TAG-latest}'
diff --git a/{{cookiecutter.project_slug}}/docker-compose.deploy.labels.yml b/{{cookiecutter.project_slug}}/docker-compose.deploy.labels.yml
deleted file mode 100644
index 0fa9b919eb..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.deploy.labels.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-version: '3.3'
-services:
-  pgadmin:
-    deploy:
-      labels:
-        - traefik.frontend.rule=Host:pgadmin.${DOMAIN}
-        - traefik.enable=true
-        - traefik.port=5050
-        - traefik.tags=${TRAEFIK_PUBLIC_TAG}
-        - traefik.docker.network=${TRAEFIK_PUBLIC_NETWORK}
-        - traefik.frontend.entryPoints=http,https
-        - traefik.frontend.redirect.entryPoint=https
-  proxy:
-    deploy:
-      labels:
-        # For the configured domain
-        - traefik.frontend.rule=Host:${DOMAIN}
-        # For a domain with and without 'www'
-        # Comment the previous line above and un-comment the line below
-        # - "traefik.frontend.rule=Host:www.${DOMAIN},${DOMAIN}"
-        - traefik.enable=true
-        - traefik.port=80
-        - traefik.tags=${TRAEFIK_PUBLIC_TAG}
-        - traefik.docker.network=${TRAEFIK_PUBLIC_NETWORK}
-        - traefik.frontend.entryPoints=http,https
-        - traefik.frontend.redirect.entryPoint=https
-        # Uncomment the config line below to detect and redirect www to non-www (or the contrary)
-        # The lines above for traefik.frontend.rule are needed too
-        # - "traefik.frontend.redirect.regex=^https?://(www.)?(${DOMAIN})/(.*)"
-        # To redirect from non-www to www un-comment the line below
-        # - "traefik.frontend.redirect.replacement=https://www.${DOMAIN}/$$3"
-        # To redirect from www to non-www un-comment the line below
-        # - "traefik.frontend.redirect.replacement=https://${DOMAIN}/$$3"
-  flower:
-    deploy:
-      labels:
-        - traefik.frontend.rule=Host:flower.${DOMAIN}
-        - traefik.enable=true
-        - traefik.port=5555
-        - traefik.tags=${TRAEFIK_PUBLIC_TAG}
-        - traefik.docker.network=${TRAEFIK_PUBLIC_NETWORK}
-        - traefik.frontend.entryPoints=http,https
-        - traefik.frontend.redirect.entryPoint=https
-  backend:
-    deploy:
-      labels:
-        - traefik.frontend.rule=PathPrefix:/api,/docs,/redoc
-        - traefik.enable=true
-        - traefik.port=80
-        - traefik.tags=${TRAEFIK_TAG}
-  frontend:
-    deploy:
-      labels:
-        - traefik.frontend.rule=PathPrefix:/
-        - traefik.enable=true
-        - traefik.port=80
-        - traefik.tags=${TRAEFIK_TAG}
diff --git a/{{cookiecutter.project_slug}}/docker-compose.deploy.networks.yml b/{{cookiecutter.project_slug}}/docker-compose.deploy.networks.yml
deleted file mode 100644
index f1a81ffea5..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.deploy.networks.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-version: '3.3'
-services:
-  pgadmin:
-    networks:
-      - ${TRAEFIK_PUBLIC_NETWORK}
-      - default
-  proxy:
-    networks:
-      - ${TRAEFIK_PUBLIC_NETWORK}
-      - default
-  flower:
-    networks:
-      - ${TRAEFIK_PUBLIC_NETWORK}
-      - default
-
-networks:
-  traefik-public:
-    external: true
diff --git a/{{cookiecutter.project_slug}}/docker-compose.deploy.volumes-placement.yml b/{{cookiecutter.project_slug}}/docker-compose.deploy.volumes-placement.yml
deleted file mode 100644
index 86bbfd0ce3..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.deploy.volumes-placement.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-version: '3.3'
-services:
-  db:
-    volumes:
-      - app-db-data:/var/lib/postgresql/data/pgdata
-    deploy:
-      placement:
-        constraints:
-          - node.labels.${STACK_NAME}.app-db-data == true
-  proxy:
-    deploy:
-      placement:
-        constraints:
-          - node.role == manager
-
-volumes:
-  app-db-data:
diff --git a/{{cookiecutter.project_slug}}/docker-compose.dev.build.yml b/{{cookiecutter.project_slug}}/docker-compose.dev.build.yml
deleted file mode 100644
index 20c45cd030..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.dev.build.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: '3.3'
-services:
-  backend:
-    build: 
-      context: ./backend
-      dockerfile: backend.dockerfile
-      args: 
-        env: dev
-  celeryworker:
-    build:
-      context: ./backend
-      dockerfile: celeryworker.dockerfile
-      args: 
-        env: dev
-  frontend:
-    build: 
-      context: ./frontend
-      args: 
-        FRONTEND_ENV: dev
diff --git a/{{cookiecutter.project_slug}}/docker-compose.dev.command.yml b/{{cookiecutter.project_slug}}/docker-compose.dev.command.yml
deleted file mode 100644
index 3bddda8a49..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.dev.command.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-version: '3.3'
-services:
-  proxy:
-    command: --docker \
-      --docker.watch \
-      --docker.exposedbydefault=false \
-      --constraints=tag==${TRAEFIK_TAG} \
-      --logLevel=DEBUG \
-      --accessLog \
-      --web
-  # backend:
-  #   command: bash -c "while true; do sleep 1; done"  # Infinite loop to keep container live doing nothing
-  backend:
-    command: /start-reload.sh
diff --git a/{{cookiecutter.project_slug}}/docker-compose.dev.env.yml b/{{cookiecutter.project_slug}}/docker-compose.dev.env.yml
deleted file mode 100644
index 78681312b1..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.dev.env.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-version: '3.3'
-services:
-  backend:
-    environment:
-      - JUPYTER=jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888
-      - SERVER_HOST=http://${DOMAIN}
-  celeryworker:
-    environment:
-      - RUN=celery worker -A app.worker -l info -Q main-queue -c 1
-      - JUPYTER=jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888
-      - SERVER_HOST=http://${DOMAIN}
diff --git a/{{cookiecutter.project_slug}}/docker-compose.dev.labels.yml b/{{cookiecutter.project_slug}}/docker-compose.dev.labels.yml
deleted file mode 100644
index 46799e62b8..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.dev.labels.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: '3.3'
-services:
-  proxy:
-    labels:
-      - traefik.frontend.rule=Host:${DOMAIN}
-      - traefik.enable=true
-      - traefik.port=80
-  backend:
-    labels:
-      - traefik.frontend.rule=PathPrefix:/api,/docs,/redoc
-      - traefik.enable=true
-      - traefik.port=80
-      - traefik.tags=${TRAEFIK_TAG}
-  frontend:
-    labels:
-      - traefik.frontend.rule=PathPrefix:/
-      - traefik.enable=true
-      - traefik.port=80
-      - traefik.tags=${TRAEFIK_TAG}
diff --git a/{{cookiecutter.project_slug}}/docker-compose.dev.networks.yml b/{{cookiecutter.project_slug}}/docker-compose.dev.networks.yml
deleted file mode 100644
index 3a3990f11c..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.dev.networks.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-version: '3.3'
-services:
-  backend:
-    networks: 
-      default: 
-        aliases: 
-          - ${DOMAIN}
diff --git a/{{cookiecutter.project_slug}}/docker-compose.dev.ports.yml b/{{cookiecutter.project_slug}}/docker-compose.dev.ports.yml
deleted file mode 100644
index af26b17436..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.dev.ports.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-version: '3.3'
-services:
-  pgadmin:
-    ports:
-      - '5050:5050'
-  proxy:
-    ports:
-      - '80:80'
-      - '8090:8080'
-  flower:
-    ports:
-      - '5555:5555'
-  backend:
-    ports:
-      - '8888:8888'
diff --git a/{{cookiecutter.project_slug}}/docker-compose.dev.volumes.yml b/{{cookiecutter.project_slug}}/docker-compose.dev.volumes.yml
deleted file mode 100644
index f332614096..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.dev.volumes.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-version: '3.3'
-services:
-  backend:
-    volumes:
-      - ./backend/app:/app
-  celeryworker:
-    volumes:
-      - ./backend/app:/app
diff --git a/{{cookiecutter.project_slug}}/docker-compose.override.yml b/{{cookiecutter.project_slug}}/docker-compose.override.yml
new file mode 100644
index 0000000000..931cb2a189
--- /dev/null
+++ b/{{cookiecutter.project_slug}}/docker-compose.override.yml
@@ -0,0 +1,76 @@
+version: "3.3"
+services:
+
+  proxy:
+    ports:
+      - "80:80"
+      - "8090:8080"
+    command: --docker \
+      --docker.watch \
+      --docker.exposedbydefault=false \
+      --constraints=tag==${TRAEFIK_TAG} \
+      --logLevel=DEBUG \
+      --accessLog \
+      --web
+    labels:
+      - traefik.frontend.rule=Host:${DOMAIN}
+      - traefik.enable=true
+      - traefik.port=80
+
+  pgadmin:
+    ports:
+      - "5050:5050"
+
+  flower:
+    ports:
+      - "5555:5555"
+
+  backend:
+    ports:
+      - "8888:8888"
+    volumes:
+      - ./backend/app:/app
+    environment:
+      - JUPYTER=jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888
+      - SERVER_HOST=http://${DOMAIN}
+    build:
+      context: ./backend
+      dockerfile: backend.dockerfile
+      args:
+        env: dev
+    # command: bash -c "while true; do sleep 1; done"  # Infinite loop to keep container live doing nothing
+    command: /start-reload.sh
+    labels:
+      - traefik.frontend.rule=PathPrefix:/api,/docs,/redoc
+      - traefik.enable=true
+      - traefik.port=80
+      - traefik.tags=${TRAEFIK_TAG}
+
+  celeryworker:
+    volumes:
+      - ./backend/app:/app
+    environment:
+      - RUN=celery worker -A app.worker -l info -Q main-queue -c 1
+      - JUPYTER=jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888
+      - SERVER_HOST=http://${DOMAIN}
+    build:
+      context: ./backend
+      dockerfile: celeryworker.dockerfile
+      args:
+        env: dev
+
+  frontend:
+    build:
+      context: ./frontend
+      args:
+        FRONTEND_ENV: dev
+    labels:
+      - traefik.frontend.rule=PathPrefix:/
+      - traefik.enable=true
+      - traefik.port=80
+      - traefik.tags=${TRAEFIK_TAG}
+
+networks:
+  traefik-public:
+    # For local dev, don't expect an external Traefik network
+    external: false
diff --git a/{{cookiecutter.project_slug}}/docker-compose.shared.admin.yml b/{{cookiecutter.project_slug}}/docker-compose.shared.admin.yml
deleted file mode 100644
index 72b9de388c..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.shared.admin.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-version: '3.3'
-services:
-  pgadmin:
-    image: dpage/pgadmin4
-    depends_on:
-      - db
-    env_file:
-      - .env
-  proxy:
-    image: traefik:v1.7
-    volumes:
-      - /var/run/docker.sock:/var/run/docker.sock
-  flower:
-    image: mher/flower
-    env_file:
-      - .env
-    command:
-      - "--broker=amqp://guest@queue:5672//"
-      # For the "Broker" tab to work in the flower UI, uncomment the following command argument,
-      # and change the queue service's image as described in docker-compose.shared.base-images.yml
-      # - "--broker_api=http://guest:guest@queue:15672/api//"
diff --git a/{{cookiecutter.project_slug}}/docker-compose.shared.base-images.yml b/{{cookiecutter.project_slug}}/docker-compose.shared.base-images.yml
deleted file mode 100644
index c2e6043fef..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.shared.base-images.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-version: '3.3'
-services:
-  db:
-    image: postgres:12
-  queue:
-    image: rabbitmq:3
-    # Using the below image instead is required to enable the "Broker" tab in the flower UI:
-    # image: rabbitmq:3-management
-    #
-    # You also have to change the flower command as documented in docker-compose.shared.admin.yml
diff --git a/{{cookiecutter.project_slug}}/docker-compose.shared.depends.yml b/{{cookiecutter.project_slug}}/docker-compose.shared.depends.yml
deleted file mode 100644
index 2a52bde86b..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.shared.depends.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '3.3'
-services:
-  backend:
-    depends_on: 
-      - db
-  celeryworker:
-    depends_on: 
-      - db
-      - queue
diff --git a/{{cookiecutter.project_slug}}/docker-compose.shared.env.yml b/{{cookiecutter.project_slug}}/docker-compose.shared.env.yml
deleted file mode 100644
index bd970e548e..0000000000
--- a/{{cookiecutter.project_slug}}/docker-compose.shared.env.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-version: '3.3'
-services:
-  db:
-    env_file:
-      - .env
-    environment:
-      - PGDATA=/var/lib/postgresql/data/pgdata
-  backend:
-    env_file:
-      - .env
-    environment:
-      - SERVER_NAME=${DOMAIN}
-      - SERVER_HOST=https://${DOMAIN}
-      # Allow explicit env var override for tests
-      - SMTP_HOST=${SMTP_HOST}
-  celeryworker:
-    env_file:
-      - .env
-    environment:
-      - SERVER_NAME=${DOMAIN}
-      - SERVER_HOST=https://${DOMAIN}
-      # Allow explicit env var override for tests
-      - SMTP_HOST=${SMTP_HOST}
diff --git a/{{cookiecutter.project_slug}}/docker-compose.yml b/{{cookiecutter.project_slug}}/docker-compose.yml
new file mode 100644
index 0000000000..8bdf3db11d
--- /dev/null
+++ b/{{cookiecutter.project_slug}}/docker-compose.yml
@@ -0,0 +1,160 @@
+version: "3.3"
+services:
+
+  proxy:
+    image: traefik:v1.7
+    networks:
+      - ${TRAEFIK_PUBLIC_NETWORK}
+      - default
+    volumes:
+      - /var/run/docker.sock:/var/run/docker.sock
+    command: --docker \
+      --docker.swarmmode \
+      --docker.watch \
+      --docker.exposedbydefault=false \
+      --constraints=tag==${TRAEFIK_TAG} \
+      --logLevel=INFO \
+      --accessLog \
+      --web
+    deploy:
+      placement:
+        constraints:
+          - node.role == manager
+      labels:
+        # For the configured domain
+        - traefik.frontend.rule=Host:${DOMAIN}
+        # For a domain with and without 'www'
+        # Comment the previous line above and un-comment the line below
+        # - "traefik.frontend.rule=Host:www.${DOMAIN},${DOMAIN}"
+        - traefik.enable=true
+        - traefik.port=80
+        - traefik.tags=${TRAEFIK_PUBLIC_TAG}
+        - traefik.docker.network=${TRAEFIK_PUBLIC_NETWORK}
+        - traefik.frontend.entryPoints=http,https
+        - traefik.frontend.redirect.entryPoint=https
+        # Uncomment the config line below to detect and redirect www to non-www (or the contrary)
+        # The lines above for traefik.frontend.rule are needed too
+        # - "traefik.frontend.redirect.regex=^https?://(www.)?(${DOMAIN})/(.*)"
+        # To redirect from non-www to www un-comment the line below
+        # - "traefik.frontend.redirect.replacement=https://www.${DOMAIN}/$$3"
+        # To redirect from www to non-www un-comment the line below
+        # - "traefik.frontend.redirect.replacement=https://${DOMAIN}/$$3"
+  
+  db:
+    image: postgres:12
+    volumes:
+      - app-db-data:/var/lib/postgresql/data/pgdata
+    env_file:
+      - .env
+    environment:
+      - PGDATA=/var/lib/postgresql/data/pgdata
+    deploy:
+      placement:
+        constraints:
+          - node.labels.${STACK_NAME}.app-db-data == true
+
+  pgadmin:
+    image: dpage/pgadmin4
+    networks:
+      - ${TRAEFIK_PUBLIC_NETWORK}
+      - default
+    depends_on:
+      - db
+    env_file:
+      - .env
+    deploy:
+      labels:
+        - traefik.frontend.rule=Host:pgadmin.${DOMAIN}
+        - traefik.enable=true
+        - traefik.port=5050
+        - traefik.tags=${TRAEFIK_PUBLIC_TAG}
+        - traefik.docker.network=${TRAEFIK_PUBLIC_NETWORK}
+        - traefik.frontend.entryPoints=http,https
+        - traefik.frontend.redirect.entryPoint=https
+
+  queue:
+    image: rabbitmq:3
+    # Using the below image instead is required to enable the "Broker" tab in the flower UI:
+    # image: rabbitmq:3-management
+    #
+    # You also have to change the flower command
+  
+  flower:
+    image: mher/flower
+    networks:
+      - ${TRAEFIK_PUBLIC_NETWORK}
+      - default
+    env_file:
+      - .env
+    command:
+      - "--broker=amqp://guest@queue:5672//"
+      # For the "Broker" tab to work in the flower UI, uncomment the following command argument,
+      # and change the queue service's image as well
+      # - "--broker_api=http://guest:guest@queue:15672/api//"
+    deploy:
+      labels:
+        - traefik.frontend.rule=Host:flower.${DOMAIN}
+        - traefik.enable=true
+        - traefik.port=5555
+        - traefik.tags=${TRAEFIK_PUBLIC_TAG}
+        - traefik.docker.network=${TRAEFIK_PUBLIC_NETWORK}
+        - traefik.frontend.entryPoints=http,https
+        - traefik.frontend.redirect.entryPoint=https
+  
+  backend:
+    image: '${DOCKER_IMAGE_BACKEND}:${TAG-latest}'
+    depends_on:
+      - db
+    env_file:
+      - .env
+    environment:
+      - SERVER_NAME=${DOMAIN}
+      - SERVER_HOST=https://${DOMAIN}
+      # Allow explicit env var override for tests
+      - SMTP_HOST=${SMTP_HOST}
+    build:
+      context: ./backend
+      dockerfile: backend.dockerfile
+    deploy:
+      labels:
+        - traefik.frontend.rule=PathPrefix:/api,/docs,/redoc
+        - traefik.enable=true
+        - traefik.port=80
+        - traefik.tags=${TRAEFIK_TAG}
+  
+  celeryworker:
+    image: '${DOCKER_IMAGE_CELERYWORKER}:${TAG-latest}'
+    depends_on:
+      - db
+      - queue
+    env_file:
+      - .env
+    environment:
+      - SERVER_NAME=${DOMAIN}
+      - SERVER_HOST=https://${DOMAIN}
+      # Allow explicit env var override for tests
+      - SMTP_HOST=${SMTP_HOST}
+    build:
+      context: ./backend
+      dockerfile: celeryworker.dockerfile
+  
+  frontend:
+    image: '${DOCKER_IMAGE_FRONTEND}:${TAG-latest}'
+    build:
+      context: ./frontend
+      args:
+        FRONTEND_ENV: ${FRONTEND_ENV-production}
+    deploy:
+      labels:
+        - traefik.frontend.rule=PathPrefix:/
+        - traefik.enable=true
+        - traefik.port=80
+        - traefik.tags=${TRAEFIK_TAG}
+
+volumes:
+  app-db-data:
+
+networks:
+  traefik-public:
+    # Allow setting it to false for testing
+    external: ${TRAEFIK_PUBLIC_NETWORK_IS_EXTERNAL-true}
diff --git a/{{cookiecutter.project_slug}}/scripts/build-push.sh b/{{cookiecutter.project_slug}}/scripts/build-push.sh
index 998e439e2f..425703de89 100644
--- a/{{cookiecutter.project_slug}}/scripts/build-push.sh
+++ b/{{cookiecutter.project_slug}}/scripts/build-push.sh
@@ -7,4 +7,4 @@ TAG=${TAG} \
 FRONTEND_ENV=${FRONTEND_ENV-production} \
 . ./scripts/build.sh
 
-docker-compose -f docker-stack.yml push
+docker-compose -f docker-compose.yml push
diff --git a/{{cookiecutter.project_slug}}/scripts/build.sh b/{{cookiecutter.project_slug}}/scripts/build.sh
index a76f3c2207..8ac32fb3f6 100644
--- a/{{cookiecutter.project_slug}}/scripts/build.sh
+++ b/{{cookiecutter.project_slug}}/scripts/build.sh
@@ -6,8 +6,5 @@ set -e
 TAG=${TAG} \
 FRONTEND_ENV=${FRONTEND_ENV-production} \
 docker-compose \
--f docker-compose.deploy.build.yml \
--f docker-compose.deploy.images.yml \
-config > docker-stack.yml
-
-docker-compose -f docker-stack.yml build
+-f docker-compose.yml \
+build
diff --git a/{{cookiecutter.project_slug}}/scripts/deploy.sh b/{{cookiecutter.project_slug}}/scripts/deploy.sh
index 3e24f9e1f9..95d043e80f 100644
--- a/{{cookiecutter.project_slug}}/scripts/deploy.sh
+++ b/{{cookiecutter.project_slug}}/scripts/deploy.sh
@@ -8,17 +8,9 @@ TRAEFIK_TAG=${TRAEFIK_TAG} \
 STACK_NAME=${STACK_NAME} \
 TAG=${TAG} \
 docker-compose \
--f docker-compose.shared.admin.yml \
--f docker-compose.shared.base-images.yml \
--f docker-compose.shared.depends.yml \
--f docker-compose.shared.env.yml \
--f docker-compose.deploy.command.yml \
--f docker-compose.deploy.images.yml \
--f docker-compose.deploy.labels.yml \
--f docker-compose.deploy.networks.yml \
--f docker-compose.deploy.volumes-placement.yml \
+-f docker-compose.yml \
 config > docker-stack.yml
 
 docker-auto-labels docker-stack.yml
 
-docker stack deploy -c docker-stack.yml --with-registry-auth ${STACK_NAME}
+docker stack deploy -c docker-stack.yml --with-registry-auth "${STACK_NAME}"
diff --git a/{{cookiecutter.project_slug}}/scripts/test-local.sh b/{{cookiecutter.project_slug}}/scripts/test-local.sh
index da69063961..4c180f21d3 100644
--- a/{{cookiecutter.project_slug}}/scripts/test-local.sh
+++ b/{{cookiecutter.project_slug}}/scripts/test-local.sh
@@ -3,27 +3,13 @@
 # Exit in case of error
 set -e
 
+docker-compose down -v --remove-orphans # Remove possibly previous broken stacks left hanging after an error
+
 if [ $(uname -s) = "Linux" ]; then
     echo "Remove __pycache__ files"
     sudo find . -type d -name __pycache__ -exec rm -r {} \+
 fi
 
-docker-compose \
-    -f docker-compose.shared.admin.yml \
-    -f docker-compose.shared.base-images.yml \
-    -f docker-compose.shared.depends.yml \
-    -f docker-compose.shared.env.yml \
-    -f docker-compose.dev.build.yml \
-    -f docker-compose.dev.env.yml \
-    -f docker-compose.dev.labels.yml \
-    -f docker-compose.dev.networks.yml \
-    -f docker-compose.dev.ports.yml \
-    -f docker-compose.dev.volumes.yml \
-    config > docker-stack.yml
-
-#    -f docker-compose.dev.command.yml \
-
-docker-compose -f docker-stack.yml build
-docker-compose -f docker-stack.yml down -v --remove-orphans # Remove possibly previous broken stacks left hanging after an error
-docker-compose -f docker-stack.yml up -d
-docker-compose -f docker-stack.yml exec -T backend-tests /tests-start.sh "$@"
+docker-compose build
+docker-compose up -d
+docker-compose exec -T backend bash /app/tests-start.sh "$@"
diff --git a/{{cookiecutter.project_slug}}/scripts/test.sh b/{{cookiecutter.project_slug}}/scripts/test.sh
index 305b5015b5..78b4db90e0 100644
--- a/{{cookiecutter.project_slug}}/scripts/test.sh
+++ b/{{cookiecutter.project_slug}}/scripts/test.sh
@@ -3,12 +3,11 @@
 # Exit in case of error
 set -e
 
-DOMAIN=backend SMTP_HOST="" \
+DOMAIN=backend \
+SMTP_HOST="" \
+TRAEFIK_PUBLIC_NETWORK_IS_EXTERNAL=false \
 docker-compose \
--f docker-compose.shared.base-images.yml \
--f docker-compose.shared.env.yml \
--f docker-compose.shared.depends.yml \
--f docker-compose.deploy.build.yml \
+-f docker-compose.yml \
 config > docker-stack.yml
 
 docker-compose -f docker-stack.yml build