PushizoDocs
Operasyon

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örevNot
apighcr.io/exec0de/pushizo-api — NestJS + Fastify; /v1, /sdk/v1, /internal, /admin, /hooks, /t/*, /sdk-web/*/healthz, /readyz, /metrics; en az 2 kopya
workerghcr.io/exec0de/pushizo-worker — BullMQ kuyruklarıWORKER_QUEUES ile ayrım: scheduler,audience,dispatch ve events,webhooks,journeys,maintenance
migrateghcr.io/exec0de/pushizo-migrateup, down --steps=N, status; dağıtımda önce çalışır
dashboardghcr.io/exec0de/pushizo-dashboard — Next.jsAPI_URL, PUBLIC_API_URL, APP_URL
web, docs-siteTanıtım sitesi ve bu dokümantasyonSITE_URL, DOCS_SITE_URL derleme argümanı
postgres 16Ana veri (RLS)wal-g ile PITR isteğe bağlı
redis 7Kuyruk, hız sınırı, önbellekAOF + saatlik RDB
storage (RustFS, S3 uyumlu)CSV export/import, medyaS3_*; üretimde kova kapsamlı servis kullanıcısı
İzlemePrometheus, Alertmanager, Grafana, Loki/Promtail, exporter'lar, blackboxstatus 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şkenAçıklama
MASTER_KEY32 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/PASSWORDURL'ye gömülen parolalarda / + = @ : ? # % kullanmayın (openssl rand -hex 32)
SMTP_URL / MAIL_TRANSPORTSistem e-postası
APP_URL, API_URL, PUBLIC_API_URLAlan 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ı

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ş.

Bu sayfada