Stack & Setup
- Dockerisierte Dev-Umgebung (PHP 8.4-FPM, Nginx, MariaDB 11.4)
- Symfony 7.4 + API Platform 4.3, Doctrine ORM, LexikJWT, Messenger
- Vue 3 + TS (Vite), Vue Router, Pinia, Axios
Kern-Domäne & Auth
- Entitäten: User, PlatformPlan, Reseller, Company, Domain, Location,
Employee, ContactLink (UUIDv7)
- JWT-Login (/api/login), Rollen-Hierarchie, /api/me
- Mandantentrennung via API-Platform-Query-Extension (Lesen) +
TenantStampProcessor (Schreiben)
Öffentliche Profile (SSR)
- Profil-Landingpage, vCard-Download, QR-Code im Marken-Look
- Stabiler NFC/QR-Kurz-Link /t/{code} -> Redirect aufs aktuelle Profil
- Firmenspezifisches Branding (Farben/Logo) auf der Profilseite
Verwaltungsoberfläche (SPA)
- Brand-Look (dunkle Sidebar), rollenbasierte Navigation
- Dashboard, Reseller (+Provisioning), Firmen, Mitarbeiter, Standorte,
Domains, Design/Branding mit Live-Vorschau
Konzept & Doku: docs/KONZEPT.md (inkl. Wallet/Sync §12), README.md
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
26 lines
1.0 KiB
Docker
26 lines
1.0 KiB
Docker
FROM php:8.4-fpm-bookworm
|
|
|
|
# System-Abhängigkeiten für die PHP-Extensions
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
git unzip libicu-dev libzip-dev libpng-dev libjpeg-dev libfreetype6-dev \
|
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
|
&& docker-php-ext-install -j"$(nproc)" intl pdo_mysql zip gd opcache \
|
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Composer aus dem offiziellen Image übernehmen
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
|
|
# Symfony CLI (praktisch für Maker/Server/Checks)
|
|
RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | bash \
|
|
&& apt-get update && apt-get install -y --no-install-recommends symfony-cli \
|
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Nicht-root-User passend zur Host-UID (vermeidet Datei-Rechte-Probleme)
|
|
ARG UID=1000
|
|
ARG GID=1000
|
|
RUN groupmod -g "${GID}" www-data 2>/dev/null || true \
|
|
&& usermod -u "${UID}" -g "${GID}" www-data 2>/dev/null || true
|
|
|
|
WORKDIR /app
|
|
USER www-data
|