No description
  • PHP 49.6%
  • Blade 39.5%
  • Makefile 9.3%
  • Dockerfile 1.6%
Find a file
2026-05-10 07:08:15 +02:00
docker first commit 2026-05-10 07:08:15 +02:00
src first commit 2026-05-10 07:08:15 +02:00
.env.example first commit 2026-05-10 07:08:15 +02:00
.gitignore first commit 2026-05-10 07:08:15 +02:00
docker-compose.yml first commit 2026-05-10 07:08:15 +02:00
Makefile first commit 2026-05-10 07:08:15 +02:00
README.md first commit 2026-05-10 07:08:15 +02:00

Laravel Entwicklungsumgebung

PHP 8.3 · Laravel 12 · MySQL 8 · Nginx · Mailpit

Voraussetzungen

  • Docker Desktop (Mac/Windows)
    oder Docker Engine + Docker Compose v2 (Linux)
  • make (auf Windows: Git Bash oder WSL empfohlen)

Erststart

# 1. Projekt klonen / diesen Ordner öffnen
cd laravel-dev

# 2. Alles auf einmal einrichten und starten
make setup

make setup erledigt automatisch:

  • .env-Dateien anlegen
  • Docker-Images bauen
  • Container starten
  • Laravel via Composer installieren
  • APP_KEY generieren
  • Session- & Queue-Tabellen anlegen (Datenbank-Treiber, kein Redis)
  • Migrationen + Seeder ausführen

URLs

Dienst Adresse
App http://localhost:8080
Mailpit http://localhost:8025
MySQL localhost:3306

Tägliche Arbeit

make up          # Container starten
make down        # Container stoppen
make logs        # Live-Logs aller Container

make shell       # Bash im PHP-Container (für composer, artisan etc.)
make tinker      # Laravel Tinker (REPL)
make mysql       # MySQL-Shell

Datenbank

make migrate     # Neue Migrationen ausführen
make seed        # Seeder ausführen
make fresh       # Alles zurücksetzen + neu migrieren + seeden

Tests (PHPUnit)

make test                    # Alle Tests
make test-f F=AuthTest       # Einzelner Test / Filter
make coverage                # HTML-Report in src/storage/coverage/

Projektstruktur

laravel-dev/
├── docker-compose.yml
├── Makefile
├── .env.example             ← Docker-Variablen (DB-Passwörter etc.)
├── docker/
│   ├── php/
│   │   ├── Dockerfile       ← PHP 8.3 FPM + alle Extensions
│   │   └── php.ini          ← Dev-Einstellungen
│   ├── nginx/
│   │   └── default.conf     ← Laravel-optimierte Nginx-Config
│   └── mysql/
│       └── my.cnf           ← UTF8MB4, Slow-Query-Log
└── src/                     ← Laravel-Projektordner (wird gemountet)
    └── .env.example         ← Laravel .env Vorlage

Spatie Permission einrichten (RBAC)

Nach make setup im PHP-Container:

make shell

composer require spatie/laravel-permission
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
php artisan migrate

Dann in app/Models/User.php den Trait ergänzen:

use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable {
    use HasRoles;
}

Auth-Scaffolding (Laravel Breeze)

make shell

composer require laravel/breeze --dev
php artisan breeze:install blade
php artisan migrate
npm install && npm run dev

Häufige Probleme

MySQL startet nicht: Volumes löschen und neu starten:

docker compose down -v
make setup

Permission-Fehler in storage/:

make shell
chmod -R 775 storage bootstrap/cache

Port 8080 oder 3306 belegt: In docker-compose.yml die Host-Ports anpassen:

ports:
  - "8081:80"   # Nginx
  - "3307:3306" # MySQL