Skip to content

Setup & Installation ​

Voraussetzungen ​

  • DDEV v1.25+
  • Docker Desktop oder OrbStack (empfohlen fuer macOS)
  • bun (wird automatisch in DDEV-Containern installiert)
  • Git

Erstinstallation (Ein-Klick) ​

bash
git clone https://git.matev.eu/matev/matev-2026.git matev_2026
cd matev_2026
./setup.sh

Es ist ein Monorepo (keine Submodules) — ein clone holt alle Services. Das setup.sh Script erledigt automatisch:

  1. Hostnames in /etc/hosts eintragen (benoetigt sudo)
  2. Alle DDEV-Services starten (erster Start dauert ca. 5-10 Min)
  3. Admin-Datenbank migrieren und seeden

Manuelle Installation (falls setup.sh nicht gewuenscht) ​

bash
git clone https://git.matev.eu/matev/matev-2026.git matev_2026
cd matev_2026
sudo ./setup-hosts.sh
./ddev-all.sh start
cd admin && ddev exec "php artisan key:generate --force"
cd admin && ddev exec "php artisan migrate --seed"

5. Standard-Zugangsdaten (Entwicklung) ​

Alle lokalen Services werden mit denselben Zugangsdaten geseeded:

ServiceURLLoginPasswort
Filament Adminhttps://admin.matev.ddev.siteadmin@matev.euadmin
Kirby Panelhttps://cms.matev.ddev.site/panelSetup beim ersten Aufruf-
B2B-Portal (Inertia/Vue)https://b2b.matev.ddev.sitedealer@matev.eudealer
Taigahttps://project.matev.ddev.site:33015Superuser via docker exec ddev-matev-project-taiga-back python manage.py createsuperuser-
Penpothttps://design.matev.ddev.site:33003Registrierung beim ersten Aufruf-
Matomohttps://tracking.matev.ddev.site:33013Setup-Wizard beim ersten Aufruf-
Woodpecker CI (server only)https://ci.matev.euvia Forgejo OAuth2-

WARNING

Diese Zugangsdaten sind nur fuer die lokale Entwicklung. In Staging/Production muessen sichere Passwoerter gesetzt werden.

Taeglich arbeiten ​

Alle Services starten/stoppen ​

bash
# Starten
./ddev-all.sh start

# Status pruefen
./ddev-all.sh status

# Stoppen
./ddev-all.sh stop

# Neustarten
./ddev-all.sh restart

Einzelne Services ​

bash
# Nur den CMS-Service starten
cd cms && ddev start

# Logs ansehen
cd admin && ddev logs -f

# In den Container wechseln
cd admin && ddev ssh

Admin-Service (Laravel) ​

bash
cd admin

# Migrationen ausfuehren
ddev exec "php artisan migrate"

# Cache leeren
ddev exec "php artisan cache:clear"
ddev exec "php artisan config:clear"

# Neue Filament-Resource erstellen
ddev exec "php artisan make:filament-resource Product"

# Composer-Pakete installieren
ddev exec "composer install"

CMS (Kirby) / Staging-Frontend (Nuxt) / B2B (Inertia/Vue) ​

bash
# Kirby
cd cms && ddev exec "composer install"

# Nuxt-Staging (Bun, läuft direkt ohne DDEV)
cd ../staging && bun install && bun run dev

# B2B (Laravel + Inertia/Vue in DDEV)
cd ../b2b && ddev start && ddev exec "composer install" && ddev exec "bun install" && ddev exec "php artisan migrate --seed"

Qualitaetssicherung ​

Tests (Pest) ​

bash
cd admin

# Alle Tests ausfuehren
ddev exec "composer test"

# Einzelnen Test ausfuehren
ddev exec "./vendor/bin/pest --filter=ExampleTest"

# Mit Coverage
ddev exec "./vendor/bin/pest --coverage"

Code-Style (Pint) ​

bash
cd admin

# Code automatisch formatieren
ddev exec "composer lint"

# Nur pruefen (ohne Aenderungen)
ddev exec "composer lint:check"

Statische Analyse (PHPStan) ​

bash
cd admin

# Analyse ausfuehren (Level 6)
ddev exec "composer analyse"

Pflege & Wartung ​

Dependencies aktualisieren ​

bash
# Admin + B2B (PHP)
cd admin && ddev exec "composer update"
cd b2b   && ddev exec "composer update"

# CMS (PHP via Kirby)
cd cms && ddev exec "composer update"

# Staging (Bun)
cd staging && bun update

Datenbank ​

bash
cd admin

# Backup erstellen
ddev export-db --file=backup.sql.gz

# Backup einspielen
ddev import-db --file=backup.sql.gz

# Frische Migration (Achtung: loescht alle Daten)
ddev exec "php artisan migrate:fresh --seed"

DDEV aktualisieren ​

bash
# DDEV selbst aktualisieren
brew upgrade ddev

# Container-Images aktualisieren
./ddev-all.sh stop
./ddev-all.sh start

Troubleshooting ​

bash
# DDEV-Router neustarten
ddev poweroff && ddev start

# Einen Service komplett zuruecksetzen
cd admin && ddev delete -O && ddev start

# Docker-Cache leeren (wenn Images veraltet sind)
docker system prune -f

Umgebungsvariablen ​

Admin (.env) ​

VariableBeschreibungDev-Wert
APP_URLAdmin-URLhttps://admin.matev.ddev.site
APP_ENVUmgebunglocal
DB_CONNECTIONDatenbank-Typmariadb (via DDEV)
SANCTUM_STATEFUL_DOMAINSErlaubte Frontend-Domainsstaging.matev.ddev.site,b2b.matev.ddev.site
SESSION_DOMAINCookie-Domain.matev.ddev.site

Staging (Nuxt Runtime Config) ​

VariableBeschreibungDev-Wert
NUXT_PUBLIC_API_BASEREST-Endpunkt (Filament)https://admin.matev.ddev.site/api/v1
KIRBY_URLKirby-KQL-Basis (nuxt-kql)https://matev-cms.ddev.site:33001
KIRBY_API_USERNAME / KIRBY_API_PASSWORDBasic-Auth für KQL (Editor/Admin, damit Drafts sichtbar)—
NUXT_PUBLIC_SITE_URLEigene URLhttp://localhost:3000