# 🚀 Canlıya Alma (Atlas Homeserver + Dokploy) > Durum: Faz 3 — Adım 1 ✅ (Docker imajı) · Adım 2–5 devam ediyor ## 1. Mimari ``` İnternet ──HTTPS──▶ Traefik (Dokploy) ──▶ kakeibo konteyneri :8080 ──▶ MongoDB (rs0) ├─ /api/* → Rust (Axum) API └─ diğer → derlenmiş arayüz (React) ``` - **Tek imaj, tek servis, tek alan adı** → CORS yok, cookie aynı origin'de. - İmaj: çok aşamalı `Dockerfile` (Node → arayüz derlemesi, Rust → release derleme, `debian:trixie-slim` çalışma imajı, root olmayan kullanıcı `kakeibo`, ~175 MB). - Sağlık kontrolü: `GET /api/health` → `200 {"status":"ok","db":"ok"}`; veritabanı yoksa `503`. - Kapanış: `SIGTERM` gelince süren istekler bitirilir, sonra kapanır. ## 2. Ortam değişkenleri | Değişken | Zorunlu | Örnek / varsayılan | Açıklama | |---|---|---|---| | `MONGODB_URI` | ✅ | `mongodb://kakeibo_app:<şifre>@:27017/kakeibo?authSource=kakeibo&replicaSet=rs0` | Ayrı, yalnızca `kakeibo` DB'sinde `readWrite` yetkili kullanıcı | | `JWT_SECRET` | ✅ | `openssl rand -hex 32` çıktısı | En az 32 karakter. **Değişirse tüm oturumlar kapanır** | | `APP_URL` | ✅ | `https://kakeibo.` | `https://` ile başlarsa cookie `Secure` olur | | `REGISTRATION` | – | `invite_only` | `invite_only`: ilk hane serbest, sonra yalnızca davet · `open`: herkes | | `RUST_LOG` | – | `kakeibo=info,tower_http=info` | Log seviyesi | | `PORT` | – | `8080` | İmajda ayarlı, değiştirmeyin | | `STATIC_DIR` | – | `/app/static` | İmajda ayarlı, değiştirmeyin | ## 3. Yerelde imajı deneme ```bash docker build -t kakeibo . # Yerel MongoDB (27020) ile, geliştirme sunucusuyla çakışmasın diye 8090'da: docker run --rm --network host --env-file .env -e PORT=8090 kakeibo # → http://localhost:8090 ``` Kontrol listesi (Faz 3 – Adım 1'de doğrulandı): - [x] `/` ve `/defter` → `index.html` (`Cache-Control: no-cache`) - [x] `/assets/*.js` → brotli/gzip, `max-age=31536000, immutable` - [x] `/api/health` → `db: ok`; bilinmeyen `/api/...` → JSON 404 - [x] Docker `HEALTHCHECK` → healthy; süreç `kakeibo` kullanıcısıyla çalışır - [x] `docker stop` → düzgün kapanış logu ## 4. Canlı MongoDB > Faz 3 – Adım 2'de birlikte doldurulacak (KAKEIBO_PROMPT §12.3). ## 5. Dokploy kurulumu > Faz 3 – Adım 3'te birlikte doldurulacak. ## 6. Yedekleme ve geri yükleme > Faz 3 – Adım 5'te doldurulacak (günlük `mongodump`, son 14 yedek).