8.8 KiB
Sterntours Laravel Projekt - Initialisierung & Setup
Diese Dokumentation beschreibt die Initialisierung und Einrichtung des Sterntours Laravel-Projekts.
📋 Inhaltsverzeichnis
- Voraussetzungen
- Schnellstart
- Manuelle Installation
- Projekt-Struktur
- Umgebungskonfiguration
- Datenbanken
- Domains & Routing
- Häufige Befehle
- Fehlerbehebung
Voraussetzungen
Bevor du das Projekt initialisierst, stelle sicher, dass folgende Software installiert ist:
-
Docker Desktop (Version 20.10+)
-
Composer (Version 2.0+)
-
Node.js & NPM (Version 16+ empfohlen)
-
Git (für Versionskontrolle)
Schnellstart
Das Projekt kann mit einem einzigen Befehl initialisiert werden:
bash init.sh
Das Script führt automatisch alle notwendigen Schritte aus:
- ✓ Prüft Docker-Installation
- ✓ Erstellt
.envDatei - ✓ Installiert Composer-Dependencies
- ✓ Installiert NPM-Dependencies
- ✓ Generiert Application Key
- ✓ Erstellt Docker-Netzwerke
- ✓ Startet Docker-Container
- ✓ Führt Datenbank-Migrationen aus
- ✓ Erstellt Storage-Links
- ✓ Optimiert die Application
Manuelle Installation
Falls du das Projekt manuell einrichten möchtest:
1. Repository klonen
git clone <repository-url> sterntours
cd sterntours
2. Umgebungsvariablen konfigurieren
cp .env.example .env
Bearbeite die .env Datei nach Bedarf (siehe Umgebungskonfiguration).
3. Dependencies installieren
# Composer Dependencies
composer install
# NPM Dependencies
npm install
4. Application Key generieren
php artisan key:generate
5. Docker Proxy-Netzwerk erstellen
docker network create proxy
6. Docker Container starten (Laravel Sail)
./vendor/bin/sail up -d
7. Datenbank migrieren
./vendor/bin/sail artisan migrate
8. Storage Links erstellen
./vendor/bin/sail artisan storage:link
9. Cache optimieren
./vendor/bin/sail artisan config:cache
./vendor/bin/sail artisan route:cache
./vendor/bin/sail artisan view:cache
Projekt-Struktur
sterntours/
├── app/ # Application Code
│ ├── Console/ # Artisan Commands
│ ├── Http/ # Controllers, Middleware
│ ├── Models/ # Eloquent Models
│ ├── Services/ # Business Logic
│ └── Repositories/ # Data Access Layer
├── config/ # Konfigurationsdateien
├── database/ # Migrations, Seeds, Factories
├── public/ # Öffentliche Assets
├── resources/ # Views, Assets (Sass, JS)
├── routes/ # Route Definitionen
├── storage/ # Logs, Cache, Uploads
├── tests/ # Unit & Feature Tests
├── docker-compose.yml # Docker Setup
├── init.sh # Initialisierungsskript
└── INIT.md # Diese Datei
Umgebungskonfiguration
Wichtige .env Variablen
Haupt-Datenbank (CRM)
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=stern_crm
DB_USERNAME=sail
DB_PASSWORD=password
Stern-Datenbank (Legacy)
DB_CONNECTION_STERN=mysql
DB_HOST_STERN=mysql-stern
DB_PORT_STERN=3306
DB_DATABASE_STERN=stern_db
DB_USERNAME_STERN=sail
DB_PASSWORD_STERN=password
Mail-Konfiguration (Mailpit)
MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_ENCRYPTION=null
Redis Cache
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
Datenbanken
Das Projekt verwendet zwei separate MySQL-Datenbanken:
1. stern_crm (Haupt-CRM)
- Port: 33064
- Verwendung: Haupt-Application, Kundenverwaltung
- Host in Container: mysql
2. stern_db (Legacy Datenbank)
- Port: 33065
- Verwendung: Alte Stern-Tours Daten
- Host in Container: mysql-stern
Datenbankzugriff von außen
# CRM Datenbank
mysql -h 127.0.0.1 -P 33064 -u sail -p stern_crm
# Stern Datenbank
mysql -h 127.0.0.1 -P 33065 -u sail -p stern_db
Domains & Routing
Das Projekt verwendet Traefik als Reverse Proxy und ist über folgende Domains erreichbar:
| Domain | Zweck | Port |
|---|---|---|
https://mein.sterntours.test |
Haupt-Application | 443 |
https://sterntours.test |
Alternative URL | 443 |
https://assets.sterntours.test |
Vite Dev-Server | 5173 |
https://sterntours-mail.test |
Mailpit Dashboard | 8025 |
Hosts-Datei konfigurieren
Füge folgende Einträge zu deiner /etc/hosts (Linux/Mac) oder C:\Windows\System32\drivers\etc\hosts (Windows) hinzu:
127.0.0.1 mein.sterntours.test
127.0.0.1 sterntours.test
127.0.0.1 assets.sterntours.test
127.0.0.1 sterntours-mail.test
Häufige Befehle
Docker Container
# Container starten
./vendor/bin/sail up -d
# Container stoppen
./vendor/bin/sail down
# Container neu bauen
./vendor/bin/sail build --no-cache
# Logs anzeigen
./vendor/bin/sail logs -f
# Spezifischen Service anzeigen
./vendor/bin/sail logs mysql -f
Artisan Befehle
# Migrationen ausführen
./vendor/bin/sail artisan migrate
# Migrationen zurücksetzen
./vendor/bin/sail artisan migrate:rollback
# Seeds ausführen
./vendor/bin/sail artisan db:seed
# Cache leeren
./vendor/bin/sail artisan cache:clear
./vendor/bin/sail artisan config:clear
./vendor/bin/sail artisan route:clear
./vendor/bin/sail artisan view:clear
# Cache optimieren
./vendor/bin/sail artisan config:cache
./vendor/bin/sail artisan route:cache
./vendor/bin/sail artisan view:cache
Composer
# Packages installieren
./vendor/bin/sail composer install
# Package hinzufügen
./vendor/bin/sail composer require <package>
# Package entfernen
./vendor/bin/sail composer remove <package>
# Autoload aktualisieren
./vendor/bin/sail composer dump-autoload
NPM / Assets
# Dependencies installieren
npm install
# Development Build
npm run dev
# Production Build
npm run prod
# Watch Mode
npm run watch
Tests
# Alle Tests ausführen
./vendor/bin/sail test
# Spezifische Test-Datei
./vendor/bin/sail test tests/Feature/ExampleTest.php
# Mit Coverage
./vendor/bin/sail test --coverage
Shell / SSH
# Shell im Container öffnen
./vendor/bin/sail shell
# Root Shell
./vendor/bin/sail root-shell
# MySQL Shell
./vendor/bin/sail mysql
# Redis CLI
./vendor/bin/sail redis
Fehlerbehebung
Problem: "Docker is not running"
Lösung: Starte Docker Desktop und warte, bis es vollständig gestartet ist.
# macOS/Linux
sudo systemctl start docker
# Windows
Starte Docker Desktop über das Startmenü
Problem: "Port already in use"
Lösung: Prüfe, welche Ports belegt sind und ändere sie in der .env Datei:
# Ports prüfen
lsof -i :33064
lsof -i :33065
# In .env ändern
FORWARD_DB_PORT=33064
FORWARD_DB_PORT_STERN=33065
Problem: "Network proxy not found"
Lösung: Erstelle das Traefik Proxy-Netzwerk manuell:
docker network create proxy
Problem: "Permission denied" beim init.sh
Lösung: Mache das Script ausführbar:
chmod +x init.sh
./init.sh
Problem: "Class not found"
Lösung: Regeneriere Composer Autoload:
./vendor/bin/sail composer dump-autoload
./vendor/bin/sail artisan clear-compiled
Problem: "Migration failed"
Lösung: Prüfe Datenbankverbindung und setze zurück:
# Verbindung testen
./vendor/bin/sail artisan tinker
>>> DB::connection()->getPdo();
# Migrationen zurücksetzen
./vendor/bin/sail artisan migrate:fresh
Problem: "Vite/Assets nicht geladen"
Lösung: Starte den Dev-Server:
npm run dev
# oder
npm run watch
Support & Kontakt
Bei Fragen oder Problemen:
- Prüfe die Fehlerbehebung
- Prüfe die Laravel Dokumentation
- Prüfe die Laravel Sail Dokumentation
Changelog
Version 1.0.0 (2025-11-07)
- ✓ Initiales Setup-Script erstellt
- ✓ Dokumentation erstellt
- ✓ Docker Compose Konfiguration
- ✓ Dual-Datenbank Setup
- ✓ Traefik Routing konfiguriert
Viel Erfolg mit dem Projekt! 🚀