gaogaoGao Kaptan Docsv0.90.x
Örnekler

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 — ham ubuntu imajı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

Pod çalışıyor — imaj ubuntu:24.04, durum Running

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 --version
git version 2.43.0
Python 3.12.3

Repo'yu klonla

cd /root
git clone https://github.com/mmumshad/simple-webapp-flask.git
ls -1 simple-webapp-flask
Dockerfile
LICENSE
README.md
app.py
requirements.txt

Uygulama 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.txt
Flask        3.1.3

Uygulamayı ç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-you
Welcome!
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.

Networking sekmesi — Dış Erişim & API

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!

Uygulama relay üzerinden tarayıcıda

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ımDeğiştireceğiniz yer
Klonlamagit clone adresi
Bağımlılıklarpip install yerine npm ci, go mod download, bundle install…
ÇalıştırmaUygulamanızın başlatma komutu — 0.0.0.0'a bağlanmalı
PortPod'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

BelirtiSebep
git clone takılıyor / DNS hatasıİnternet erişimi kapalı (firma izni ya da pod anahtarı)
externally-managed-environmentUbuntu 24.04 PEP 668 — sanal ortam kullanın
Relay açılıyor ama sayfa gelmiyorUygulama 127.0.0.1'e bağlanmış; 0.0.0.0 olmalı
Terminal kapanınca uygulama duruyorsetsid nohup … & ile arka plana alın
Pod açılır açılmaz kapanıyorsleep infinity komutu verilmemiş
Bu sayfa yardımcı oldu mu?

On this page