47 lines
2.3 KiB
Markdown
47 lines
2.3 KiB
Markdown
# 🚀 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. |