kmc / CLI / Dev Tools / HTTPS
Stabile lokale HTTPS-URLs mit KMC Dev URLs
Von Sebastian Lui · 9.7.2026
Kurzfassung
Mit Dev URLs bekommt jede lokale Web-App eine feste HTTPS-Adresse. KMC erkennt das Framework, reserviert einen Port, konfiguriert Caddy und findet auch Apps in Monorepos.
Bei lokalen Webprojekten passiert schnell dasselbe: Eine App läuft heute auf localhost:3000, morgen auf localhost:5173 und im nächsten Projekt wieder auf einem anderen Port. Spätestens bei mehreren Apps oder einem Monorepo wird daraus unnötige Reibung.
Deshalb hat KMC jetzt Dev URLs. Das Feature gibt unterstützten Web-Apps eine feste lokale HTTPS-Adresse:
https://my-app.kmc.localhost
Statt Ports zu merken, öffne ich künftig immer dieselbe URL. KMC übernimmt die Projekterkennung, reserviert einen freien Port und konfiguriert den lokalen Reverse Proxy.
Links:
- GitHub: marius4lui/kmc
- Dokumentation: Dev URLs in der KMC README
- npm: @marius4lui/kmc
Das Problem mit localhost und Ports
Ein einzelner Dev-Server ist einfach. Mehrere Projekte gleichzeitig sind es nicht. Frontend, API, Admin-App und Landingpage können alle unterschiedliche Ports verwenden. Manche Frameworks wechseln zusätzlich automatisch auf den nächsten freien Port.
Die eigentliche App hat dann keine stabile lokale Identität. Links in Notizen veralten, Browser-Verläufe zeigen alte Ports und bei OAuth, Webhooks oder Cookies muss man immer wieder nachsehen, welche Adresse gerade gilt.
Dev URLs trennt die sichtbare Adresse vom technischen Port. Die App bleibt beispielsweise unter
https://apps-web-landing.kmc.localhost
erreichbar, während sie intern etwa auf 127.0.0.1:43172 läuft.
So funktioniert Dev URLs
Das Feature steckt direkt im interaktiven KMC-Menü:
kmc
Dort wähle ich Dev URLs. KMC erkennt das aktuelle Projekt, legt eine lokale Konfiguration an und erzeugt die passende Caddy-Konfiguration.
Aktuell werden diese App-Typen erkannt:
- Next.js
- Vite
- NestJS
- Express
Für ein neues Projekt sucht KMC einen freien Port im Bereich von 43100 bis 43999. Name, Framework, Projektpfad, Host und Port bleiben lokal gespeichert. Dadurch verwendet das Projekt beim nächsten Start wieder dieselbe Adresse.
Die projektbezogene Konfiguration liegt in:
.kmc/dev.json
Die zusammengeführte Caddy-Konfiguration liegt unter:
~/.config/kmc/Caddyfile
Caddy übernimmt lokales HTTPS
KMC nutzt Caddy als lokalen HTTPS-Reverse-Proxy. Caddy nimmt die Anfrage an die stabile *.kmc.localhost-Adresse entgegen und leitet sie an den gespeicherten Port des Dev-Servers weiter.
Falls Caddy noch nicht installiert ist, zeigt KMC passende Hinweise. Unter Ubuntu oder Debian lautet die Installation beispielsweise:
sudo apt install caddy
Wenn Caddy installiert, aber noch nicht gestartet ist:
caddy start --config ~/.config/kmc/Caddyfile
Danach kann die Konfiguration direkt im Menü über Reload Caddy neu geladen werden.
Für eine HTTPS-Verbindung ohne Browserwarnung muss die lokale Zertifizierungsstelle von Caddy einmal als vertrauenswürdig eingetragen werden:
caddy trust
Alternativ übernimmt das der Menüpunkt Trust local HTTPS certs. Falls der Browser danach noch warnt, hilft meistens ein Neustart des Browsers.
Dev URLs in Monorepos
Besonders nützlich wird das Feature in Monorepos. KMC sucht vom aktuellen Ordner aus nach einem Workspace-Root und erkennt unter anderem:
package.jsonWorkspacespnpm-workspace.yamllerna.jsonturbo.jsonnx.json
Danach scannt KMC die enthaltenen Pakete und typische verschachtelte App-Ordner. Über Select detected project kann ich auswählen, welche App gestartet und über Caddy erreichbar gemacht werden soll.
Die Projektpfade werden in eindeutige lokale Namen umgewandelt:
apps/web/landing
→ https://apps-web-landing.kmc.localhost
apps/web/dashboard
→ https://apps-web-dashboard.kmc.localhost
Dadurch kollidieren zwei Apps mit ähnlichen Ordnernamen nicht miteinander. Wenn eine App an einem ungewöhnlichen Ort liegt, kann ihr Ordner über Change project path manuell ausgewählt werden. Er muss lediglich eine package.json enthalten und als unterstütztes Projekt erkannt werden.
Was das Menü übernimmt
Der Dev-URLs-Bereich bündelt die wichtigsten Schritte an einer Stelle:
- ausgewähltes Projekt starten
- Caddy-Konfiguration neu erzeugen und laden
- lokale HTTPS-Zertifikate vertrauen
- lokalen Namen und Host ändern
- erkannte Monorepo-App auswählen
- Projektpfad manuell setzen
Beim Start verwendet KMC den gespeicherten Port und den zum Framework passenden Dev-Befehl. Next.js wird beispielsweise mit next dev --port gestartet, Vite mit einem expliziten Host und Port.
Warum ich das Feature gebaut habe
KMC sollte von Anfang an wiederkehrende Projektarbeit sichtbar und ausführbar machen. Dev URLs erweitert diese Idee: Nicht nur der Startbefehl wird vereinheitlicht, sondern auch die Adresse, unter der ein Projekt lokal erreichbar ist.
Das ist eine kleine Infrastruktur-Schicht, die vor allem bei vielen parallelen Projekten Zeit spart. Eine App hat einen klaren Namen, eine feste HTTPS-URL und einen reproduzierbaren Startweg. Ports bleiben ein internes Detail.
Für mich ist genau das die Richtung von KMC: weniger Wissen im Kopf, weniger Suchen in der Shell-History und mehr Projektkontext direkt im Tool.