Yaklaşık 7 dakikalık okuma
Serinin önceki yazılarında Claude AI, GitHub ve Coolify‘ı ayrı ayrı tanıttık. Bu yazıda üçünü birleştirip gerçek bir iş akışı kuruyoruz: Claude Code ile kodu yazdıracak, private bir GitHub deposunda saklayacak ve her push’ta Coolify ile kendi sunucumuzda otomatik olarak yayına alacağız. Yol boyunca private repo, Deploy Key, GitHub App, webhook ve redeploy token gibi kafa karıştıran kavramları da netleştireceğiz.
Genel Akış
- Claude Code, bilgisayarınızdaki proje klasöründe kodu yazar ve test eder.
- Kod, private bir GitHub deposuna gönderilir (push).
- GitHub, değişikliği webhook ile Coolify’a bildirir.
- Coolify, depoyu çeker, uygulamayı derler ve SSL’li alan adınızda yayına alır.

Kurulum bir kez yapıldıktan sonra yeni bir sürüm çıkarmak, yalnızca git push demekten ibarettir.
Gereksinimler
- Coolify kurulu bir sunucu ve ona yönlendirilmiş bir alan adı
- Bir GitHub hesabı
- Bilgisayarınızda Git ve Claude Code (Claude Pro/Max aboneliği veya API hesabı ile)
1. Adım: Claude Code ile Projeyi Oluşturma
Claude Code’u kurun. Resmi kurulum betiği:
# macOS / Linux
curl -fsSL https://claude.ai/install.sh | bash
# Windows (PowerShell)
irm https://claude.ai/install.ps1 | iex
Node.js kuruluysa npm install -g @anthropic-ai/claude-code ile de kurabilirsiniz. Claude Code ayrıca masaüstü uygulamasında ve VS Code eklentisi olarak da kullanılabilir.
Boş bir klasör oluşturup Claude Code’u başlatın:
mkdir durum-paneli && cd durum-paneli
claude
Ardından ne istediğinizi açıkça yazın. Örnek bir istem:
“Node.js ve Express ile basit bir sunucu durum paneli yap. Ana sayfada bir HTML sayfası olsun, /api/health adresi JSON olarak {status: ‘ok’} dönsün. Port numarasını PORT ortam değişkeninden alsın, yoksa 3000 kullansın. package.json’a start betiği ekle, .gitignore oluştur ve projeyi yerelde çalıştırıp test et.”
Claude Code dosyaları oluşturur, gerekli paketleri kurar, uygulamayı çalıştırıp test eder ve her adımda yaptığı değişiklikleri size gösterir. Kalıcı proje kurallarını (kod stili, kullanılacak komutlar vb.) proje kökündeki CLAUDE.md dosyasına yazarak her oturumda dikkate alınmasını sağlayabilirsiniz.
İpucu: “Port numarasını ortam değişkeninden al” gibi küçük bir detay, uygulamanın Coolify’da sorunsuz çalışmasını sağlar. Gizli bilgileri (API anahtarı, veritabanı parolası) asla koda yazdırmayın; her zaman ortam değişkeninden okutun.
2. Adım: Private GitHub Deposuna Gönderme
Gönderim öncesi .gitignore dosyasında .env ve node_modules/ satırlarının olduğundan emin olun. Ardından GitHub CLI ile private depo oluşturup gönderin:
git init
git add .
git commit -m "İlk sürüm: durum paneli"
gh repo create durum-paneli --private --source=. --push
Bu adımları Claude Code’a da yaptırabilirsiniz: “Değişiklikleri commit et ve durum-paneli adında private bir GitHub deposu oluşturup gönder” demeniz yeterlidir.
Önce Kavramları Netleştirelim
Private bir depoyu yayına almak isteyen herkesin karşılaştığı terimler şunlardır:
| Kavram | Nedir? | Ne işe yarar? |
|---|---|---|
| Private repo | Yalnızca yetkili kişilerin görebildiği depo | Kodunuzu herkese açmadan saklar; Coolify’ın da erişmek için yetkiye ihtiyacı vardır |
| GitHub App | Coolify adına GitHub’da oluşturulan, seçtiğiniz depolara erişim izni olan uygulama | Depoları listeler, çeker ve push’ta otomatik deploy için webhook’u kendisi kurar (önerilen yöntem) |
| Deploy Key | Tek bir depoya erişim veren SSH anahtarı | Coolify’ın o depoyu sadece okuyarak çekmesini sağlar; webhook’u elle kurmanız gerekir |
| Webhook | GitHub’ın bir olay olduğunda (ör. push) belirli bir adrese gönderdiği bildirim | Coolify’ın yeni kodu fark edip yeniden derlemesini tetikler |
| Deploy (redeploy) webhook + API token | Coolify’ın bir uygulamayı yeniden yayınlamak için sunduğu adres ve bu adresi çağırmaya yetki veren anahtar | GitHub Actions veya başka bir sistemden “şimdi yayına al” komutu göndermeyi sağlar |
| Environment variables | Uygulamaya dışarıdan verilen ayarlar (DATABASE_URL, API_KEY vb.) | Gizli bilgileri koddan ayrı tutar |
| GitHub Secrets | GitHub Actions’ın kullandığı şifreli değişkenler | Token gibi bilgileri workflow dosyasına yazmadan kullanmayı sağlar |
Kısaca: Deploy Key ve GitHub App, Coolify’ın kodunuzu okuyabilmesi içindir. Webhook ve API token ise ne zaman yayına alınacağını tetiklemek içindir.

3. Adım (Yöntem A): GitHub App ile Bağlantı (Önerilen)
- Coolify panelinde Sources bölümüne gidin ve + Add ile yeni bir GitHub App oluşturun.
- Yönergeleri izleyerek uygulamayı GitHub hesabınızda kaydedin (register). Coolify sizi GitHub’a yönlendirir ve gerekli izinleri otomatik doldurur.
- Kurulum (install) adımında Only select repositories seçeneğiyle sadece Coolify’ın erişmesini istediğiniz depoları seçin. Tüm depolara erişim vermek yerine seçim yapmak daha güvenlidir.
- Projenizde Add New Resource › Private Repository (with GitHub App) seçin, oluşturduğunuz GitHub App’i ve
durum-panelideposunu seçin. - Build pack olarak Nixpacks bırakın; Node.js projesini otomatik algılar. Ports Exposes alanına uygulamanın dinlediği portu (
3000) yazın. - Domains alanına
https://durum.example.comyazın ve Deploy deyin.
Bu yöntemde otomatik deploy varsayılan olarak açıktır: main dalına yaptığınız her push, uygulamayı yeniden yayınlar. İsterseniz pull request’ler için Preview Deployments özelliğini açarak her PR’ı ayrı bir test adresinde görebilirsiniz.
3. Adım (Yöntem B): Deploy Key ile Bağlantı
GitHub App kurmak istemiyorsanız veya tek bir depo için yetki vermek istiyorsanız Deploy Key kullanabilirsiniz.

1. Anahtar çifti oluşturun (bu anahtar sadece bu iş içindir, passphrase kullanmayın):
ssh-keygen -t ed25519 -f coolify_deploy -N "" -C "coolify-durum-paneli"
2. Özel anahtarı Coolify’a ekleyin: Keys & Tokens › Private Keys › + Add bölümüne coolify_deploy dosyasının içeriğini yapıştırın. Coolify bu ekranda sizin için anahtar oluşturmayı da teklif eder.
3. Açık anahtarı GitHub’a ekleyin: Deponun Settings › Deploy keys › Add deploy key bölümüne coolify_deploy.pub içeriğini yapıştırın. Allow write access kutusunu işaretlemeyin; Coolify’ın sadece okuma yetkisine ihtiyacı vardır.
4. Kaynağı oluşturun: Add New Resource › Private Repository (with Deploy Key) seçin, eklediğiniz anahtarı seçin ve depo adresini SSH biçiminde girin:
[email protected]:kullaniciadi/durum-paneli.git
5. Otomatik deploy için webhook kurun: Bu yöntemde GitHub, push olduğunu Coolify’a kendiliğinden bildirmez. Coolify’da uygulamanın Webhooks sekmesindeki GitHub webhook adresini kopyalayın ve bir GitHub Webhook Secret belirleyin. Ardından GitHub’da deponun Settings › Webhooks › Add webhook bölümünde:
- Payload URL: Coolify’dan kopyaladığınız adres
- Content type:
application/json - Secret: Coolify’da belirlediğiniz değer
- Events: Just the push event
Kaydettikten sonra GitHub, webhook’u test eder; yeşil tik görüyorsanız bağlantı çalışıyordur.
4. Adım: Ortam Değişkenleri
Uygulamanızın ihtiyaç duyduğu gizli bilgileri Coolify’da uygulamanın Environment Variables sekmesine ekleyin. Örneğin:
NODE_ENV=production
API_KEY=buraya-gercek-anahtar
Bu değerler depoda değil, yalnızca Coolify’da durur. Değişiklikten sonra uygulamayı yeniden yayınlamayı (Redeploy) unutmayın. Derleme sırasında gereken değişkenler için Build Variable seçeneğini işaretleyin.
5. Adım (İsteğe Bağlı): GitHub Actions ile Kontrollü Redeploy
Bazen her push’ta doğrudan yayına almak istemezsiniz; önce testlerin geçmesini beklemek istersiniz. Bunun için Coolify’daki otomatik deploy’u kapatıp yayını GitHub Actions üzerinden tetikleyebilirsiniz.
1. Coolify API token oluşturun: Keys & Tokens › API Tokens bölümünden yalnızca deploy yetkisine sahip bir token oluşturun. Token yalnızca bir kez gösterilir; güvenli bir yere kopyalayın.
2. Deploy webhook adresini alın: Uygulamanın Webhooks sekmesindeki Deploy Webhook adresini kopyalayın.
3. GitHub Secrets’a ekleyin: Deponun Settings › Secrets and variables › Actions bölümünde iki secret oluşturun: COOLIFY_WEBHOOK (adres) ve COOLIFY_TOKEN (token).
4. Workflow dosyasını oluşturun: .github/workflows/deploy.yml
name: Test ve Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm test
- name: Coolify redeploy
run: |
curl -fsS --request GET "${{ secrets.COOLIFY_WEBHOOK }}" \
--header "Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}"
Artık testler başarısız olursa yayın tetiklenmez; canlıdaki uygulama bozuk kodla güncellenmez. Bu dosyayı da Claude Code’a yazdırabilirsiniz.
Günlük İş Akışı
Kurulum bittikten sonra yeni bir özellik eklemek şöyle görünür:
- Proje klasöründe
claudekomutunu çalıştırın ve isteğinizi yazın: “Panele disk doluluk oranını gösteren bir kart ekle.” - Claude Code değişikliği yapar ve test eder. Sonucu kontrol edin.
- “Yeni bir dalda commit et ve pull request aç” deyin.
- GitHub’da PR’ı inceleyin (Preview Deployments açıksa test adresinden deneyin) ve birleştirin.
- Coolify,
maindalındaki değişikliği algılar ve birkaç dakika içinde yeni sürüm yayındadır.
Güvenlik Kontrol Listesi
- Depo private olsun;
.envdosyası.gitignoreiçinde bulunsun. - Deploy Key’e yazma yetkisi vermeyin; her depo için ayrı anahtar kullanın.
- GitHub App kurulumunda sadece gerekli depoları seçin.
- Coolify API token’ını yalnızca gereken yetkiyle oluşturun ve sadece GitHub Secrets’ta saklayın.
- Bir anahtar veya token sızdıysa hemen iptal edip yenisini oluşturun.
- Claude Code’a gerçek parolaları vermeyin; örnek değerlerle çalıştırın, gerçek değerleri Coolify’a siz girin.
Sık Karşılaşılan Sorunlar
| Sorun | Olası neden | Çözüm |
|---|---|---|
Permission denied (publickey) | Deploy Key GitHub’a eklenmemiş ya da yanlış anahtar seçilmiş | Açık anahtarın doğru depoda olduğunu ve Coolify’da doğru özel anahtarın seçildiğini kontrol edin |
| Push yapınca deploy olmuyor | Webhook kurulmamış veya secret uyuşmuyor | GitHub’da Webhooks › Recent Deliveries bölümündeki hata koduna bakın |
| 502 / Bad Gateway | Uygulama farklı bir portta dinliyor | Ports Exposes değerini uygulamanın portuyla eşleştirin |
| Derleme başarısız | Eksik bağımlılık veya build değişkeni | Coolify deploy loglarını Claude Code’a gösterip çözüm isteyin |
| Actions’ta 401 hatası | API token yanlış veya yetkisiz | Token’ı yeniden oluşturup secret’ı güncelleyin |
Sonuç
Claude Code kodu yazar, GitHub kodu ve geçmişini güvenle saklar, Coolify da kendi sunucunuzda yayına alır. Bu üçlüyle tek kişilik bir ekip bile, büyük şirketlerin kullandığı CI/CD akışına çok düşük maliyetle sahip olabilir. Sunucu güvenliği için UFW ve düzenli yedekleme rehberlerini de uygulamayı unutmayın.


