diff --git a/docker-compose.yml b/docker-compose.yml
index cff19ee7b..a9ff67607 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,24 +1,9 @@
 services:
   platypush:
-    restart: "always"
-    command:
-      - platypush
-      # Comment --start-redis if you want to run an external Redis service
-      # In such case you'll also have to ensure that the appropriate Redis
-      # variables are set in the .env file, or the Redis configuration is
-      # passed in the config.yaml, or use the --redis-host and --redis-port
-      # command-line options
-      - --start-redis
-
-    # Custom list of host devices that should be accessible to the container -
-    # e.g. an Arduino, an ESP-compatible microcontroller, a joystick etc.
-    # devices:
-    #   - /dev/ttyUSB0
-
-    # Uncomment if you need plugins that require access to low-level hardware
-    # (e.g. Bluetooth BLE or GPIO/SPI/I2C) if access to individual devices is
-    # not enough or isn't practical
-    # privileged: true
+    # Replace the build section with the next line if instead of building the
+    # image from a local checkout you want to pull the latest base
+    # (Alpine-based) image from the remote registry
+    # image: "registry.platypush.tech/platypush:latest"
 
     build:
       context: .
@@ -31,6 +16,25 @@ services:
       # Fedora base image
       # dockerfile: ./platypush/install/docker/fedora.Dockerfile
 
+    restart: "always"
+    command:
+      - platypush
+      - --redis-host
+      - redis
+      # Or, if you want to run Redis from the same container as Platypush,
+      # replace --redis-host redis with the line below
+      # - --start-redis
+
+    # Custom list of host devices that should be accessible to the container -
+    # e.g. an Arduino, an ESP-compatible microcontroller, a joystick etc.
+    # devices:
+    #   - /dev/ttyUSB0
+
+    # Uncomment if you need plugins that require access to low-level hardware
+    # (e.g. Bluetooth BLE or GPIO/SPI/I2C) if access to individual devices is
+    # not enough or isn't practical
+    # privileged: true
+    
     # Copy .env.example to .env and modify as needed
     # env_file:
     #   - .env
@@ -40,7 +44,13 @@ services:
       # expose it
       - "8008:8008"
 
-    volumes:
-      - /path/to/your/config.yaml:/etc/platypush
-      - /path/to/a/workdir:/var/lib/platypush
+    # volumes:
+      # Replace with a path that contains/will contain your config.yaml file
+      # - /path/to/your/config:/etc/platypush
+      # Replace with a path that contains/will contain your working directory
+      # - /path/to/a/workdir:/var/lib/platypush
+      # Optionally, use an external volume for the cache
       # - /path/to/a/cachedir:/var/cache/platypush
+
+  redis:
+    image: redis
diff --git a/platypush/install/docker/alpine.Dockerfile b/platypush/install/docker/alpine.Dockerfile
index b15ef7e3b..8e9f92374 100644
--- a/platypush/install/docker/alpine.Dockerfile
+++ b/platypush/install/docker/alpine.Dockerfile
@@ -7,7 +7,7 @@ WORKDIR /var/lib/platypush
 RUN --mount=type=bind,source=.,target=/curdir \
     apk update && \
     # If the current directory is the Platypush repository, then we can copy the existing files \
-    if grep 'name="platypush"' /curdir/pyproject.toml >/dev/null 2>&1; \
+    if grep -E 'name\s*=\s*"platypush"' /curdir/pyproject.toml >/dev/null 2>&1; \
     then \
       cp -r /curdir /install; \
     # Otherwise, we need to clone the repository \
@@ -18,10 +18,9 @@ RUN --mount=type=bind,source=.,target=/curdir \
 
 RUN /install/platypush/install/scripts/alpine/install.sh && \
     cd /install && \
-    pip install -U --no-input --no-cache-dir . --break-system-packages && \
+    pip install -U --no-input --no-cache-dir --no-deps . croniter --break-system-packages && \
     rm -rf /install && \
     rm -rf /root/.cache && \
-    find / | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf && \
     apk del gcc git && \
     apk cache clean && \
     rm -rf /var/cache/apk/* && \
diff --git a/platypush/install/docker/debian.Dockerfile b/platypush/install/docker/debian.Dockerfile
index 346ee8c67..5f9c67359 100644
--- a/platypush/install/docker/debian.Dockerfile
+++ b/platypush/install/docker/debian.Dockerfile
@@ -10,7 +10,7 @@ ENV DOCKER_CTX=1
 RUN --mount=type=bind,source=.,target=/curdir \
     apt update && \
     # If the current directory is the Platypush repository, then we can copy the existing files \
-    if grep 'name="platypush"' /curdir/pyproject.toml >/dev/null 2>&1; \
+    if grep -E 'name\s*=\s*"platypush"' /curdir/pyproject.toml >/dev/null 2>&1; \
     then \
       cp -r /curdir /install; \
     # Otherwise, we need to clone the repository \
@@ -21,10 +21,9 @@ RUN --mount=type=bind,source=.,target=/curdir \
 
 RUN /install/platypush/install/scripts/debian/install.sh && \
     cd /install && \
-    pip install -U --no-input --no-cache-dir . --break-system-packages && \
+    pip install -U --no-input --no-cache-dir --no-deps . --break-system-packages && \
     rm -rf /install && \
     rm -rf /root/.cache && \
-    find / | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf && \
     apt remove -y git build-essential && \
     rm -rf /var/lib/apt/lists/* && \
     apt autoclean -y && \
diff --git a/platypush/install/docker/fedora.Dockerfile b/platypush/install/docker/fedora.Dockerfile
index e028e03df..67e46801a 100644
--- a/platypush/install/docker/fedora.Dockerfile
+++ b/platypush/install/docker/fedora.Dockerfile
@@ -7,20 +7,19 @@ ENV DOCKER_CTX=1
 
 RUN --mount=type=bind,source=.,target=/curdir \
     # If the current directory is the Platypush repository, then we can copy the existing files \
-    if grep 'name="platypush"' /curdir/pyproject.toml >/dev/null 2>&1; \
+    if grep -E 'name\s*=\s*"platypush"' /curdir/pyproject.toml >/dev/null 2>&1; \
     then \
       cp -r /curdir /install; \
     # Otherwise, we need to clone the repository \
     else \
       dnf install -y git && \
       git clone https://github.com/blacklight/platypush.git /install; \
-    fi
+    fi; \
+    dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
 
-# Enable the RPM Fusion repository
-RUN dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm && \
-  /install/platypush/install/scripts/fedora/install.sh && \
+RUN /install/platypush/install/scripts/fedora/install.sh && \
   cd /install && \
-  pip install -U --no-input --no-cache-dir . --break-system-packages && \
+  pip install -U --no-input --no-cache-dir --no-deps . --break-system-packages && \
   rm -rf /install && \
   rm -rf /root/.cache && \
   dnf remove -y build-essential git && \
diff --git a/platypush/install/docker/ubuntu.Dockerfile b/platypush/install/docker/ubuntu.Dockerfile
index d03210487..1442e8ba0 100644
--- a/platypush/install/docker/ubuntu.Dockerfile
+++ b/platypush/install/docker/ubuntu.Dockerfile
@@ -10,7 +10,7 @@ ENV DOCKER_CTX=1
 RUN --mount=type=bind,source=.,target=/curdir \
     apt update && \
     # If the current directory is the Platypush repository, then we can copy the existing files \
-    if grep 'name="platypush"' /curdir/pyproject.toml >/dev/null 2>&1; \
+    if grep -E 'name\s*=\s*"platypush"' /curdir/pyproject.toml >/dev/null 2>&1; \
     then \
       cp -r /curdir /install; \
     # Otherwise, we need to clone the repository \
@@ -21,12 +21,16 @@ RUN --mount=type=bind,source=.,target=/curdir \
 
 RUN /install/platypush/install/scripts/debian/install.sh && \
     cd /install && \
-    pip install -U --no-input --no-cache-dir . --break-system-packages && \
+    pip install -U --no-input --no-cache-dir --no-deps . --break-system-packages && \
     rm -rf /install && \
     rm -rf /root/.cache && \
-    find / | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf && \
-    apt remove -y git build-essential && \
-    rm -rf /var/lib/apt/lists/* && \
+    apt remove -y git \
+      build-essential \
+      docutils-common \
+      fonts-dejavu-mono \
+      manpages \
+      manpages-dev \
+      python-babel-localedata && \
     apt autoclean -y && \
     apt autoremove -y && \
     apt clean && \