From b7b44508946608ae85557121d4b76d90369bf1f0 Mon Sep 17 00:00:00 2001 From: FlorianEisenmenger Date: Tue, 26 May 2026 00:27:46 +0200 Subject: [PATCH] logging --- .../src/Controller/RegistrationController.php | 6 +++ httpdocs/upload-build.sh | 49 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 httpdocs/upload-build.sh diff --git a/httpdocs/src/Controller/RegistrationController.php b/httpdocs/src/Controller/RegistrationController.php index d5afb92..569374a 100644 --- a/httpdocs/src/Controller/RegistrationController.php +++ b/httpdocs/src/Controller/RegistrationController.php @@ -4,6 +4,7 @@ namespace App\Controller; use App\Service\RegistrationService; use App\Service\SlugGenerator; +use Psr\Log\LoggerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; @@ -16,6 +17,7 @@ class RegistrationController extends AbstractController private readonly RegistrationService $registrationService, private readonly SlugGenerator $slugGenerator, private readonly string $appDomain, + private readonly LoggerInterface $logger, ) {} #[Route('/register', name: 'app_register')] @@ -79,8 +81,12 @@ class RegistrationController extends AbstractController } catch (\DomainException $e) { return $this->json(['errors' => [$e->getMessage()]], Response::HTTP_UNPROCESSABLE_ENTITY); } catch (\Throwable $e) { + $this->logger->error('Registration failed: ' . $e->getMessage(), ['exception' => $e]); return $this->json(['errors' => ['Ein Fehler ist aufgetreten. Bitte versuche es erneut.']], Response::HTTP_INTERNAL_SERVER_ERROR); } +// } catch (\Throwable $e) { +// return $this->json(['errors' => ['Ein Fehler ist aufgetreten. Bitte versuche es erneut.']], Response::HTTP_INTERNAL_SERVER_ERROR); +// } } #[Route('/verify/{token}', name: 'app_verify')] diff --git a/httpdocs/upload-build.sh b/httpdocs/upload-build.sh new file mode 100644 index 0000000..2a1d35d --- /dev/null +++ b/httpdocs/upload-build.sh @@ -0,0 +1,49 @@ +#!/bin/bash +set -e + +# Ins Verzeichnis des Scripts wechseln (Repo-Root) +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +cd "$SCRIPT_DIR" + +# ══════════════════════════════════════════════════════════════════════ +# Konfiguration – einmalig anpassen +# ══════════════════════════════════════════════════════════════════════ + +SERVER_USER="flo" +SERVER_HOST="h2900109.stratoserver.net" +SERVER_PORT="1122" +BUILD_DIR="/var/www/vhosts/memap.de/httpdocs/timetracking/timetracking-copy/public/build" +WEB_USER="memap" +WEB_GROUP="psaserv" + +# ══════════════════════════════════════════════════════════════════════ + +echo "" +echo "╔══════════════════════════════════════╗" +echo "║ spawntree Timetracker – Build ║" +echo "╚══════════════════════════════════════╝" +echo "" + +# ── 1. Assets lokal bauen ───────────────────────────────────────────── +echo "⏳ [1/4] Assets bauen (DDEV)..." +ddev exec npm run build + +# ── 2. Build-Verzeichnis als tar packen ─────────────────────────────── +echo "⏳ [2/4] Build packen..." +tar -czf /tmp/build.tar.gz -C public --exclude='._*' build/ + +# ── 3. Tar hochladen ────────────────────────────────────────────────── +echo "⏳ [3/4] Build hochladen..." +scp -P "$SERVER_PORT" /tmp/build.tar.gz "$SERVER_USER@$SERVER_HOST:/tmp/" + +# ── 4. Auf dem Server entpacken und Rechte setzen ───────────────────── +echo "⏳ [4/4] Entpacken und Rechte setzen..." +ssh -t -p "$SERVER_PORT" "$SERVER_USER@$SERVER_HOST" \ + "sudo tar -xzf /tmp/build.tar.gz -C $(dirname $BUILD_DIR)/ && \ + sudo chown -R $WEB_USER:$WEB_GROUP $BUILD_DIR && \ + sudo chmod 644 $BUILD_DIR/* && \ + echo '' && ls -la $BUILD_DIR" + +echo "" +echo "✅ Build hochgeladen." +echo ""