portless - Port numaralarını isim tabanlı .localhost URL'leriyle değiştiren araç
(github.com/vercel-labs)- Yerel geliştirme sırasında port çakışmalarını ve hangi portu kullandığını hatırlama derdini çözen, Vercel Labs imzalı açık kaynak bir yardımcı araç
- Her geliştirme sunucusuna benzersiz bir uygulama.localhost alt alan adı vererek hem insanların hem de yapay zeka ajanlarının anlayabileceği bir URL düzeni sunuyor
next devile çalıştırıldığındahttp://localhost:3000kullanılır ve bu yüzden 3000 portunu hatırlamak gerekir
ancakportless myapp next devçalıştırıldığındahttp://myapp.localhost:1355biçiminde erişilebilir
portless api.myapp pnpm startgibi çalıştırıldığındahttp://api.myapp.localhost:1355ile alt alan adı erişimini de destekler - Proxy tabanlı mimariyle çalışır ve
portless proxyistekleri merkezi olarak yönlendirir- Uygulama çalıştığında proxy otomatik olarak başlar ve her uygulamaya rastgele bir port (4000–4999) atanır
- Çoğu framework (Next.js, Express, Nuxt vb.)
PORTortam değişkenini otomatik olarak algılar - Vite, Astro gibi bazı framework'lerde otomatik flag ekleme özelliğiyle uyumluluk sağlanır
- HTTP/2 ve HTTPS desteğiyle hızlı sayfa yükleme ve güvenli yerel iletişim sağlar
- Tarayıcılar HTTP/1.1'de her host için bağlantı sayısını 6 ile sınırlar
- Vite/Nuxt gibi çok sayıda sıkıştırılmamış dosya sunan geliştirme sunucularında performans düşebilir
- HTTP/2 ise tüm istekleri tek bir bağlantı üzerinden çoklar
- Kendi sertifikasını üretme ve sistem güven deposuna kaydetme işlemlerini otomatikleştirir
--cert,--keyseçenekleriyle özel sertifika da kullanılabilir
- Tarayıcılar HTTP/1.1'de her host için bağlantı sayısını 6 ile sınırlar
- Komut odaklı bir CLI arayüzü sunar
portless <name> <cmd>: belirtilen adla uygulamayı çalıştırırportless list: etkin route listesini gösterirportless proxy start/stop: proxy'yi kontrol ederPORTLESS=0ortam değişkeniyle proxy atlanarak çalıştırılabilir
- Durum yönetimi dizini üzerinden route ve PID bilgilerini saklar
- Normal kullanıcı modunda
~/.portless, root modunda/tmp/portlesskullanılır PORTLESS_STATE_DIRile yol yeniden tanımlanabilir
- Normal kullanıcı modunda
- Vite, webpack-dev-server vb. araçlarda API proxy ayarı yapılırken
Hostbaşlığının yeniden yazılması gerekir- Yanlış yapılandırmada
508 Loop Detectedyanıtıyla sorun bildirilir
- Yanlış yapılandırmada
- Node.js 20 ve üzeri, macOS ve Linux ortamlarını destekler
- pnpm + Turborepo tabanlı monorepo yapısı
- Apache-2.0 lisansı, TypeScript (yaklaşık %74) kod tabanı
7 yorum
Worktree desteği eklenecek şekilde güncellendi
https://github.com/vercel-labs/portless/releases/tag/v0.5.2
Artık worktree’yi otomatik olarak algılayıp branch adını host’un önüne ekliyor
Aynı projenin worktree yapısıyla pek uyumlu olmadığı için kullanmıyorum.
Bunun otomatik atama yaptığını sanmıştım ama meğer sadece elle kaydetme yöntemiymiş.
Caddy kullanıyorum; özellikle bununla değiştirmem için bir sebep yok gibi görünüyor.
Bunu zaten
docker+traefik+mkcertile yapıyordum ama bunu kullanmak daha pratik olacak gibi görünüyorFaydalı bir yazı olmuş.
Artık EADDRINUSE hatasına bay bay mı?
Bu aralar ajanlarla oradan buradan bir sürü şey geliştirip durunca her şeyi rastgele ayağa kaldırıyorlar, sonra da kendi aralarında çakışıp ortalık karışıyor haha
X'te konuşuluyordu; Docker'da kullanılıyorsa Docker daemon PID'si zorla verilirse onun da çalıştığı söyleniyor.
https://github.com/vercel-labs/portless/issues/61