Ana içeriğe geç
%50 indirim tüm planlarda, sınırlı süreyle. Başlangıç fiyatı $2.48/mo
17 min left
Geliştirici Araçları ve DevOps

Localhost Uygulamalarını VPS Olmadan Herkese Açık Yayınlama

B Yazan Bill 17 dk okuma
"Localhost'u VPS Olmadan Herkese Açık Yayınla" başlık kartı: bir dizüstündeki yerel uygulama bir tünel üzerinden telefona, tarayıcı penceresine ve ev ağına dallanıyor

Uygulamanız çalışıyor. Geliştirme sunucusunu başlattınız, http://localhost:3000adresini açtınız ve uygulama yapması gerekeni yapıyor. Sonra biri sizden bir bağlantı istiyor ve ekranınızdaki URL'nin sizden başka kimse için bir anlam taşımadığını fark ediyorsunuz.

Bir localhost uygulamasına VPS olmadan herkese açık URL vermenin üç yolu var, artı karşı taraf yerel ağınızdaysa daha hızlı bir seçenek daha; aralarında seçim yapmak bir araç meselesi değil. Mesele, uygulamanın ne kadar süre erişilebilir kalması gerektiği ve dizüstünüz dışında bir yerde çalışıp çalışamayacağı. Aşağıda her yol, URL veren komut ve o URL'nin tam olarak neden çalışmayı bırakacağı var.

Özetle

  • Wi-Fi'nizdeki biri görmeli: geliştirme sunucusunu tüm ağ arayüzlerine bağlayın ve LAN IP'nizi verin. Saniyeler içinde hazır, ziyaretçiniz ağınızdan ayrıldığı an ölü.
  • Önümüzdeki bir saat boyunca herkesin açabileceği bir bağlantı gerekiyor: bir tünel çalıştırın (cloudflared, ngrok, localtunnel, localhost.run). Yaklaşık bir dakikada herkese açık HTTPS URL, yönlendiricide değişiklik yok ve onu başlatan süreçle birlikte ölür.
  • Dizüstünüz kapalıyken de ayakta kalmalı: uygulamayı ücretsiz bir hosting katmanına gönderin. Bu, uygulamayı dizüstünüzden ayırır ve kredi kartı, ticari kullanım ve verilerinizin yeniden başlatmadan sağ çıkıp çıkmayacağı gibi yeni kurallar getirir.
  • Uygulamanız istek anında sunucu koduna ihtiyaç duymuyor: build alın ve statik çıktıyı statik bir host'a koyun. Dizüstünüz olmadan çevrimiçi kalabilir ve uyandırılacak bir uygulama süreci yoktur; host'un hesap ve kullanım limitleri uygun olduğu sürece.
  • Bilinmesi gereken bir varsayılan: next dev ve python -m http.server hiçbir bayrak olmadan zaten tüm ağ arayüzlerini dinliyor. Geliştirme sunucunuzun dizüstünüze özel olduğunu sanıyorsanız, değil.

Uygulamanıza Hangi Yol Uyar

Yerel uygulamanızdan dört yoldan birine giden karar akış şeması: yalnızca LAN, herkese açık tünel, uygulama host'u veya statik build; kurulum süresi, dizüstünün kapalı olup olamayacağı ve her birinin en iyi kullanımıyla

Bu dört yoldan üçü uygulamanıza herkese açık bir internet URL'si verir; ilki yalnızca kendi ağınıza ulaşır, bu da onu hem en hızlı hem de en sınırlı seçenek yapar. Bunları URL'nin ne kadar süre hayatta kalması gerektiğine göre sıralayın, seçim büyük ölçüde kendiliğinden ortaya çıkar.

YolURL'ye kadar geçen süreNe kadar sürerOnu ne öldürürKimin için
Aynı ağSaniyelerİkiniz de ağdaykenZiyaretçiniz başka bir Wi-Fi'ye geçerYan masadaki bir iş arkadaşı ya da kendi telefonunuz
TünelYaklaşık bir dakikaSüreç çalıştığı süreceDizüstünü kapatmak, terminali öldürmek, katmanın limitlerine takılmakBir demo, bir müşteri sunumu, bir webhook testi
Ücretsiz hosting katmanı10 ila 30 dakikaSüresiz, koşulluUyku moduna geçme, geçici dosya sistemi veya planın şartlarıSiz uyurken yanıt vermesi gereken bir şey
Statik build10 ila 20 dakikaSüresizİstek anında sunucu tarafı koda ihtiyaç duymakBuild sırasında tamamen üretilebilen veya istemci tarafında çalışan uygulamalar

Hangi satırların size açık olduğu, kendi projenizde kontrol edebileceğiniz üç şeye bağlı:

  • Uygulama istek anında sunucu kodunuzun çalışmasına ihtiyaç duyuyor mu? Bir Flask veya FastAPI rotası, bir server.js uç noktası ya da isteğe özel sunucu mantığı, sunucu tarafı bir host gerektirir. Build zamanındaki sunucu kodu statik dağıtımı otomatik olarak elemez: Next.js Server Components next buildsırasında çalışabilir ve statik GET Route Handler'lar önceden render edilebilir. Çalışma zamanındaki her istek statik varlık olarak sunulabiliyor ya da doğrudan tarayıcıdan harici bir API'ye gönderilebiliyorsa statik yol hâlâ açıktır.
  • Saklaması gereken bir dosyayı okuyor veya yazıyor mu? Bir veritabanı dosyası (.db, .sqlite), bir yükleme klasörü, düzenlediği bir JSON dosyası. Evetse, dağıtmadan önce host'un depolama modelini kontrol edin. Render ücretsiz web servisleri ve Koyeb ücretsiz örnekleri geçici yerel depolama kullanır; Vercel Functions ise salt okunur bir dosya sistemine ve geçici /tmp alanına sahiptir. Kalıcı durumu, uygulamanın yerel diskinin hayatta kalacağını varsaymak yerine kalıcı bir birime, veritabanına veya nesne depolamaya koyun.
  • Çalışma zamanında bir gizli anahtara ihtiyacı var mı? Bir .env dosyasındaki anahtar ilk iki yolda olduğu gibi çalışır, çünkü uygulama hâlâ makinenizde çalışmaktadır. Diğer ikisinde onu sağlayıcının ortam ayarlarına yeniden girersiniz ve gönderdiğiniz depoda bulunmamalıdır.

Kendi Ağınızda Paylaşın

next dev makinenizdeki her ağ arayüzünü zaten dinliyor (gördüğünüz 0.0.0.0 tam olarak bu anlama geliyor) ve python -m http.serverde öyle. İkisi de bayrak gerektirmez, yani şu anda çalıştırdığınız geliştirme sunucusuna aynı Wi-Fi'deki telefonunuzdan muhtemelen zaten erişilebiliyor.

Next.js, -H seçeneğini bu ana bilgisayar adını değiştirmenin yolu olarak belgeliyor ve varsayılanı 0.0.0.0; Python belgeleri ise modülün tüm arayüzlere bağlandığını söylüyor, tabii --bind 127.0.0.1vermezseniz. Bu da onu bir localhost uygulamasını paylaşmanın en hızlı yolu yapıyor: hesap yok, kurulum yok, dağıtım yok. Diğer yaygın geliştirme sunucularına ise söylemeniz gerekiyor.

# Already listening on all interfaces. Nothing to add.
next dev
python -m http.server 8000
streamlit run app.py

# Needs the flag.
npm run dev -- --host             # Vite
flask run --host=0.0.0.0
uvicorn main:app --host 0.0.0.0   # FastAPI

Vite belgelerine göre: server.host varsayılan olarak localhostdeğerindedir ve komut satırında --host ya da yapılandırma dosyasında server.host: '0.0.0.0' kabul eder. Uvicorn'un varsayılanı 127.0.0.1; bu FastAPI'yi de kapsar, çünkü onu çalıştıran odur. Streamlit server.address değerini boş bırakır ve yapılandırma referansı ayarlanmasının erişimi kısıtladığını belirtir, yalnızca o adrese: boş bırakmak kısıtlama olmadığı anlamına gelir.

Sonra vereceğiniz adrese ihtiyacınız var. Bu, makinenizin yerel ağdaki kendi IP'sidir, localhost:

# macOS
ipconfig getifaddr en0

# Linux
hostname -I

# Windows (PowerShell)
ipconfig | findstr IPv4

Ziyaretçinize http://<that-address>:3000 adresini verin, içeridedir. Sorun tüm yolun biçiminde: o adres ağınızın dışında hiçbir şey ifade etmez. Başka bir Wi-Fi'ye, hücresel ağa ya da evine geçtiği an bağlantı onun için ölüdür.

Not: komut düzgün çalışıyor ama diğer cihaz hâlâ bağlanamıyorsa, neredeyse her seferinde sorun komut değil, işletim sisteminin güvenlik duvarıdır. Apple'ın güvenlik duvarı belgeleri macOS'un henüz izin vermediğiniz bir uygulama için uyarı gösterdiğini ve siz harekete geçene kadar bağlantıyı reddettiğinisöylüyor. Windows ise hangi ağ profilinin geçerli olduğunu sorar ve özel ve genel ağlar için ayrı kurallar tutar. Ev veya ofis ağında Özel'i seçin. Asla Genel'i seçmeyin.

Bir Tünelin Arkasına Koyun

Tünel, uygulamanızın yanında çalışan ve ona herkese açık bir HTTPS adresi veren küçük bir programdır. Tek bir komut yaklaşık bir dakikada localhost'a ücretsiz bir tünel açar; baştan bilmekte fayda var, o komut biter bitmez URL de ölür:

cloudflared tunnel --url http://localhost:3000

Yönlendiricinizde hiçbir şey değişmez, çünkü bağlantı ters yönde kurulur. Makineniz sağlayıcının uç noktasına giden bir bağlantı açar; tarayıcınızın herhangi bir sayfayı yüklemek için kurduğu türden bir bağlantı. Sağlayıcı bunu açık tutar ve gelen istekleri bu bağlantı üzerinden geri iter. Sizin tarafınızdaki gelen portlar kapalı kalır; bu yüzden otel Wi-Fi'sinde, telefon hotspot'unda ve yönlendiricisini kontrol etmediğiniz ev bağlantısında çalışır.

Not: bu son durum, port yönlendirmeyi düşünmeden önce altmış saniyelik bir kontrolü hak ediyor. Yönlendiricinizin durum sayfasını açın, bildirdiği WAN IP'yi bulun ve herhangi bir "IP'm nedir" sorgusundan aldığınız gerçek genel IP'nizle karşılaştırın. WAN IP 100.64.0.0/10içindeyse olası neden CGNAT'tır. WAN IP ile genel IP yalnızca farklıysa yukarıda başka bir NAT katmanı olduğunu bilirsiniz, ama bu CGNAT da olabilir sıradan çift NAT da. Her iki durumda da yalnızca bu yönlendiricide port yönlendirme yeterli olmayabilir. Bu aralık RFC 6598 tarafından paylaşımlı adres alanı olarak ayrılmıştır; İSS'niz adresleri tükendiğinde sizi bunun arkasına koyar.

Seçenekler çoğunlukla sizden önce ne istediklerinde ayrışıyor.

Cloudflare hızlı tünelleri yukarıdaki komuttur: hesap yok, alan adı yok, rastgele bir trycloudflare.com alt alan adı. Cloudflare bunları aynı anda 200 istekle sınırlar, üstünde 429 döner, Server-Sent Events desteklemez ve aynı belgelerde ücretsiz tünellerin test ve geliştirme için olduğunu, üretim sitesi yayınlamak için olmadığını söyler.

ngrok önce kayıt ister, sonra ngrok http 3000. Mevcut ücretsiz plan aylık yenilenmeyen tek seferlik 5 $ dahil kullanım, en fazla 3 çevrimiçi uç nokta, 1 GB aktarım, 20.000 HTTP/S isteği ve ziyaretçinizin tıklayıp geçmesi gereken bir ara uyarı sayfası verir. Ayrıca otomatik atanan ücretsiz bir geliştirme alan adı alırsınız; ngrok bunu 2023'te duyurdu ve URL'nin her yeniden başlatmada değişmesi şikayetini bitirdi.

localtunnel kayıt ve npx dışında kurulum gerektirmez: npx localtunnel --port 3000. Rastgele bir alt alan adı alırsınız ve README açıkça --subdomain bir ad talep eder ama garanti etmez.

localhost.run hiçbir şey kurmaz, çünkü işletim sisteminizde zaten bulunan SSH istemcisini kullanır: ssh -R 80:localhost:3000 localhost.run. Belgeleri indirme gerekmediğini ve ücretsiz alan adları için hesap kurulumu gerekmediğini belirtiyor.

VS Code bunu Ports panelinde sunar; zaten editörde yaşıyorsanız kullanışlıdır. GitHub veya Microsoft girişi ister ve varsayılan ayar sizi tökezletir: yönlendirilen port Özel'dir, yani siz portu Genel'e çevirene kadar ziyaretçinizden sizin hesabınızla giriş yapması istenir. (Takım arkadaşı için sorun değil. Sadece bir bağlantıya tıklamak isteyen müşteri için işe yaramaz.)

Tailscale Funnel da bunu yapar; genellikle kararı belirleyen iki kısıtla: URL yalnızca kendi tailnet alan adınızda yaşayabilir ve yalnızca 443, 8443 ve 10000 portlarını dinleyebilir.

Hangisini seçerseniz seçin, neyi dağıttığınız konusunda net olun. Erişim kontrolü olmayan herkese açık bir tünelde, geliştirme sunucusunun sunduğu her şey o URL'ye sahip herkesin erişimine açıktır; hiç bağlantı vermediğiniz rotalar ve açık bıraktığınız hata ayıklama arayüzleri dahil. On beş dakikalık bir demo için sorun değil. Herkese açık bir Discord'a yapıştırdığınız bir URL için çok daha sorunlu.

Süre dolması sizi hazırlıksız yakalar, çünkü uygulama bozulmuş gibi görünebilir. Buradaki hızlı yolların çoğu hâlâ dizüstünüzde çalışan tünel yazılımına bağlıdır: cloudflared, ngrok, localtunnel veya localhost.run SSH oturumunu durdurun, yönlendirme durur. Tailscale Funnel, --bgile çalıştırdığınızda istisnadır; bu, Funnel yapılandırmasını arka planda çalışır tutar ve yeniden başlatmadan sonra geri yükler. Hiçbiri dizüstünün kendisi çevrimdışıyken yerel uygulamanızı sunamaz. Bir tüneli günlerce açık bırakabilirsiniz; kapak kapanana ya da istek limitine takılana kadar çalışır.

Tünel bir demo için doğru araç, hosting için yanlış araçtır: çalışma süresi dizüstünüzün çalışma süresidir.

Uygulamanın Makinenizden Ayrılmasına İzin Verin

Bu, dizüstünüzün taşıyıcı olmaktan çıktığı ilk yol ve şartların araçlardan daha önemli olduğu ilk yol. Burada işi bitiren bir saat değil. Uyku moduna geçme, dosya sistemi sıfırlama ya da uygulamanızın ücretsiz bir örnekte istediği türden bir şey olmadığına karar veren bir plan.

Aşağıdaki seçenekler sürekli ücretsiz planlardan kısa denemelere kadar uzanıyor. Bazıları limitleri dahilinde bir uygulamayı süresiz çevrimiçi tutabilir; diğerleri sabit bir denemeden sonra durur ya da hesaplama için ücretli hesap ister. Dağıtmadan önce faturalandırma, uyku ve depolama kurallarını kontrol edin.

Aşağıdaki ücretsiz katman şartları 7 Eylül 2026'da her sağlayıcının kendi fiyatlandırma veya belgeleme sayfasından kontrol edildi.

SağlayıcıTicari kullanım?Veriler yeniden başlatmadan sağ çıkar mı?Püf noktası
Netlifyİzin veriliyorEvet, Netlify Blobs veya Database ileBaşlamak için kart yok; aylık Free plan kredilerinin tamamını kullanmak, yükseltme yapmadığınız sürece projeleri bir sonraki faturalandırma dönemine kadar duraklatır
RenderBelirtilmemişYeniden başlatmada kaybolurBaşlamak için kart yok; 15 dakika boşta kalınca uyur; ücretsiz Postgres oluşturulduktan 30 gün sonra sona erer
Cloudflare Pages / WorkersBelirtilmemişEvet, KV, D1, R2 veya Durable Objects ileAyda 500 Pages build'i; ücretsiz Workers günde 100.000 istek
VercelHobby'de yokYeniden başlatmada kaybolurHobby yalnızca kişisel kullanım içindir; fonksiyon dosya sistemi salt okunurdur
GitHub Pagesİzin verilmiyorYalnızca statik çıktıÇevrimiçi işletme, e-ticaret veya ticari SaaS yok; 10 dakikalık dağıtım zaman aşımı
PythonAnywhereBelirtilmemişEvetÜcretsiz hesaplar yalnızca izin listesindeki harici host'lara ulaşır; ücretsiz web uygulaması bir ay sonra sona erer , yenilenmezse
Fly.ioBelirtilmemişEvet, bir Fly Volume ileSürekli ücretsiz katman yok: 2 makine saati veya 7 gün; deneme Machine'leri 5 dakika çalıştıktan sonra otomatik durur ve deneme 20 GB birim depolama içerir; deneme bitince uygulamalar kart ekleyene kadar durur
KoyebBelirtilmemişKalıcı yerel depolama yokKart zorunlu; Koyeb 29 $ ön yetkilendirme blokesi koyup iptal eder, ancak kayıt varsayılan olarak Pro'yu seçer ve Starter'a geçmezseniz orantılı ücretini alır
Hugging Face SpacesBelirtilmemişYeniden başlatmada kaybolurStatic Spaces ücretsizdir; Gradio ve Docker genellikle ücretli plan gerektirir, ancak uygun ücretsiz kişisel hesaplar ZeroGPU üzerinde en fazla iki Gradio Space barındırabilir
RailwayBelirtilmemişEvet, uygulama dahil edilen 0,5 GB birimi kullanıyorsaTek seferlik 5 $ kredili 30 günlük deneme, ardından ayda 1 $ kaynak kredili 0 $ Free plan; kart gerekmez

"Belirtilmemiş", sağlayıcının kendi sayfalarının ücretsiz katman için bu soruya yanıt vermediği anlamına gelir. Bunu evet ya da hayır değil, bilinmeyen olarak değerlendirin.

Bu satırlardan üçü başlamadan önce fazladan bir bakışı hak ediyor. Fly.io'nun sürekli ücretsiz katmanı yok: denemesi 2 makine saati veya 7 gün sonra biter. Koyeb ücretsiz bir örnek içerir, ancak kayıt ve faturalandırma akışı dağıtmadan önce dikkat ister. Hugging Face Static Spaces'i ücretsiz tutar; yeni Gradio ve Docker Space'leri ise sınırlı ZeroGPU istisnası dışında ücretli hesap gerektirir. Railway artık bu uyarı listesine ait değil: 5 $ kredili 30 günlük denemeden sonra artık ayda 1 $ kaynak kredili 0 $ Free plana geçiyor.

Sonra veri meselesi var; çalışan bir uygulama sessizce bozuk bir uygulamaya burada dönüşür. Render'ın ücretsiz web servisleri geçici bir dosya sisteminde çalışır ve belgeleri açık konuşur: oraya yazılan her şey, yüklenen görseller ve yerel SQLite veritabanları açıkça dahil, her yeniden dağıtımda, yeniden başlatmada ve uyku moduna geçişte kaybolur. Vercel'in fonksiyonları yalnızca geçici bir çalışma alanı olan salt okunur bir dosya sisteminde çalışır, dolayısıyla uygulamanızın yazdığı bir SQLite dosyası orada da güvende değildir. Uygulamanız durumu bir dosyada tutuyorsa onu kalıcı depolamaya taşıyın: barındırılan bir veritabanı, nesne depolama ya da platformun sunduğu yerde kalıcı bir birim.

Uyku moduna geçmeyi karar vermeden önce hissetmekte fayda var. Render'ın ücretsiz katmanında 15 dakika boşta kalma servisi uyutur ve bir sonraki istek onu yaklaşık bir dakikada, bir yükleme sayfası göstererek uyandırır; bağlantınıza tıklayan kişinin gördüğü budur. Bir portföy çalışması için omuz silkersiniz. Bağlantıyı görüşme sırasında açan bir müşteri için kötü bir altmış saniyedir.

PythonAnywhere'de tuzağın daha ince bir versiyonu var. Boşta kalınca uyku yok, ama ücretsiz bir web uygulaması bir aylık son kullanma süresi taşır ve PythonAnywhere'in e-postayla gönderdiği yenileme bağlantısına tıklamazsanız durur; ücretsiz hesaplar ayrıca kısıtlı giden internet erişimi alır ve yalnızca izin listesindeki harici host'lara ulaşır. Bu listenin dışındaki bir API'yi çağıran uygulama gayet çevrimiçi durur ve izin verilmeyen o API'ye giden her istekte başarısız olur (hata ayıklaması berbat bir durum, çünkü hiçbir yerde hiçbir şey çökmüş görünmez).

Statik Site Olarak Yayınlayın

Uygulamanızın yaptığı hiçbir şey istek anında sunucu kodu gerektirmiyorsa, statik bir host buradaki "kur ve unut" seçeneğine en yakın olandır: dizüstünüz olmadan çevrimiçi kalabilir ve uyanmayı bekleyen bir uygulama süreci yoktur. Host'un hesap ve kullanım limitleri yine geçerlidir. Sandığınızdan daha fazla uygulama buna uygundur; bu yüzden sunucu tarafı bir host'a ihtiyacınız olduğunu varsaymadan önce o üç sorudan ilkini yanıtlamaya değer.

Kural "backend'i var mı" sorusundan daha dardır. Uygulamanız, yaptığı her istek ya kendi statik dosyalarınıza ya da doğrudan tarayıcıdan başkasının API'sine gidiyorsa uygundur. Tarayıcıdan Supabase'e veya herkese açık bir API'ye erişmek sorun değil; tek uyarı, tarayıcı kodunda duran bir anahtarın yayımladığınız bir anahtar olduğudur. Kapıyı kapatan şey, her istek için kendi kodunuzun bir sunucuda çalışması gerekmesidir.

Uygunsa, süreç kısa:

npm run build   # Vite writes to dist/, a Next.js static export writes to out/

Sonra bu build çıktısını statik bir host'a dağıtın. Cloudflare Pages, Netlify ve Vercel bağlı bir depodan build alabilir. GitHub Pages bir daldan statik dosyalar yayınlayabilir ya da framework'ünüzün build'ini çalıştırıp üretilen çıktıyı dağıtmak için GitHub Actions kullanabilir.

GitHub Pages'in kısıtları baştan önemli olacak kadar keskindir. Yalnızca statik, hesap başına tek bir kullanıcı veya kuruluş sitesi ve bir işletme için ücretsiz hosting olmadığını, e-ticaret sitesi veya ticari SaaS için de olmadığını belirten kullanım limitleri. Uygulamanız ödeme alacaksa, bu daha başlamadan onu eler.

Bu yolda uygulama süreci sona ermesi yoktur. Hosting hesabı aktif ve limitleri dahilinde kaldığı sürece çalışmaya devam eder; uygulama istek anında sunucu tarafı işe ihtiyaç duyduğu an uygun olmaktan çıkar.

Ücretsiz Yolların Bittiği Yer

Ücretsiz yollar hepsi birden değil, farklı yerlerde tıkanır. Statik bir host dizüstü çalışma süresi sorununu zaten çözer ve size kararlı bir sağlayıcı URL'si verir. Ücretsiz bir uygulama host'u da aynısını yapabilir ve bazıları artık kalıcı depolama içeriyor. Gereksinimler üst üste binince VPS anlamlı olmaya başlar: kendi sunucu tarafı sürecinizin çevrimiçi kalması gerekir, öngörülebilir kalıcı depolamaya ihtiyacınız vardır ve ücretsiz planın kaynak ya da kullanım kuralları artık uymaz.

Bu eşiğe saygı göstermeye değer. Tek bir demo sunucu satın almak için neden değildir, düşük trafikli statik bir proje de öyle. Kısa süreli paylaşım için tünelde kalın, uygulama gerçekten statik olduğu sürece statik host'ta kalın ve limitleri çalıştırdığınız şeye uyduğu sürece ücretsiz uygulama host'unda kalın.

Kontrolünüzde her zaman açık bir sunucuya ihtiyacınız olduğunda ve beraberinde gelen operasyonel işi üstlenmeye hazır olduğunuzda VPS'e geçin. Linux VPS'imiz bir seçenektir ve başka bir sağlayıcının benzer VPS'i aynı işi yapabilir. En küçük planın yeterli olacağını varsaymak yerine sunucuyu uygulamaya göre boyutlandırın.

Linux Planlarını Gör

Root erişimi, NVMe ve AMD EPYC gücüne sahip bir Linux VPS üzerinde geliştir.

Linux Planlarını Gör

Bunu yaptığınızda iki şey değişir. Platform host'unun size verdiği git'e push ile dağıtım akışı artık otomatik değildir. Bunu Coolify veya Dokkugibi kendi barındırdığınız bir PaaS ile yeniden kurabilir ya da kendi CI/CD yolunuzu inşa edebilirsiniz; her iki durumda da güncellemeler ve bakım artık sizin sorumluluğunuzdadır.

Diğer değişiklik, kutunun uygulamadan fazlasını barındırmasıdır. Editörünüzün de orada yaşamasını tercih ederseniz Code Server ve Claude Code çalıştırmayı seve seve yapar; bu size bağlı olarak ya hoş bir bonus ya da yepyeni bir hafta sonudur.

Sıkça Sorulan Sorular

Dizüstümü Kapattıktan Sonra Herkese Açık URL'm Neden Çalışmayı Bıraktı?

Çünkü tünel uygulamanıza değil, onu oluşturan sürece bağlıydı. Dizüstünü kapatmak ya da terminali öldürmek o süreci bitirir, herkese açık URL ölür ve uygulamanız gayet iyidir. Tüneli yeniden başlatmak, araç size ayrılmış bir alan adı atamıyorsa yeni bir URL verir. Bağlantının dizüstünüzün uykusundan sağ çıkması gerekiyorsa uygulamanın makinenizden ayrılması gerekir.

Yerel Bir Uygulamayı Herkese Açık URL'ye Koymak İçin Alan Adına İhtiyacım Var mı?

Hayır, neredeyse her durumda. Bir Cloudflare hızlı tüneli, ngrok'un atadığı geliştirme alan adı, localtunnel, localhost.run ve yukarıdaki ücretsiz hosting katmanlarının tümü size kendi alan adlarında ücretsiz bir alt alan adı atar. İstisna, Cloudflare DNS'e zaten eklediğiniz bir alan adı gerektiren Cloudflare adlandırılmış tüneldir.

Farklı Bir Wi-Fi Ağındaki Biri Yerel IP Adresimi Açabilir mi?

Hayır. 192.168.1.42 gibi bir adres, şu anda bağlı olduğunuz ağda o adresi hangi cihaz tutuyorsa onu gösterir; başka herhangi bir ağda bu farklı bir cihaz ya da hiçbir şeydir. Wi-Fi'nizin dışındaki herkesin bunun yerine tünel, ücretsiz hosting katmanı veya statik host'a ihtiyacı vardır.

Uygulamamda Giriş ve Veritabanı Varsa Bunlardan Hangileri Çalışır?

Aynı ağ ve tünel yolları değişmeden çalışır, çünkü uygulama hâlâ makinenizde çalışmaktadır. Giriş ve veritabanı istekleri doğrudan tarayıcıdan barındırılan bir servise gidiyorsa ve hiçbir istek için özel sunucu tarafı kodun çalışması gerekmiyorsa statik dağıtım da işe yarayabilir. Kendi kimlik doğrulama veya veritabanı kodunuz istek anında sunucu gerektiriyorsa bunun yerine sunucu tarafı bir host kullanın. Ücretsiz bir uygulama host'unda kalıcı verileri, uygulamanın yerel dosya sisteminin hayatta kalacağını varsaymak yerine kalıcı depolamada tutun.

Paylaş

Tartışma

Yorumlar

Tartışmaya katılmak için giriş yapın.

Bloga göz at

Okumaya devam et.

Dağıtmaya hazır mısın? 2,48 $/ay'dan başlayan fiyatlarla.

2008'den beri bağımsız bulut. AMD EPYC, NVMe, 40 Gbps. 14 gün para iade garantisi.