From 07d19b19501713ecf2b1cc8f986f5d991d66b66e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fahri=20Can=20Se=C3=A7er?= Date: Tue, 27 Jan 2026 00:52:52 +0300 Subject: [PATCH] Create deploy.md --- deploy.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 deploy.md diff --git a/deploy.md b/deploy.md new file mode 100644 index 0000000..58686d3 --- /dev/null +++ b/deploy.md @@ -0,0 +1,76 @@ +🏗️ Backend Altyapı Kurulum Rehberi (Database & Redis) +Bu doküman, Raspberry Pi üzerinde yeni bir Backend projesi için gerekli olan kalıcı veritabanı ve Redis servislerinin nasıl kurulacağını anlatır. + +⚠️ Mantık: Bu servisler deploy sürecine dahil EDİLMEZ. Sunucuda bir kere kurulur, verileri kalıcı olarak saklar ve Backend projesi buraya bağlanır. + +1. Hazırlık: Docker Ağı Kontrolü +Tüm servislerin (Gitea, App, DB, Redis) birbirini görebilmesi için ortak bir ağda olmaları gerekir. + +Bash +# Ağ var mı kontrol et (Listede 'gitea' yazmalı) +docker network ls + +# Yoksa oluştur: +docker network create gitea +2. PostgreSQL Veritabanı Kurulumu (Kalıcı) +Her yeni proje için port çakışması yaşamamak adına konteyner ismini ve volume ismini projeye özel değiştir. + +Değiştirilecek Yerler: proje-db-ismi, DB_KULLANICI, DB_SIFRE, DB_ADI + +Bash +docker run -d \ + --name proje-adi-postgres \ + --restart always \ + --network gitea \ + -e POSTGRES_USER=db_kullanici \ + -e POSTGRES_PASSWORD=cok_guclu_sifre \ + -e POSTGRES_DB=proje_db_adi \ + -v proje_adi_db_data:/var/lib/postgresql/data \ + postgres:16-alpine +Not: -p (Port) parametresi eklemedik. Çünkü dış dünyaya kapalı olsun, sadece bizim uygulamamız (aynı ağdaki) erişebilsin istiyoruz. Güvenlik için en iyisi budur. + +3. Redis Kurulumu (Kalıcı) +Redis için de projeye özel bir isim veriyoruz. + +Bash +docker run -d \ + --name proje-adi-redis \ + --restart always \ + --network gitea \ + -v proje_adi_redis_data:/data \ + redis:7-alpine +4. Gitea Secrets Ayarları (Bağlantı) + +Veritabanlarını kurduktan sonra Gitea'da Ayarlar -> Actions -> Secrets kısmına gidip aşağıdaki bilgileri ekle. + +🔑 Secret 1: DATABASE_URL +Uygulamanın veritabanını bulması için gerekli bağlantı cümlesi. + +Format: postgresql://KULLANICI:SIFRE@KONTEYNER_ADI:5432/DB_ADI?schema=public + +Örnek (Yukarıdaki kuruluma göre): postgresql://db_kullanici:cok_guclu_sifre@proje-adi-postgres:5432/proje_db_adi?schema=public + +Dikkat: localhost veya IP yerine direkt kurduğun konteyner ismini (proje-adi-postgres) yazıyoruz. Docker isimden tanır. + +🔑 Secret 2: REDIS_HOST +Uygulamanın Redis'i bulması için. + +Değer: proje-adi-redis + +5. Sorun Giderme (Debug) +Eğer bağlantı hatası alırsan şu komutlarla kontrol et: + +Veritabanı ayakta mı? + +Bash +docker ps | grep postgres +Veritabanı loglarını incele: + +Bash +docker logs --tail 50 proje-adi-postgres +Veritabanını sıfırlamak (Silip baştan kurmak) istersen: + +Bash +# DİKKAT: TÜM VERİ SİLİNİR! +docker rm -f proje-adi-postgres +docker volume rm proje_adi_db_data \ No newline at end of file