docs: production env example + Coolify deploy rehberi

.gitignore'da '.env*' pattern'i .env.example'ı da engelliyordu.
'!.env.example' ile istisna eklendi — .env.local hala gizli kalıyor.

.env.example temizlendi — sadece gerçek kullanılan 4 değişken:
- NEXT_PUBLIC_APPWRITE_ENDPOINT
- NEXT_PUBLIC_APPWRITE_PROJECT_ID
- NEXT_PUBLIC_APPWRITE_DATABASE_ID
- NEXT_PUBLIC_APPWRITE_MEDIA_BUCKET_ID

APPWRITE_API_KEY opsiyonel (session-cookie tabanlı auth aktif).

DEPLOY.md eklendi:
- Coolify app oluşturma adımları
- Environment variables tam liste
- Build sonrası kontroller
- Gitea webhook bilgisi
- Domain yönlendirme (3 seçenek)
- Production checklist
This commit is contained in:
Ege Can Komur
2026-05-20 19:53:38 +03:00
parent 1813b96f82
commit f3604d96b8
3 changed files with 107 additions and 1 deletions
+31
View File
@@ -0,0 +1,31 @@
# ──────────────────────────────────────────────────────────────
# Kovak Yazılım — Production Environment Variables
# ──────────────────────────────────────────────────────────────
# Bu dosya GIT'e EKLENİR (örnek değerler, sırlı şey YOK).
# .env.local lokal geliştirme için, .env.production sadece referans.
# Coolify'da bu key'leri "Environment Variables" panelinden gir.
# ──────────────────────────────────────────────────────────────
# ─── Appwrite (zorunlu) ───────────────────────────────────────
# Appwrite Console > Settings'tan al
NEXT_PUBLIC_APPWRITE_ENDPOINT=https://db.kovaksoft.com/v1
NEXT_PUBLIC_APPWRITE_PROJECT_ID=69f27b51000a5bee46ce
NEXT_PUBLIC_APPWRITE_DATABASE_ID=kovak-yazilim-db
NEXT_PUBLIC_APPWRITE_MEDIA_BUCKET_ID=kovak-yazilim-media
# ─── Appwrite API Key (opsiyonel) ─────────────────────────────
# Şu anki mimaride session cookie tabanlı auth kullanılıyor, API
# key'e gerek YOK. Sadece ileride sunucu tarafı admin işlemleri için
# (cron, scheduled jobs vs) eklemek istersen kullanılır.
#
# Console > Settings > API Keys > Create:
# Scopes: databases.read, tables.read, rows.read, rows.write,
# files.read, files.write, users.read
APPWRITE_API_KEY=
# ─── Node ortamı ──────────────────────────────────────────────
# Coolify otomatik 'production' verir, lokalde 'development'
# NODE_ENV=production
+2 -1
View File
@@ -30,8 +30,9 @@ yarn-debug.log*
yarn-error.log* yarn-error.log*
.pnpm-debug.log* .pnpm-debug.log*
# env files (can opt-in for committing if needed) # env files — only ignore real secrets, keep .env.example for reference
.env* .env*
!.env.example
# vercel # vercel
.vercel .vercel
+74
View File
@@ -0,0 +1,74 @@
# Deployment Rehberi — Coolify
## Önkoşullar
1. Coolify'da yeni bir **Application** oluştur:
- Source: Git → `ssh://git.kovaksoft.com:2222/kovakmedya/kovakyazilim.git`
- Branch: `main`
- Build Pack: **Nixpacks** (otomatik Next.js algılar) veya **Dockerfile** yoksa Nixpacks
- Domain: örn. `kovakyazilim.com` veya `yeni.kovakyazilim.com`
- Port: `3000`
2. Build & Start command'ları:
- Install: `npm ci`
- Build: `npm run build`
- Start: `npm start`
## Environment Variables (Coolify > Environment)
```env
NEXT_PUBLIC_APPWRITE_ENDPOINT=https://db.kovaksoft.com/v1
NEXT_PUBLIC_APPWRITE_PROJECT_ID=69f27b51000a5bee46ce
NEXT_PUBLIC_APPWRITE_DATABASE_ID=kovak-yazilim-db
NEXT_PUBLIC_APPWRITE_MEDIA_BUCKET_ID=kovak-yazilim-media
```
> `APPWRITE_API_KEY` şu anda **kullanılmıyor** — mimari session cookie tabanlı. İleride cron/scheduled job eklersen Appwrite Console'dan key oluştur.
## Build sonrası kontroller
1. Site yükleniyor mu? → `https://[domain]/`
2. Admin login çalışıyor mu? → `https://[domain]/admin/login`
- İlk admin kullanıcısını **Appwrite Console > Auth > Users** üzerinden oluştur
3. Cookie banner çıkıyor mu? → Anasayfa açıldığında 800ms sonra
4. WhatsApp float + sticky mobil bar görünüyor mu?
## Gitea Webhook
Coolify, Gitea'dan push webhook'unu otomatik yapılandırır:
- URL (Gitea > Settings > Webhooks): `https://admin.kovaksoft.com/webhooks/source/gitea/events/manual`
- Event: `push`
- Branch filter: `main`
Her `git push origin main` Coolify'da otomatik build + deploy tetikler.
## Domain yönlendirmesi
Mevcut WP sitesi `kovakyazilim.com`'da. Geçiş seçenekleri:
| Yaklaşım | Açıklama |
|---|---|
| **A. Tek seferlik geçiş** | DNS kaydını Coolify'a yönlendir. WP yedeğini al, sonra kapat. |
| **B. Test subdomain'i** | `yeni.kovakyazilim.com` ile Next.js'i yayınla, test et, ardından ana domain'i değiştir. |
| **C. Hibrit** | Eski WP `eski.kovakyazilim.com`'a taşı, ana domain'de Next.js. |
**Önerilen: B** — test ortamında doğrula, sonra geçiş.
## Production'a alma checklist
- [ ] Coolify'da app oluşturuldu, ENV'ler girildi
- [ ] İlk build başarılı (`npm run build` 39 route üretmeli)
- [ ] Appwrite Console'da admin user oluşturuldu
- [ ] `/admin/login` çalışıyor
- [ ] Anasayfa, hizmetler, projeler, iletişim formu sınanmış
- [ ] WhatsApp + telefon CTA çalışıyor
- [ ] Cookie banner görünüyor
- [ ] SSL aktif (Coolify Let's Encrypt otomatik)
- [ ] WP yedeği alındı (ihtiyaç olursa)
- [ ] DNS yönlendirildi
## Sonradan eklenecekler
- **GTM ID**: `/admin/seo` üzerinden `gtm_id` alanına gir → Consent Mode v2 ile uyumlu otomatik yüklenir
- **Müşteri logoları**: `/admin/site` → "Müşteri logoları" alanına URL ekle
- **Blog yazıları, projeler, ekip fotoları**: `/admin/*` üzerinden