Routing & Access
Routing legt fest, unter welchem Host und URL-Pfad dein Backend oder Frontend erreichbar sein soll. Access zeigt dir die dazu konfigurierten Adressen.
Was ist eine Route?
Du brauchst Routing, wenn du die lokale Adresse einer Anwendung prüfen oder ändern möchtest. Es ist unabhängig davon, ob dein Code in app, backend oder frontend liegt. Die Einträge stehen in .dwell/dwell.json unter routing.entries.
- id benennt den Eintrag, zum Beispiel backend oder frontend. Nutze diese ID zum Ändern der Route.
- target wählt eine aktive Rolle: backend oder frontend.
- host ist der Hostname ohne Protokoll oder Port, zum Beispiel mein-projekt.localhost.
- path ist der URL-Pfad, zum Beispiel / oder /api. Ein Verzeichnisname im Projekt ist keine URL-Einstellung.
Root, /api oder Subdomain
Die folgenden Beispiele verwenden die Hostbasis mein-projekt. .localhost gehört zur lokalen Entwicklung auf deinem Rechner. Je nach gewählten Rollen legt init unterschiedliche Standardrouten an.
- Nur Backend oder nur Frontend
- Die aktive Rolle liegt am Root: http://mein-projekt.localhost/.
- Symfony, Laravel oder Custom PHP mit Frontend
- Das Frontend liegt unter http://mein-projekt.localhost/, das Backend standardmäßig unter http://mein-projekt.localhost/api.
- CMS mit Frontend
- WordPress, TYPO3 und Shopware 6 erhalten eine eigene Root-URL wie http://cms.mein-projekt.localhost/. Das Frontend bleibt unter http://mein-projekt.localhost/.
- API-Subdomain als Alternative
- Ein Backend kann stattdessen unter http://api.mein-projekt.localhost/ liegen. Wähle die angebotene Backend-URL beim interaktiven init oder ändere später die Route. Diese Adresse entsteht nicht zusätzlich zur /api-Route von selbst.
Bei einem Backend-Prefix entfernt Dwell /api vor der Weitergabe an die Anwendung. Die Anwendung muss ihre erzeugten URLs und Assets trotzdem passend zur äußeren Adresse behandeln. Anwendungen mit mehreren direkten PHP-Einstiegspunkten brauchen eine Root-URL; an einem Backend-Prefix sind direkte PHP-Scriptaufrufe blockiert.
Routen und Adressen ansehen
Führe diese Commands im Projektordner aus. routing list zeigt die Einträge mit ID, Ziel, Host und Pfad. Ein Stern markiert die primäre Route.
dwell routing listRouting definiert die gewünschte Zuordnung; dwell access zeigt die daraus konfigurierten URLs einschließlich des aktuellen Gateway-Ports. Es ist keine Erreichbarkeitsprüfung. Starte mit dwell up und prüfe den Runtime-Status bei Bedarf mit dwell ps.
dwell accessdwell open öffnet die primäre URL im Browser. Vorrang hat eine Frontend-Route am Root, sonst die erste konfigurierte Route. Auch open prüft nicht, ob die Anwendung läuft.
dwell openEine Backend-URL ändern
Angenommen, dein Projekt hat eine aktive Backend-Rolle mit einer Route namens backend. Prüfe zuerst deren ID mit routing list. So verlegst du sie auf eine API-Subdomain am Root:
dwell routing update backend --host api.mein-projekt.localhost --path /
dwell up
dwell accessDwell aktualisiert die Projektkonfiguration und synchronisiert Runtime und Gateway. up stellt anschließend sicher, dass das Projekt mit der neuen Konfiguration läuft. Prüfe die resultierende Adresse mit access. Passe bei Bedarf auch die URL-Einstellungen deiner Anwendung an.
Das lokale Gateway
Das gemeinsame lokale Gateway nimmt Anfragen für deine Projekte entgegen und leitet sie an die passende Rolle weiter. Dafür braucht auch ein reines Frontend-Projekt Docker.
Dwell bevorzugt den lokalen HTTP-Port 80 und kann auf einen höheren Port ausweichen, etwa http://mein-projekt.localhost:18080/. Unter Windows wird der gewählte hohe Port direkt verwendet. Verwende die ausgegebene Adresse statt einen Port selbst zu erraten.
Lokales HTTPS ist optional. Wenn es aktiviert ist, leitet das lokale Gateway HTTP auf seinen HTTPS-Port um; die normalen Projektlinks und access geben weiterhin HTTP-Adressen aus. Die Voraussetzungen und Zertifikatsdetails stehen in der Runtime-Referenz.
Hinweise & Grenzen
Jede aktive Rolle braucht eine Route. Dwell prüft doppelte IDs, kollidierende Hosts und Pfade sowie bereits von anderen Projekten belegte Hosts. tools.[hostBase].localhost ist bei aktivem Mailpit oder phpMyAdmin reserviert. Für eigene Domains außerhalb der verwalteten .localhost-Namen musst du die Namensauflösung selbst einrichten.
Als Nächstes
Nutze den Services-Guide für Datenbank, Mailpit und phpMyAdmin. Allgemeine Host- und Projekteinstellungen findest du unter Konfiguration.