From a2b4119f3ed6460bc094d539e269f4c4edce6528 Mon Sep 17 00:00:00 2001 From: suphicakir Date: Thu, 12 Nov 2026 02:48:23 +0300 Subject: [PATCH] =?UTF-8?q?docs(da=C4=9F=C4=B1t=C4=B1m):=20Dokploy=20kurul?= =?UTF-8?q?umu=20ve=20ilk=20canl=C4=B1=20yay=C4=B1n;=20Faz=203=20tamamland?= =?UTF-8?q?=C4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - DEPLOY.md: Dokploy uygulama ayarları, sık hatalar, ilk yayın kontrolü - Canlı: https://kakeibo.ta1sph.website (health ok, Let's Encrypt) - Yedekleme ertelendi (açık konu: Faz 5 bitmeden) Co-Authored-By: Claude Opus 5.5 --- docs/DEPLOY.md | 25 +++++++++++++++++++++++-- docs/MEMORY.md | 4 +++- docs/PHASES.md | 10 +++++----- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/docs/DEPLOY.md b/docs/DEPLOY.md index dfa38a7..5b512e4 100644 --- a/docs/DEPLOY.md +++ b/docs/DEPLOY.md @@ -1,6 +1,6 @@ # 🚀 Canlıya Alma (Atlas Homeserver + Dokploy) -> Durum: Faz 3 — Adım 1 ✅ (Docker imajı) · Adım 2–5 devam ediyor +> Durum: ✅ Yayında — https://kakeibo.ta1sph.website (2026-11-12) · Yedekleme ⏳ (Faz 5 bitmeden) ## 1. Mimari @@ -70,7 +70,28 @@ Uygulama zaten kullanıcı/şifreyle bağlandığı için auth açıldığında ## 5. Dokploy kurulumu -> Faz 3 – Adım 3'te birlikte doldurulacak. +Proje `Kakeibo` → Create Service → **Application** `kakeibo-app` (iç ad: `kakeibo-kakeiboapp-nd5kek`). + +| Bölüm | Ayar | +|---|---| +| General → Provider | **Gitea** sekmesi (varsayılan GitHub sekmesi seçili kalırsa: `Github Provider not found`) → repo `suphicakir/kakeibo`, branch `main`, Build Path `/` → **Save** | +| General → Build Type | **Dockerfile**, dosya `Dockerfile`, context `.` | +| Environment | §2'deki değişkenler (`MONGODB_URI`, `JWT_SECRET`, `APP_URL=https://kakeibo.ta1sph.website`, `REGISTRATION=invite_only`, `RUST_LOG`) | +| Domains | Host `kakeibo.ta1sph.website`, Path `/`, **Container Port `8080`**, HTTPS açık, Let's Encrypt | +| Auto Deploy | Açık → Gitea'ya push = otomatik yayın | + +Notlar: +- İlk derleme ~6–10 dk (Rust bağımlılıkları); sonrakiler katman önbelleğiyle daha hızlı. +- Derleme hatası **Deployments** → ilgili deploy logunda görünür; **Logs** sekmesi yalnızca çalışan konteyneri gösterir. +- Dokploy, Gitea'daki son commit'i derler → değişiklikler önce push edilmeli. +- Geri dönüş (rollback): Deployments listesinden önceki başarılı deploy seçilerek yeniden yayınlanır. +- DNS: `kakeibo.ta1sph.website` → ev dış IP'si; modemde 80/443 → Atlas yönlendirmesi Let's Encrypt için gerekli. +- Sade metin `404 page not found` + "Not secure" = Traefik'in kendi yanıtı (bu host için router yok): domain eklenip **Redeploy** yapılmamış ya da konteyner çalışmıyor demektir. + +### İlk yayın kontrolü (2026-11-12) ✅ +- `/api/health` → `{"status":"ok","db":"ok"}`, servis `1/1` healthy, migration v1 + indeksler canlı DB'de oluştu. +- TLS: Let's Encrypt (otomatik yenileme), `/kayit` doğrudan açılıyor (SPA). +- İlk hesap açıldı → `GET /api/auth/registration` = `new_household_allowed: false` (yalnızca davet). ## 6. Yedekleme ve geri yükleme diff --git a/docs/MEMORY.md b/docs/MEMORY.md index 7a7eed7..83588fa 100644 --- a/docs/MEMORY.md +++ b/docs/MEMORY.md @@ -1,7 +1,7 @@ # 🧠 Proje Hafızası ## ▶️ Sıradaki Adım -**Faz 3 – Adım 3:** Dokploy Application (`kakeibo-app`, Gitea repo, Dockerfile), ortam değişkenleri, domain `kakeibo.ta1sph.website` (HTTPS), deploy, health kontrolü. Kullanıcı süreçten yoruldu → kısa ve net adımlar, gereksiz tur yok. +**Faz 4 – Başlangıç:** Faz 4 planını sun (dönem açma + aylık planlama + notlar), onay al. Kullanıcı canlıya alma sürecinden yoruldu; geliştirmeye odaklanmak istiyor. ## 📌 Alınan Kararlar - **Yerel demo hesapları** (`kakeibo_dev`): `demo@ornek.com` / `demo12345` (owner, "Demo Hanesi") · `es@ornek.com` / `demo12345` (member, aynı hane). `npm run db:reset` silerse API ile yeniden oluştur (ileride `db:seed`). @@ -39,6 +39,7 @@ - Sürümler: Rust 1.99.1 (edition 2024), Axum 0.8, React 19, Vite 8, TypeScript 7, Tailwind 4.3, shadcn 4.23, Vitest 5, react-router 8, TanStack Query 5. ## ❓ Açık Konular +- **Canlı yedekleme yok** (Faz 3 Adım 5 ertelendi) → gerçek veri girişinden önce, en geç Faz 5 sonunda: günlük mongodump, 14 yedek, geri yükleme testi. - **Canlı MongoDB auth kapalı** (Dokploy replica set betiği keyFile kullanmıyor, özel Command'ı yok sayıyor). İç ağda, port kapalı. Ayrıntı: `docs/DEPLOY.md` §4. - Üye çıkarma / rol değiştirme / sahipliği devretme henüz yok (Ayarlar ekranıyla birlikte, Faz 2+). - Kapalı dönem yeniden açılırken başka açık dönem varsa davranış (Faz 6). @@ -76,3 +77,4 @@ ### 2026-11-12 — Faz 3 - **Adım 1:** tower-http (fs, compression gzip/br, trace). `routes::app()` + `routes/spa.rs` (ServeDir + index.html fallback + cache middleware), API fallback JSON 404, `STATIC_DIR` config, graceful shutdown (SIGTERM/Ctrl+C). `Dockerfile`, `.dockerignore`, `docs/DEPLOY.md` başlatıldı. İmaj yerelde çalıştırıldı (host network, 8090): 10 kontrol + tarayıcı ekran görüntüsü geçti. İlk derlemede Docker önbellek hilesi hatası (sahte lib.rs) bulundu, düzeltildi. - **Adım 2:** Mevcut tek MongoDB (butcem-mongo) Bütçem'e ait → kullanıcı ayrı MongoDB seçti. Dokploy MongoDB (replica set) kuruldu, `kakeibo_app` oluşturuldu, port yayını yok (iki servis de `null`). Sorunlar: kullanıcı şifreyi komuta düz yazıp paylaştı; Dokploy betiği root şifresini servis Args'ına düz yazıyor → iki şifre de mongosh içinde üretilerek yenilendi. passwordPrompt yapıştırma hatası (U_STRINGPREP). Auth açma denemesi: Dokploy özel Command'ı uygulamadı → auth kapalı kabul edildi (açık konu). +- **Adım 3–4:** Dokploy Application `kakeibo-app` (iç ad `kakeibo-kakeiboapp-nd5kek`). Sorunlar: push yapılmamıştı (Dockerfile yok); Provider GitHub sekmesinde kalmıştı (`Github Provider not found`, kullanıcı çözdü); Traefik 404 (kullanıcı çözdü, büyük olasılıkla domain sonrası redeploy). **Yayında:** https://kakeibo.ta1sph.website — health ok, Let's Encrypt, ilk hesap açıldı. **Faz 3 tamamlandı (yedekleme hariç).** diff --git a/docs/PHASES.md b/docs/PHASES.md index 2262eaa..b5c06dc 100644 --- a/docs/PHASES.md +++ b/docs/PHASES.md @@ -7,8 +7,8 @@ | **Faz 0** | Ortam kurulumu, VS Code yapılandırması, monorepo iskeleti, hafıza dosyaları, yerel MongoDB, veri modeli onayı | `npm run dev` ile boş uygulama tarayıcıda açılıyor | ✅ | | **Faz 1** | Backend temeli: config, DB bağlantısı, kimlik doğrulama, hane, kategoriler, ödeme türleri, health check | API `.http` dosyasıyla test edilebiliyor | ✅ | | **Faz 2** | Frontend temeli: tasarım sistemi, tema, logo/ikonlar, layout, navigasyon, giriş/kayıt | Giriş yapılabilen, temalı iskelet uygulama | ✅ | -| **Faz 3** | 🚀 İlk canlıya alma: Dockerfile, Dokploy, canlı MongoDB, domain + HTTPS, yedekleme | Giriş ekranı canlıda çalışıyor | 🔄 | -| **Faz 4** | Dönem açma + aylık planlama + notlar | Plan ekranı | ⏳ | +| **Faz 3** | 🚀 İlk canlıya alma: Dockerfile, Dokploy, canlı MongoDB, domain + HTTPS, yedekleme | Giriş ekranı canlıda çalışıyor | ✅ | +| **Faz 4** | Dönem açma + aylık planlama + notlar | Plan ekranı | 🔄 | | **Faz 5** | Günlük defter | Harcama girişi | ⏳ | | **Faz 6** | Ay sonu değerlendirmesi + dönem kapatma/devir sihirbazı | Tam dönem döngüsü | ⏳ | | **Faz 7** | Dashboard: özet kartları ve grafikler | Ana ekran | ⏳ | @@ -41,6 +41,6 @@ ## Faz 3 Adımları - ✅ 1. Dockerfile (çok aşamalı), Axum arayüzü sunar (SPA yönlendirmesi, önbellek başlıkları, sıkıştırma), graceful shutdown, yerelde imaj testi - ✅ 2. Canlı MongoDB kontrolü (§12.3): kurulum şekli, replica set, ayrı kullanıcı, dış erişim -- 🔄 3. Dokploy: Gitea bağlantısı, ortam değişkenleri, alan adı + HTTPS, ilk yayın -- ⏳ 4. Canlıda ilk hesap + kontrol listesi -- ⏳ 5. Yedekleme (mongodump, 14 gün) + geri yükleme denemesi +- ✅ 3. Dokploy: Gitea bağlantısı, ortam değişkenleri, alan adı + HTTPS, ilk yayın +- ✅ 4. Canlıda ilk hesap + kontrol listesi +- ⏳ 5. Yedekleme (mongodump, 14 gün) + geri yükleme denemesi — **ertelendi, Faz 5 bitmeden yapılacak**