From 5957e55bd5493ebf753ccfd9f5f2f232a531a2fe Mon Sep 17 00:00:00 2001 From: amiceli Date: Sun, 24 May 2026 12:24:59 +0200 Subject: [PATCH 1/2] chore: update node version to 24 --- .npmrc | 1 + package-lock.json | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 .npmrc diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..54c6511 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +v24 diff --git a/package-lock.json b/package-lock.json index 54dd3d2..b7c78ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5041,9 +5041,9 @@ } }, "node_modules/tinyexec": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz", - "integrity": "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.2.tgz", + "integrity": "sha512-M/Q0B2cp4K7kynaT/vnED1j8TlLY+Pp7C6Wl2bl/7u/F0mUVwdyOpwomQb8JpYLitHUssAJRmLZdMCGsrx7i+g==", "dev": true, "license": "MIT", "engines": { From d356c4611903a89ad5ccb50e596bbfd8280e99d0 Mon Sep 17 00:00:00 2001 From: amiceli Date: Sun, 24 May 2026 12:25:28 +0200 Subject: [PATCH 2/2] chore: use Nginx Unit --- Dockerfile | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ unit.json | 29 +++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 Dockerfile create mode 100644 unit.json diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d8f5fae --- /dev/null +++ b/Dockerfile @@ -0,0 +1,58 @@ +FROM unit:1.34.1-php8.4 + +RUN apt update && apt install -y \ + curl unzip git gnupg ca-certificates \ + libicu-dev libzip-dev libpng-dev \ + libjpeg-dev libfreetype6-dev libssl-dev libpq-dev + +# Node.js 24 +RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \ + && apt install -y nodejs + +# PHP extensions +RUN docker-php-ext-configure gd --with-freetype --with-jpeg + +RUN docker-php-ext-install -j$(nproc) \ + pcntl opcache pdo pdo_mysql intl zip gd exif ftp bcmath + +RUN docker-php-ext-install -j$(nproc) pdo_pgsql pgsql + +RUN pecl install redis && docker-php-ext-enable redis + +# PHP config +RUN echo "opcache.enable=1" > /usr/local/etc/php/conf.d/custom.ini \ + && echo "opcache.jit=tracing" >> /usr/local/etc/php/conf.d/custom.ini \ + && echo "opcache.jit_buffer_size=256M" >> /usr/local/etc/php/conf.d/custom.ini \ + && echo "memory_limit=512M" >> /usr/local/etc/php/conf.d/custom.ini \ + && echo "upload_max_filesize=64M" >> /usr/local/etc/php/conf.d/custom.ini \ + && echo "post_max_size=64M" >> /usr/local/etc/php/conf.d/custom.ini + +COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer + +WORKDIR /var/www/html + +# Cache layers +COPY package*.json ./ +COPY composer.json composer.lock ./ + +RUN npm install +RUN composer install --no-scripts --prefer-dist --no-interaction + +# App +COPY . . + +RUN composer dump-autoload --optimize +RUN php artisan package:discover --ansi + +# Front build +RUN npm run build + +RUN mkdir -p storage bootstrap/cache \ + && chown -R unit:unit storage bootstrap/cache \ + && chmod -R 775 storage bootstrap/cache + +COPY unit.json /docker-entrypoint.d/unit.json + +EXPOSE 8000 + +CMD ["unitd", "--no-daemon"] diff --git a/unit.json b/unit.json new file mode 100644 index 0000000..61d853f --- /dev/null +++ b/unit.json @@ -0,0 +1,29 @@ +{ + "listeners": { + "*:8000": { + "pass": "routes" + } + }, + + "routes": [ + { + "match": { + "uri": "!/index.php" + }, + "action": { + "share": "/var/www/html/public$uri", + "fallback": { + "pass": "applications/laravel" + } + } + } + ], + + "applications": { + "laravel": { + "type": "php", + "root": "/var/www/html/public/", + "script": "index.php" + } + } +}