add composer-unused, comprehensive docs, and project restructure

- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-22 15:27:35 +01:00
parent 3eb9cc0ac4
commit 25370a1a55
389 changed files with 40506 additions and 8071 deletions

BIN
docker/.DS_Store vendored

Binary file not shown.

View File

@@ -0,0 +1 @@

View File

@@ -2,6 +2,8 @@ server {
listen 80;
server_name _;
client_max_body_size 10M;
root /var/www/web;
index index.php;

51
docker/nginx/prod.conf Normal file
View File

@@ -0,0 +1,51 @@
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
client_max_body_size 10M;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
root /var/www/web;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
fastcgi_param HTTP_X_FORWARDED_PROTO https;
fastcgi_pass php:9000;
}
location ~* \.mjs$ {
default_type application/javascript;
try_files $uri =404;
expires 30d;
access_log off;
}
location ~* \.(css|js|png|jpg|jpeg|gif|svg|ico|webp)$ {
expires 30d;
access_log off;
}
}

View File

@@ -4,6 +4,7 @@ RUN apt-get update \
&& apt-get install -y --no-install-recommends \
git \
unzip \
libzip-dev \
libmemcached-dev \
zlib1g-dev \
libssl-dev \
@@ -13,7 +14,7 @@ RUN apt-get update \
&& pecl install memcached \
&& docker-php-ext-enable memcached \
&& docker-php-ext-configure gd --with-jpeg --with-webp \
&& docker-php-ext-install pdo_mysql mysqli gd \
&& docker-php-ext-install pdo_mysql mysqli gd zip \
&& rm -rf /var/lib/apt/lists/*
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

View File

@@ -2,3 +2,5 @@ display_errors=1
display_startup_errors=1
error_reporting=E_ALL
memory_limit=256M
upload_max_filesize=10M
post_max_size=12M

7
docker/php/php.prod.ini Normal file
View File

@@ -0,0 +1,7 @@
display_errors=0
display_startup_errors=0
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT
log_errors=1
memory_limit=256M
upload_max_filesize=10M
post_max_size=12M