Compare commits

..

6 Commits

Author SHA1 Message Date
d9ba5ab4f1 Merge remote-tracking branch 'origin/main' 2026-04-29 19:43:58 +02:00
1816ca5165 Bugfixes 2026-04-29 19:43:45 +02:00
tux
dff7d65476 production deployment stuff 2026-04-29 19:35:11 +02:00
ce57669263 Bugfixes 2026-04-29 18:23:28 +02:00
tux
2444aab204 prod docker stuff 2026-04-26 17:46:21 +02:00
7b2f2de1f0 New mareike version 2026-04-26 17:44:56 +02:00
9 changed files with 83 additions and 7 deletions

5
.dockerignore Normal file
View File

@@ -0,0 +1,5 @@
.ai
.junie
.git
storage
tests

View File

@@ -41,7 +41,7 @@ class CreateController extends CommonController {
$payPerDay = $request->input('eventPayPerDay'); $payPerDay = $request->input('eventPayPerDay');
$payDirect = $request->input('eventPayDirectly'); $payDirect = $request->input('eventPayDirectly');
$billingDeadline = $eventEnd->modify('+1 month'); $billingDeadline = $eventEnd->modify('+6 weeks');
$createRequest = new CreateEventRequest( $createRequest = new CreateEventRequest(
$request->input('eventName'), $request->input('eventName'),

View File

@@ -37,7 +37,7 @@ class UserRegistrationCommand {
return $response; return $response;
} }
$generateActivationCoedeRequest = new GenerateActivationTokenRequest($user); $generateActivationCoedeRequest = new GenerateActivationTokenRequest($user, new \DateTime()->add(new \DateInterval('P1D')));
$generateActivationCoedeDommand = new GenerateActivationTokenCommand($generateActivationCoedeRequest); $generateActivationCoedeDommand = new GenerateActivationTokenCommand($generateActivationCoedeRequest);
$result = $generateActivationCoedeDommand->execute(); $result = $generateActivationCoedeDommand->execute();

View File

@@ -17,7 +17,8 @@ class activationCodeTemplate extends MessageTemplate {
} }
public function composeMessage(EmailAddress $emailAddress, string $activationCode): void { public function composeMessage(EmailAddress $emailAddress, string $activationCode): void {
$this->message = "Dein Aktivierungscode lautet: {$activationCode}" . PHP_EOL . $this->message = "Hallo,<br >dein angefordertet Aktivierungscode lautet: {$activationCode}<br />.
"Gib diesen zusammen mit der Mailadresse {$emailAddress->getValue()} ein."; Gib diesen zusammen mit der Mailadresse {$emailAddress->getValue()} ein.<br /><br />
Hast du keinen Code angefordert?<br />In diesem Fall kannst du die E-Mail ignorieren.";
} }
} }

View File

@@ -42,7 +42,7 @@ return new class extends Migration {
$table->foreignId('cost_unit_id')->nullable()->constrained('cost_units', 'id')->restrictOnDelete()->cascadeOnUpdate(); $table->foreignId('cost_unit_id')->nullable()->constrained('cost_units', 'id')->restrictOnDelete()->cascadeOnUpdate();
$table->string('name'); $table->string('name');
$table->string('identifier'); $table->string('identifier')->unique();
$table->string('location'); $table->string('location');
$table->string('postal_code'); $table->string('postal_code');
$table->string('email'); $table->string('email');

View File

@@ -22,7 +22,7 @@ return new class extends Migration {
$table->foreignId('event_id')->constrained('events', 'id')->cascadeOnDelete()->cascadeOnUpdate(); $table->foreignId('event_id')->constrained('events', 'id')->cascadeOnDelete()->cascadeOnUpdate();
$table->foreignId('user_id')->nullable()->constrained('users', 'id')->cascadeOnDelete()->cascadeOnUpdate(); $table->foreignId('user_id')->nullable()->constrained('users', 'id')->cascadeOnDelete()->cascadeOnUpdate();
$table->string('identifier'); $table->string('identifier')->unique();
$table->string('firstname'); $table->string('firstname');
$table->string('lastname'); $table->string('lastname');
$table->string('nickname')->nullable(); $table->string('nickname')->nullable();
@@ -63,7 +63,7 @@ return new class extends Migration {
$table->dateTime('unregistered_at')->nullable(); $table->dateTime('unregistered_at')->nullable();
$table->foreign('swimming_permission')->references('slug')->on('swimming_permissions')->restrictOnDelete()->cascadeOnUpdate(); $table->foreign('swimming_permission')->references('slug')->on('swimming_permissions')->restrictOnDelete()->cascadeOnUpdate();
$table->foreign('eating_habits')->references('slug')->on('eating_habits')->restrictOnDelete()->cascadeOnUpdate(); $table->foreign('eating_habit')->references('slug')->on('eating_habits')->restrictOnDelete()->cascadeOnUpdate();
$table->foreign('first_aid_permission')->references('slug')->on('first_aid_permissions')->restrictOnDelete()->cascadeOnUpdate(); $table->foreign('first_aid_permission')->references('slug')->on('first_aid_permissions')->restrictOnDelete()->cascadeOnUpdate();
$table->foreign('tenant')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate(); $table->foreign('tenant')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate();
$table->foreign('local_group')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate(); $table->foreign('local_group')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate();

14
docker-compose.prod Normal file
View File

@@ -0,0 +1,14 @@
services:
mareike-app:
build:
context: .
dockerfile: docker/prod.Dockerfile
mareike-nginx:
build:
context: .
dockerfile: docker/Dockerfile.nginx
depends_on:
- mareike-app
ports:
- 9000:80

39
docker/prod.Dockerfile Normal file
View File

@@ -0,0 +1,39 @@
FROM php:8.5-fpm-alpine AS base
ARG UID=1000
ARG GID=1000
ENV USER=mareike
ENV GROUPNAME=$USER
RUN addgroup -g ${GID} -S ${GROUPNAME} \
&& adduser -u ${UID} -D -S -G ${GROUPNAME} ${USER}
RUN apk add --no-cache \
mc \
unzip \
rsync
COPY --chmod=0755 /docker/php/composer.phar /usr/bin/composer
RUN apk add --no-cache --virtual .build-deps \
autoconf \
build-base \
libzip-dev \
libpng-dev \
libxml2-dev \
oniguruma-dev \
nodejs \
npm
RUN docker-php-ext-install mysqli pdo pdo_mysql mbstring zip exif pcntl gd
COPY . /var/www/html
WORKDIR /var/www/html
RUN composer install --no-dev --optimize-autoloader
RUN npm install
RUN npm run build
EXPOSE 9000
RUN mv /var/www/html /src
COPY docker/run-mareike.sh /usr/local/bin/
CMD ["run-mareike.sh"]

17
docker/run-mareike.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/sh
set -e
rsync -rlDog --chown $USER:$GROUPNAME --delete --exclude=/storage /src/ /var/www/html
install -d -m 0755 -o $USER -g $GROUPNAME \
storage \
storage/framework \
storage/framework/cache \
storage/framework/sessions \
storage/framework/views \
storage/app \
storage/app/private \
storage/logs
php artisan migrate --force
exec "php-fpm"