# Contao Blueprint DDEV-basiertes Contao 5 Projekt-Blueprint für schnellen lokalen Entwicklungsstart. --- ## Voraussetzungen - [Docker](https://docs.docker.com/get-docker/) - [DDEV](https://ddev.readthedocs.io/en/stable/#installation) --- ## 🚀 Schnellstart ```bash # 1. Blueprint-Dateien in neues Projektverzeichnis kopieren # 2. Projektname anpassen (in .ddev/config.yaml): name: mein-projekt-name # 3. Git initialisieren git init git remote add origin # 4. Setup ausführen — erledigt alles automatisch bash scripts/setup.sh ``` Das war's. Am Ende des Setups wirst du aufgefordert einen Admin-Benutzer anzulegen. - **Frontend:** https://mein-projekt-name.ddev.site - **Backend:** https://mein-projekt-name.ddev.site/contao - **phpMyAdmin:** https://mein-projekt-name.ddev.site:8036 --- ## 📋 Was setup.sh automatisch macht 1. `.env` mit DDEV-Datenbankverbindung anlegen 2. DDEV Container starten 3. phpMyAdmin Add-on installieren 4. Composer-Abhängigkeiten installieren 5. Contao Web-Verzeichnis initialisieren 6. Symlinks setzen 7. Assets installieren 8. Cache leeren 9. Datenbank importieren (falls `db/dump.sql` vorhanden) 10. Contao-Migrationen ausführen 11. Admin-Benutzer anlegen --- ## 🔄 Täglicher Workflow ```bash ddev start # Umgebung starten ddev stop # Umgebung stoppen ddev restart # Umgebung neu starten ddev ssh # In den Container einloggen ddev describe # URLs und Status anzeigen ddev logs # Logs anzeigen ``` --- ## 🗄️ Datenbank ### Lokalen Stand exportieren und einchecken Nach Änderungen im CMS immer exportieren und committen: ```bash bash scripts/db-export.sh git add db/dump.sql git commit -m "db: update dump" git push ``` ### Live-DB lokal ziehen ```bash # Einmalig: .env.local mit Live-Zugangsdaten befüllen # LIVE_SSH_HOST, LIVE_SSH_USER, LIVE_DB_* eintragen bash scripts/pull-live-db.sh ``` > ⚠️ Der Live-Dump wird lokal importiert aber **nicht** ins Git eingecheckt. --- ## 🔧 Projekt zurücksetzen Kompletten Neustart — löscht Container, vendor/ und composer.lock: ```bash bash scripts/reset.sh ``` --- ## ➕ Neuer Entwickler / neuer Rechner ```bash git clone cd mein-projekt bash scripts/setup.sh ``` --- ## ⚙️ Konfiguration anpassen ### Projektname In `.ddev/config.yaml`: ```yaml name: mein-projekt-name ``` ### Contao-Version In `composer.json`: ```json "contao/manager-bundle": "5.7.*" ``` ### PHP-Version In `.ddev/config.yaml`: ```yaml php_version: "8.3" # Alternativ: 8.4 (experimentell) ``` Nach Änderungen: `ddev restart` ### Extensions hinzufügen In `composer.json` unter `require` eintragen: ```json "vendor/extension-name": "*" ``` Dann: ```bash ddev exec composer update ``` --- ## 📚 Nützliche DDEV-Befehle ```bash # Composer ddev exec composer install ddev exec composer update ddev exec composer require vendor/paket # Contao Console ddev exec vendor/bin/contao-console contao:migrate ddev exec vendor/bin/contao-console contao:user:create ddev exec vendor/bin/contao-console cache:clear ddev exec vendor/bin/contao-console cache:warmup ddev exec vendor/bin/contao-console contao:symlinks ddev exec vendor/bin/contao-console assets:install public # Datenbank ddev import-db --file=db/dump.sql # DB importieren ddev export-db --file=db/dump.sql # DB exportieren ddev mysql # MySQL CLI öffnen # PHP ddev php -v # PHP-Version anzeigen ddev exec php -i # phpinfo ausgeben ``` --- ## 🌐 Live-Server einrichten Auf dem Live-Server einmalig eine `.env.local` anlegen: ```bash APP_ENV=prod APP_SECRET=einEchtesGeheimnis DATABASE_URL=mysql://user:pass@localhost:3306/dbname ``` Diese Datei liegt **nicht** im Git und wird nie überschrieben.