Итерация 1: каркас Slim 4 приложения

- Slim 4 + php-di контейнер с маршрутизацией
- Docker Compose: app (PHP 8.3-FPM) + web (nginx) + db (MariaDB)
- Phinx миграция: таблица users (uuid, username, password_hash)
- Auth: login/logout с сессиями
- Setup: создание первого пользователя
- Dashboard с layout (Bootstrap 5.3)
- CLI: bin/console, bin/run-scan-worker.php
- Smoke test: scripts/check.sh
- README.md, PLAN.md
This commit is contained in:
2026-05-26 07:26:55 +08:00
commit e7732f5cee
31 changed files with 8790 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
FROM php:8.3-fpm
RUN apt-get update && apt-get install -y \
mariadb-client \
iproute2 \
iputils-ping \
net-tools \
dnsutils \
openssh-client \
openssl \
unzip \
&& rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-install pdo pdo_mysql
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
RUN install-php-extensions zip mbstring xml curl
WORKDIR /var/www/html
# Copy vendor from host (pre-installed with correct PHP version)
COPY vendor/ vendor/
COPY composer.json composer.lock ./
RUN mkdir -p storage/logs storage/scans storage/reports \
&& chown -R www-data:www-data storage
EXPOSE 9000
CMD ["php-fpm"]
+21
View File
@@ -0,0 +1,21 @@
server {
listen 80;
server_name localhost;
root /var/www/html/public;
index index.php;
location / {
try_files $uri $uri /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass app:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\. {
deny all;
}
}