mein-sterntours/INIT.md
2026-01-23 17:34:40 +01:00

8.8 KiB

Sterntours Laravel Projekt - Initialisierung & Setup

Diese Dokumentation beschreibt die Initialisierung und Einrichtung des Sterntours Laravel-Projekts.

📋 Inhaltsverzeichnis

  1. Voraussetzungen
  2. Schnellstart
  3. Manuelle Installation
  4. Projekt-Struktur
  5. Umgebungskonfiguration
  6. Datenbanken
  7. Domains & Routing
  8. Häufige Befehle
  9. Fehlerbehebung

Voraussetzungen

Bevor du das Projekt initialisierst, stelle sicher, dass folgende Software installiert ist:


Schnellstart

Das Projekt kann mit einem einzigen Befehl initialisiert werden:

bash init.sh

Das Script führt automatisch alle notwendigen Schritte aus:

  1. ✓ Prüft Docker-Installation
  2. ✓ Erstellt .env Datei
  3. ✓ Installiert Composer-Dependencies
  4. ✓ Installiert NPM-Dependencies
  5. ✓ Generiert Application Key
  6. ✓ Erstellt Docker-Netzwerke
  7. ✓ Startet Docker-Container
  8. ✓ Führt Datenbank-Migrationen aus
  9. ✓ Erstellt Storage-Links
  10. ✓ 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
./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:

  1. Prüfe die Fehlerbehebung
  2. Prüfe die Laravel Dokumentation
  3. 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! 🚀