2.3 KiB
2.3 KiB
🚀 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ı.
# 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:
- Build: Docker imajını oluşturur (
node:20-alpinetabanlı). - Push: İmajı Docker Hub'a (veya ayarlı registry'e) yollar.
- 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.