# 🚀 SkriptAI Otomatik Deploy (CI/CD) Rehberi Bu rehber, projenin **Gitea Actions** kullanılarak otomatik olarak build edilip Raspberry Pi sunucusuna deploy edilmesini sağlar. ## 1. Gitea Runner Kurulumu (Sunucuda) CI/CD işleminin çalışması için sunucunda (Raspberry Pi) bir Gitea Runner çalışıyor olmalı. ```bash # act_runner'ı indir (Mimarine uygun olanı seç, örn: linux-arm64) wget https://dl.gitea.com/act_runner/0.2.6/act_runner-0.2.6-linux-arm64 -O act_runner chmod +x act_runner # Register et (Gitea Admin Panel -> Actions -> Runners -> Create Runner token'ı ile) ./act_runner register # Servis olarak çalıştır (Daemon) ./act_runner daemon ``` ## 2. Gitea Secrets Ayarları Gitea reponuzda **Settings -> Actions -> Secrets** menüsüne giderek aşağıdaki değişkenleri ekleyin: | Secret Adı | Değer Örneği | Açıklama | |---|---|---| | `DOCKER_USERNAME` | `fahricansecer` | Docker Hub veya Registry kullanıcı adı | | `DOCKER_PASSWORD` | `******` | Docker Hub Access Token veya şifre | | `HOST` | `192.168.1.100` | Raspberry Pi IP Adresi (Gitea ile aynı sunucu olsa bile IP yazın) | | `USERNAME` | `pi` | Sunucu SSH kullanıcı adı | | `KEY` | `-----BEGIN OPENSSH PRIVATE KEY...` | SSH Private Key (Sunucuya şifresiz erişim için) | | `PORT` | `22` | SSH Portu | | `DATABASE_URL` | `postgresql://...` | Production DB bağlantı linki | | `REDIS_HOST` | `skript-redis` | Redis host adı | | `JWT_SECRET` | `cok_gizli_anahtar` | JWT imzalama anahtarı | | `GEMINI_API_KEY` | `AIza...` | Google Gemini API anahtarı | ## 3. Workflow Dosyası Proje kök dizininde `.gitea/workflows/deploy.yaml` dosyası oluşturulmuştur. Bu dosya her `main` branch'ine push yapıldığında çalışır: 1. **Build**: Docker imajını oluşturur (`node:20-alpine` tabanlı). 2. **Push**: İmajı Docker Hub'a (veya ayarlı registry'e) yollar. 3. **Deploy**: SSH ile sunucuya bağlanır, eski konteyneri durdurur ve yeni imajı çeker. ## 4. Manuel Tetikleme Eğer `deploy.md` dosyasındaki veritabanı kurulumlarını henüz yapmadıysanız, önce **Altyapı Kurulumu** başlığındaki (bir önceki versiyonda yazan) `docker run` komutlarıyla `postgres` ve `redis` konteynerlerini bir kereye mahsus sunucuda ayağa kaldırın. Bu CI/CD sadece `skript-be` uygulamasını günceller.