🚀 Raspberry Pi Proje Dağıtım Rehberi (Checklist) Bu rehber, mevcut merkezi altyapıyı (Gitea, Runner, Central Database, Nginx) kullanarak yeni NestJS (Backend) ve Next.js (Frontend) projelerini nasıl ayağa kaldıracağını adım adım açıklar. 🏗 1. Altyapı Hazırlığı (Infrastructure) A. Veritabanı Oluşturma Her yeni proje için merkezi PostgreSQL konteynerinde yeni bir veritabanı açılmalıdır. code Bash # PROJE_ADI kısmını küçük harf ve boşluksuz yaz (örn: e_ticaret_db) docker exec -it backend_db createdb -U 'Rub1c0N-UseR.!' PROJE_ADI_db B. DNS Ayarları Domain panelinden (Cloudflare vb.) yeni subdomain'leri Raspberry Pi'nin dış IP'sine yönlendir: api-proje.bilgich.com -> Raspberry Pi IP ui-proje.bilgich.com -> Raspberry Pi IP 🔐 2. Gitea Secret Ayarları Gitea reponuzda Settings > Actions > Secrets yolunu izleyerek aşağıdaki anahtarları tanımlayın. Backend İçin: Key Value Örneği DATABASE_URL postgresql://Rub1c0N-UseR.%21:SIFRE%3D@backend_db:5432/PROJE_ADI_db?schema=public JWT_SECRET en_az_32_karakterli_rastgele_string Frontend İçin: Key Value Örneği NEXT_PUBLIC_API_URL http://api-proje.bilgich.com/api NEXTAUTH_URL http://ui-proje.bilgich.com NEXTAUTH_SECRET openssl_rand_base64_32_cikti Not: DATABASE_URL içinde özel karakter varsa: ! -> %21, = -> %3D kullanmayı unutma. 🛠 3. Backend (NestJS) Proje Ayarları main.ts: Global prefix ve Swagger yollarını kontrol et. Dockerfile: Mevcut çalışan NestJS Dockerfile'ı kullan. deploy.yml Değişiklikleri: --name backend-PROJE-container (Unique isim) -p 150X:3000 (Sıradaki boş port: 1502, 1503...) --network gitea-server_gitea (Doğru network adı) 🎨 4. Frontend (Next.js) Proje Ayarları next.config.js: output: 'standalone' satırını ekle. Dockerfile: ARG ve ENV satırlarına NEXT_PUBLIC_ değişkenlerini ekle. deploy-ui.yml Değişiklikleri: --build-arg ile tüm Gitea secret'larını build aşamasına geç. --name ui-PROJE-container (Unique isim) -p 180X:3000 (Sıradaki boş port: 1801, 1802...) -e NEXTAUTH_URL ve NEXTAUTH_SECRET runtime değişkenlerini ekle. 🚦 5. Nginx Yönlendirmesi Her servis için yeni bir Nginx konfigürasyonu oluşturulmalıdır. Dosya Oluştur: code Bash sudo nano /etc/nginx/sites-available/proje-api # Backend için sudo nano /etc/nginx/sites-available/proje-ui # Frontend için Config İçeriği (Örnek): code Nginx server { listen 80; server_name api-proje.bilgich.com; location / { proxy_pass http://127.0.0.1:150X; # Uygulamanın dış portu include proxy_params; # Veya standart proxy headerları } } Aktif Et ve Reload: code Bash sudo ln -s /etc/nginx/sites-available/proje-api /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx 💡 "Senior" İpuçları & Bakım Port Yönetimi: Kullandığın portları bir yere not et: 1501: Test BE, 1502: Proje2 BE... 1800: Test UI, 1801: Proje2 UI... Disk Temizliği: Raspberry Pi diski dolmaması için haftalık temizlik yap: code Bash docker system prune -f Performans İzleme: RAM ve CPU durumunu kontrol et: code Bash htop docker stats Log Takibi: Bir sorun olduğunda ilk buraya bak: code Bash docker logs -f KONTEYNER_ADI Bu sistem, Raspberry Pi'nin kaynaklarını en verimli şekilde kullanacak şekilde tasarlanmıştır. 🚀