diff --git a/config/docker-files/7.2-Dockerfile b/config/docker-files/7.2-Dockerfile
index 8c86e1278fbce95d056570b0afa9aac28379bbb9..886db6f273c07677817d2ff84c936459f486c607 100644
--- a/config/docker-files/7.2-Dockerfile
+++ b/config/docker-files/7.2-Dockerfile
@@ -20,8 +20,10 @@ RUN apt update && apt install -y --no-install-recommends \
         vim \
     && rm -rf /var/lib/apt/lists/*
 
-# Install de_DE locale
-RUN locale-gen de_DE.UTF-8 \
+# Install locales
+RUN sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen \
+    && sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen \
+    && dpkg-reconfigure --frontend=noninteractive locales \
     && update-locale
 
 # Install php extensions
diff --git a/config/docker-files/7.3-Dockerfile b/config/docker-files/7.3-Dockerfile
index 2355daa49c33e2d26f8b0a7f10c3985104a2c7db..bd4720b5e83d0f165d807481a720afb9ebb8cf5c 100644
--- a/config/docker-files/7.3-Dockerfile
+++ b/config/docker-files/7.3-Dockerfile
@@ -20,8 +20,10 @@ RUN apt update && apt install -y --no-install-recommends \
         vim \
     && rm -rf /var/lib/apt/lists/*
 
-# Install de_DE locale
-RUN locale-gen de_DE.UTF-8 \
+# Install locales
+RUN sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen \
+    && sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen \
+    && dpkg-reconfigure --frontend=noninteractive locales \
     && update-locale
 
 # Install php extensions
diff --git a/config/docker-files/7.4-Dockerfile b/config/docker-files/7.4-Dockerfile
index 2e01471193a70bcecc0f69e4c861bb032771cbc3..2838589653b3264936c741539151e96d43740a26 100644
--- a/config/docker-files/7.4-Dockerfile
+++ b/config/docker-files/7.4-Dockerfile
@@ -20,8 +20,10 @@ RUN apt update && apt install -y --no-install-recommends \
         vim \
     && rm -rf /var/lib/apt/lists/*
 
-# Install de_DE locale
-RUN locale-gen de_DE.UTF-8 \
+# Install locales
+RUN sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen \
+    && sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen \
+    && dpkg-reconfigure --frontend=noninteractive locales \
     && update-locale
 
 # Install php extensions
diff --git a/config/docker-files/8.0-Dockerfile b/config/docker-files/8.0-Dockerfile
index 3d56102537771a808df51bc963724c864b08f282..4cddac9ec3648a3402192f224dce5b54018772d2 100644
--- a/config/docker-files/8.0-Dockerfile
+++ b/config/docker-files/8.0-Dockerfile
@@ -20,8 +20,10 @@ RUN apt update && apt install -y --no-install-recommends \
         vim \
     && rm -rf /var/lib/apt/lists/*
 
-# Install de_DE locale
-RUN locale-gen de_DE.UTF-8 \
+# Install locales
+RUN sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen \
+    && sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen \
+    && dpkg-reconfigure --frontend=noninteractive locales \
     && update-locale
 
 # Install php extensions
diff --git a/config/docker-files/8.1-Dockerfile b/config/docker-files/8.1-Dockerfile
index 52544cbf1bb00b1576d163918ded8f75a582b887..4861cd685d80ccf82022a6fcdba0f772b1c38a1b 100644
--- a/config/docker-files/8.1-Dockerfile
+++ b/config/docker-files/8.1-Dockerfile
@@ -20,8 +20,10 @@ RUN apt update && apt install -y --no-install-recommends \
         vim \
     && rm -rf /var/lib/apt/lists/*
 
-# Install de_DE locale
-RUN locale-gen de_DE.UTF-8 \
+# Install locales
+RUN sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen \
+    && sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen \
+    && dpkg-reconfigure --frontend=noninteractive locales \
     && update-locale
 
 # Install php extensions
diff --git a/config/docker-files/8.2-Dockerfile b/config/docker-files/8.2-Dockerfile
index 27a735b0fa33f27071c9dd482fdc0e5e2cbb7033..efd288f90a7ed2684c86c26ca0870e23d00b009a 100644
--- a/config/docker-files/8.2-Dockerfile
+++ b/config/docker-files/8.2-Dockerfile
@@ -20,8 +20,10 @@ RUN apt update && apt install -y --no-install-recommends \
         vim \
     && rm -rf /var/lib/apt/lists/*
 
-# Install de_DE locale
-RUN locale-gen de_DE.UTF-8 \
+# Install locales
+RUN sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen \
+    && sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen \
+    && dpkg-reconfigure --frontend=noninteractive locales \
     && update-locale
 
 # Install php extensions
diff --git a/config/docker-files/8.3-Dockerfile b/config/docker-files/8.3-Dockerfile
index 16821dd10791dc738318a12919d139e3475d742b..cf2ba3cd3705407ec604df8c30b8121363e95031 100644
--- a/config/docker-files/8.3-Dockerfile
+++ b/config/docker-files/8.3-Dockerfile
@@ -5,6 +5,7 @@ RUN apt update \
     && apt install -y --no-install-recommends \
         default-mysql-client \
         default-libmysqlclient-dev \
+        git \
         imagemagick ghostscript \
         zlib1g-dev \
         libjpeg-dev \
@@ -21,8 +22,10 @@ RUN apt update \
         vim \
     && rm -rf /var/lib/apt/lists/*
 
-# Install de_DE locale
-RUN locale-gen de_DE.UTF-8 \
+# Install locales
+RUN sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen \
+    && sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen \
+    && dpkg-reconfigure --frontend=noninteractive locales \
     && update-locale
 
 # Install php extensions
diff --git a/config/docker-files/8.4-Dockerfile b/config/docker-files/8.4-Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..8fb001da670e28486a54020d33822f042a2bc35d
--- /dev/null
+++ b/config/docker-files/8.4-Dockerfile
@@ -0,0 +1,47 @@
+FROM php:8.4.0alpha2-fpm
+
+# Install system requirements
+RUN apt update \
+    && apt install -y --no-install-recommends \
+        default-mysql-client \
+        default-libmysqlclient-dev \
+        git \
+        imagemagick ghostscript \
+        zlib1g-dev \
+        libjpeg-dev \
+        libpng-dev \
+        libpq-dev \
+        libwebp-dev \
+        libonig-dev \
+        libzip-dev \
+        libicu-dev \
+        libfreetype6-dev \
+        libxml2-dev \
+        locales \
+        libmemcached11 libmemcachedutil2 build-essential libmemcached-dev libz-dev \
+        vim \
+    && rm -rf /var/lib/apt/lists/*
+
+# Install locales
+RUN sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen \
+    && sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen \
+    && dpkg-reconfigure --frontend=noninteractive locales \
+    && update-locale
+
+# Install php extensions
+RUN docker-php-ext-configure gd --with-jpeg --with-freetype --with-webp
+RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli opcache pdo_mysql pdo_pgsql soap zip
+
+# Install Memcached and redis
+# RUN pecl install memcached redis \
+#     && docker-php-ext-enable memcached redis
+RUN pecl install memcached \
+    && docker-php-ext-enable memcached
+
+# Cleanup
+RUN docker-php-source delete \
+    && apt-get autoremove --purge -y && apt-get autoclean -y && apt-get clean -y
+
+# Enable PS in gs
+RUN sed -r -i_bak 's/rights="none" pattern="([EX]?PS[23]*|PDF)"/rights="read | write" pattern="\1"/' \
+        /etc/ImageMagick-6/policy.xml
diff --git a/lib/Commands/Compile.php b/lib/Commands/Compile.php
index 01fe7e522e5daa80fbc98ade7d62123a33438b07..51843e4c1434bbfe8a82595d32c308306db97aaf 100644
--- a/lib/Commands/Compile.php
+++ b/lib/Commands/Compile.php
@@ -278,11 +278,13 @@ final class Compile extends Command
         foreach ($servers as [$index, $port, $sslPort]) {
             $creator->addServer([
                 'listen ' . $port . ' default_server',
+                'client_max_body_size 64M',
                 'set $fastcgi_backend ' . $index . '_backend',
             ]);
 
             $creator->addServer([
                 'listen ' . $sslPort . ' default_server ssl',
+                'client_max_body_size 64M',
                 'set $fastcgi_backend ' . $index . '_backend',
 
                 'ssl_certificate /etc/nginx/ssl.crt',
diff --git a/lib/Commands/PHP/Enable.php b/lib/Commands/PHP/Enable.php
index 67eac9b3cbf01cebecba474269f1898a0ad29d0e..8b7a8010d8ac08fc39b91311f8a3ec8d034161f3 100644
--- a/lib/Commands/PHP/Enable.php
+++ b/lib/Commands/PHP/Enable.php
@@ -42,7 +42,7 @@ final class Enable extends Command
             $php[$version] = $port;
             $config->set('php', $php);
 
-            $io->success("PHP version {$version} has been enabled on port {$port}");
+            $io->success("PHP version {$version} has been enabled on ports {$port[0]} and {$port[1]}");
             $enabled += 1;
         }
 
diff --git a/lib/DockerComposeCommand.php b/lib/DockerComposeCommand.php
index f6cf4669dcbfb448982cadf307916bf88a14da42..4df4518dbb125eaebba6f4bc056742a9aa1e1f3c 100644
--- a/lib/DockerComposeCommand.php
+++ b/lib/DockerComposeCommand.php
@@ -22,11 +22,13 @@ abstract class DockerComposeCommand extends Command
 
     protected function createDockerComposeCommand(array $command): Process
     {
-        return new Process([
+        $process = new Process([
             'docker', 'compose',
             '-f', self::GetCompiledPath() . '/docker-compose.yml',
             ...$command,
         ]);
+        $process->setTimeout(null);
+        return $process;
 
     }
 
diff --git a/lib/SupportedPHPVersions.php b/lib/SupportedPHPVersions.php
index 7b9ac39509c079a2f0a2ebd09b14dc3d28761948..8f985017c6f259504c5777771a5ed8d73da7908c 100644
--- a/lib/SupportedPHPVersions.php
+++ b/lib/SupportedPHPVersions.php
@@ -11,6 +11,7 @@ final class SupportedPHPVersions
         '8.1' => [8081, 8881],
         '8.2' => [8082, 8882],
         '8.3' => [8083, 8883],
+        '8.4' => [8084, 8884],
     ];
 
     private const DEFAULT = ['7.4', '8.1', '8.3'];
diff --git a/web/assets/style.css b/web/assets/style.css
index 07e712f055275f6cb7daee31379c3ee1d5e01acd..55ac7677f9c72c4dbf3f2022374bc86b6543d3c1 100644
--- a/web/assets/style.css
+++ b/web/assets/style.css
@@ -1,5 +1,24 @@
+:root {
+    --background-color: #ffffff;
+    --hover-background-color: #ffeecc;
+    --text-color: #000000;
+}
+
+@media (prefers-color-scheme: dark) {
+    :root {
+        --background-color: #000000;
+        --hover-background-color: #001133;
+        --text-color: #ffffff;
+    }
+}
+
+body {
+    background-color: var(--background-color);
+    color: var(--text-color);
+}
+
 .tabs {
-    background-color: #fff;
+    background-color: inherit;
     border-bottom: 1px solid #ccc;
     font-size: 1.5em;
     line-height: 1.5em;
@@ -32,5 +51,5 @@ th {
     text-align: left;
 }
 tr:hover td {
-    background-color: #fec;
+    background-color: var(--hover-background-color);
 }