Kendi sunucunuzda çalıştırma
Pushizo'yu kendi altyapınızda kurma seçenekleri — tek sunucu Docker Compose ve Kubernetes Helm; bileşenler, sistem gereksinimleri, ortam değişkenleri, imajlar, güncelleme ve yedekleme özeti.
Pushizo açık bir monorepo olarak dağıtılır ve iki dağıtım yolu sunar: Docker Compose (tek sunucu, nginx + Let's Encrypt, izleme ve yedek dahil) ve Helm (Kubernetes; blue/green API, KEDA ile worker ölçekleme, NetworkPolicy, ExternalSecrets). Üretim SaaS (pushizo.com) aynı imajlarla çalışır.
Bileşenler
| Bileşen | İmaj / görev | Not |
|---|---|---|
api | ghcr.io/exec0de/pushizo-api — NestJS + Fastify; /v1, /sdk/v1, /internal, /admin, /hooks, /t/*, /sdk-web/* | /healthz, /readyz, /metrics; en az 2 kopya |
worker | ghcr.io/exec0de/pushizo-worker — BullMQ kuyrukları | WORKER_QUEUES ile ayrım: scheduler,audience,dispatch ve events,webhooks,journeys,maintenance |
migrate | ghcr.io/exec0de/pushizo-migrate | up, down --steps=N, status; dağıtımda önce çalışır |
dashboard | ghcr.io/exec0de/pushizo-dashboard — Next.js | API_URL, PUBLIC_API_URL, APP_URL |
web, docs-site | Tanıtım sitesi ve bu dokümantasyon | SITE_URL, DOCS_SITE_URL derleme argümanı |
postgres 16 | Ana veri (RLS) | wal-g ile PITR isteğe bağlı |
redis 7 | Kuyruk, hız sınırı, önbellek | AOF + saatlik RDB |
storage (RustFS, S3 uyumlu) | CSV export/import, medya | S3_*; üretimde kova kapsamlı servis kullanıcısı |
| İzleme | Prometheus, Alertmanager, Grafana, Loki/Promtail, exporter'lar, blackbox | status ve izleme |
| İsteğe bağlı | ClickHouse (analitik), Kafka (olay ingest), Go dispatcher (push gönderimi) | runbook'lar |
Sistem gereksinimleri (başlangıç)
Tek sunucu: Ubuntu 24.04, 4 vCPU / 8 GB RAM / 80 GB SSD; DNS A kayıtları api, app, status, docs, grafana, storage ve kök/www. Sistem e-postası (SMTP/SES/Resend) kayıt doğrulama ve parola sıfırlama için zorunludur; push/e-posta sağlayıcı kimlik bilgileri sunucuya değil, panelden app başına girilir.
Zorunlu gizli değerler
| Değişken | Açıklama |
|---|---|
MASTER_KEY | 32 bayt base64; tüm sağlayıcı kimlik bilgilerinin envelope encryption kökü. Kaybı kurtarılamaz; rotasyon runbook |
SESSION_SECRET | ≥ 32 karakter |
POSTGRES_PASSWORD, REDIS_PASSWORD, STORAGE_ROOT_USER/PASSWORD | URL'ye gömülen parolalarda / + = @ : ? # % kullanmayın (openssl rand -hex 32) |
SMTP_URL / MAIL_TRANSPORT | Sistem e-postası |
APP_URL, API_URL, PUBLIC_API_URL | Alan adları; TRUST_PROXY vekil arkasında |
Üretim ortam denetimi zayıf/varsayılan değerleri reddeder (geliştirme S3 parolası, yerel SMTP, kısa SESSION_SECRET); uygulama rolü NOSUPERUSER NOBYPASSRLS olmalıdır (Postgres rolleri).
Kurulum yolları
Docker Compose ile yayına alma
Adım adım: hazırlık, GitHub ayarları, sunucu, DNS, TLS, ilk dağıtım, Plesk kenar modu.
Helm ile Kubernetes
Ön koşullar, değerler, blue/green, KEDA, NetworkPolicy, ExternalSecrets, doğrulama.
Yedek ve geri yükleme
Günlük temel yedek, wal-g PITR, Redis ve nesne depolama kurtarma, tatbikat.
Status ve izleme
status.json, sentetik izleme, metrikler, alarmlar, Grafana panoları.
Güncelleme
Sürüm etiketi (vX.Y.Z) GitHub Actions release.yml ile imajları üretir; sunucuda IMAGE_TAG=X.Y.Z ./infra/scripts/deploy.sh prod sırayla migrate → api-1 → api-2 → worker'lar → dashboard/docs/web günceller (sıfır kesinti). Migration'lar geriye dönük uyumludur ve down içerir; geri alma migrate down --steps=1 + önceki imaj etiketi. Özel depo/GHCR kimliği istemeyen kurulumlar için LOCAL_BUILD=1 ile imajlar sunucuda derlenir.
Çoklu bölge (hücreler)
EU/TR gibi veri bölgeleri için her hücre tam bir kurulumdur; kontrol düzlemi org → hücre eşlemesini tutar (hücreler runbook'u, veri yerleşimi).
Platform yönetim paneli
/admin altındaki panel organizasyonlar, hesaplar, faturalama, özellik bayrakları, kötüye kullanım, destek oturumları, olaylar (status sayfası), app taşıma onayları, sistem sağlığı, DLQ ve denetim kaydını yönetir; MFA zorunludur (ADMIN_MFA_REQUIRED). İlk yönetici kurulumu: Compose ile yayına alma → İlk giriş.
Güvenlik gözden geçirmesi — OWASP ASVS 4.0 (Seviye 2) kontrol listesi (Faz 14)
Tarih: 2026-10-13. Kapsam: API (apps/api), worker, dashboard, SDK uçları, veri katmanı. Her madde kodda doğrulanmış kanıta (dosya/test) bağlanır; "kısmi"/"açık" maddeler go-live öncesi GO_LIVE_CHECKLIST.md ile izlenir.…
Pushizo — Yayına alma (adım adım)
Bu belge, tek sunucuda (Docker Compose) ilk canlı kurulum içindir. Ayrıntılı kontrol listesi GO_LIVE_CHECKLIST.md, altyapı ayrıntıları infra/README.md. Kubernetes için docs/runbooks/helm-production.md.