- 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 dev ile çalıştırıldığında http://localhost:3000 kullanılır ve bu yüzden 3000 portunu hatırlamak gerekir
ancak portless myapp next dev çalıştırıldığında http://myapp.localhost:1355 biçiminde erişilebilir
portless api.myapp pnpm start gibi çalıştırıldığında http://api.myapp.localhost:1355 ile alt alan adı erişimini de destekler
- Proxy tabanlı mimariyle çalışır ve
portless proxy istekleri 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.)
PORT ortam 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, --key seçenekleriyle özel sertifika da kullanılabilir
- Komut odaklı bir CLI arayüzü sunar
portless <name> <cmd> : belirtilen adla uygulamayı çalıştırır
portless list : etkin route listesini gösterir
portless proxy start/stop : proxy'yi kontrol eder
PORTLESS=0 ortam 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/portless kullanılır
PORTLESS_STATE_DIR ile yol yeniden tanımlanabilir
- Vite, webpack-dev-server vb. araçlarda API proxy ayarı yapılırken
Host başlığının yeniden yazılması gerekir
- Yanlış yapılandırmada
508 Loop Detected yanıtıyla sorun bildirilir
- 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