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:
@@ -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
@@ -30,8 +30,9 @@ yarn-debug.log*
|
||||
yarn-error.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.example
|
||||
|
||||
# vercel
|
||||
.vercel
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user