Kendi GitHub repo'nuz
Boş bir Ubuntu pod'una kendi GitHub repo'nuzu klonlayın, çalıştırın ve portunu dışarı açın.
Gao Kaptan'da hazır şablon kullanmak zorunda değilsiniz: boş bir Ubuntu pod'u açıp kendi GitHub repo'nuzu klonlayabilir, çalıştırabilir ve dinlediği portu dışarı açabilirsiniz.
Bu sayfadaki adımlar gerçek bir pod üzerinde çalıştırılmıştır; komut çıktıları o testten
alınmıştır. Örnekte küçük bir Flask uygulaması (mmumshad/simple-webapp-flask) kullanıyoruz —
repo adresini kendi repo'nuzla değiştirmeniz yeterli, akış aynıdır.
İnternet erişimi açık olmalı. git clone ve pip install internete çıkar. Kapalıyken
varsayılan-reddet ağ politikası bu iki adımı da engeller. İnternet izni firma seviyesindedir:
firmanızda kapalıysa pod'daki anahtarı açmanız yetmez, yöneticinizden istemeniz gerekir.
Pod'u oluştur
Pod Dağıtımı sayfasından:
- İmaj:
ubuntu:24.04 - Komut:
sleep infinity— hamubuntuimajında uzun süre çalışan bir süreç yoktur; bu komut olmadan pod açılır açılmaz kapanır. - Port: uygulamanızın dinlediği port (bu örnekte
5000), dış erişim (relay): açık - İnternet erişimi: açık
- Kaynak: 2 vCPU / 4 GB bu örnek için fazlasıyla yeter

Portu oluştururken açmayı unuttuysanız sonradan da açabilirsiniz: pod detay → Networking → dış erişimi aç. Pod yeniden başlatılmaz.
Araçları kur
Pod hazır olunca Terminal sekmesinden bağlanın. ubuntu:24.04 minimaldir; git ve
python3 kurulu gelmez:
apt-get update -qq
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq git python3 python3-pip python3-venv
git --version && python3 --versiongit version 2.43.0
Python 3.12.3Repo'yu klonla
cd /root
git clone https://github.com/mmumshad/simple-webapp-flask.git
ls -1 simple-webapp-flaskDockerfile
LICENSE
README.md
app.py
requirements.txtUygulama 0.0.0.0:5000 dinliyor — bu önemli: 127.0.0.1'e bağlanan bir uygulamaya
pod dışından erişilemez.
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)Özel (private) repo klonluyorsanız HTTPS adresi parola sorar ve terminal takılır. Bir
personal access token kullanın:
git clone https://<token>@github.com/<kullanici>/<repo>.git. Token'ı pod'da kalıcı bir yere
yazmayın — ~/.git-credentials dosyası pod'la birlikte durur.
Bağımlılıkları kur
Ubuntu 24.04'te sistem Python'ı korumalıdır (PEP 668): doğrudan pip install
externally-managed-environment hatası verir. Sanal ortam kullanın:
cd /root/simple-webapp-flask
python3 -m venv .venv
.venv/bin/pip install -r requirements.txtFlask 3.1.3Uygulamayı çalıştır
Terminal kapandığında sürecin ölmemesi için setsid nohup ile arka plana alın:
cd /root/simple-webapp-flask
(setsid nohup .venv/bin/python app.py > /tmp/app.log 2>&1 &)
sleep 3
tail -3 /tmp/app.log * Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://10.244.0.164:5000Önce pod'un içinden doğrulayın — dışarıdan denemeden önce uygulamanın gerçekten ayakta olduğunu bilin:
curl -s localhost:5000
curl -s localhost:5000/how-are-youWelcome!
I am good, how about you?Dışarıdan eriş
Pod detay → Networking → "Üret ve Tarayıcıda Aç". Gao Kaptan pod'a özel bir erişim token'ı üretir ve uygulamayı relay üzerinden açar.

Pod'lara özel alan adı yoktur; hepsi tek bir relay adresi üzerinden, ?kaptan_subdomain=
ve ?kaptan_token= ile ayrılır. Tarayıcı yerine programatik erişim için:
curl "https://kptnpods.isnet.net.tr/?kaptan_subdomain=<pod-subdomain>&kaptan_token=<token>"Welcome!
Yalnızca pod'un web portu relay üzerinden yayınlanır. Birden fazla port dinliyorsanız diğerleri için Port Forward kullanın.
İşiniz bitince pod'u silin
Pod çalıştığı sürece ücretlendirilir. Test bittiyse Pod'larım → Sil.
Pod'un dosya sistemi kalıcı değildir: pod silindiğinde /root altındaki her şey gider.
Kalıcı olması gereken veri için pod'a bir kalıcı disk (volume) bağlayın ve repo'yu
oraya klonlayın.
Kendi repo'nuza uyarlarken
| Adım | Değiştireceğiniz yer |
|---|---|
| Klonlama | git clone adresi |
| Bağımlılıklar | pip install yerine npm ci, go mod download, bundle install… |
| Çalıştırma | Uygulamanızın başlatma komutu — 0.0.0.0'a bağlanmalı |
| Port | Pod'un portu ve web portu, uygulamanızın dinlediği portla aynı olmalı |
Node.js için apt-get install -y nodejs npm, Go için apt-get install -y golang-go
adımı eklemeniz yeterli; gerisi aynıdır.
Sık karşılaşılan hatalar
| Belirti | Sebep |
|---|---|
git clone takılıyor / DNS hatası | İnternet erişimi kapalı (firma izni ya da pod anahtarı) |
externally-managed-environment | Ubuntu 24.04 PEP 668 — sanal ortam kullanın |
| Relay açılıyor ama sayfa gelmiyor | Uygulama 127.0.0.1'e bağlanmış; 0.0.0.0 olmalı |
| Terminal kapanınca uygulama duruyor | setsid nohup … & ile arka plana alın |
| Pod açılır açılmaz kapanıyor | sleep infinity komutu verilmemiş |

Gao Kaptan Docs