Files
skript-be/mds/deploy.md
Fahri Can Seçer bbec8f09bb
Some checks failed
Build and Deploy Backend / build-and-push (push) Failing after 3m5s
Build and Deploy Backend / deploy (push) Has been skipped
main
2026-01-28 02:31:36 +03:00

47 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 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.