DokumentationRouting & Access

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.

Routing-Einträge ansehenbash
dwell routing list

Routing 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.

Konfigurierte Adressen ansehenbash
dwell access

dwell 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.

Primäre Projektadresse öffnenbash
dwell open

Eine 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:

Backend auf eine Subdomain verlegenbash
dwell routing update backend --host api.mein-projekt.localhost --path /
dwell up
dwell access

Dwell 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.

Technische Referenz