İçeriğe geç

Gereksinimler

FlowDesk üç konteynerin (API, Dashboard, Tracker) bir Kubernetes kümesinde çalışmasıyla kurulur. Hangi bulut sağlayıcısını veya deployment aracını kullandığınız kurumunuzun tercihidir; burada anlatılan gereksinimler karşılandığı sürece uygulama beklenen biçimde çalışır.

tarayıcı ──HTTPS──▶ [sizin ingress'iniz] ──┬──▶ flowdesk-web :3000 ──┐
├──▶ flowdesk-tracker :3001 ──┤ (HTTP, sunucu tarafı)
└──▶ flowdesk-api :8080 ◀─┘
PostgreSQL veya SQL Server · Redis · RabbitMQ veya Kafka
dışarı ──▶ lisans sunucusu · Keycloak (varsa) · SMTP/IMAP (varsa)

Üç konteyner de düz HTTP dinler ve TLS beklemez: sertifikayı önlerindeki ingress sonlandırır. Loglar stdout’a yazılır.

  • shftco/flowdesk-kubernetes chart’ı apps/v1 Deployment ve networking.k8s.io/v1 Ingress kaynaklarını kullanır: bu, pratikte Kubernetes 1.19 ve üzeri her sürümle çalışır demektir. SHFT tarafından ayrıca belgelenmiş bir alt sınır yoktur; k3s dahil herhangi bir uyumlu küme olur.
  • ingress-nginx: chart’ın ürettiği Ingress kaynağı ingressClassName: nginx bekler.
  • cert-manager: bir ClusterIssuer ile (ör. Let’s Encrypt) TLS sertifikalarını yönetir. cert-manager kurulu değilse veya bir issuer belirtmezseniz TLS’i kendiniz yönetmeniz gerekir.
  • Varsayılan bir StorageClass: veritabanı ve ek dosyaları (attachments) için kalıcı disk ayırmak üzere gerekir (k3s’te local-path yeterlidir).

PostgreSQL 14+ veya SQL Server 2019+: hangisini kullanacağınızı kurulum sırasında Database:Provider ile seçersiniz (bkz. Yapılandırma). İkisi de aynı imajla çalışır; sonradan değiştirmek veri taşımayı gerektirir, o yüzden önceden karar verin. Chart, demo/tek-replika kalitesinde bir in-cluster PostgreSQL ile birlikte gelir (postgres.enabled: true); üretimde yönetilen bir veritabanı (RDS, Cloud SQL, Azure Database vb.) kullanmak isterseniz bunu kapatıp kendi bağlantı dizenizi verirsiniz.

Redis 7+. Oturum/refresh jetonları ve genel cache için kullanılır. Chart demo/tek-replika kalitesinde bir in-cluster Redis içerir (redis.enabled: true); kapatıp kendi Redis’inizi gösterebilirsiniz. Üretimde Redis’i devre dışı bırakmayın.

Arka plan işleri (bildirimler, otomasyon, gelen e-posta işleme) bir mesaj kuyruğu üzerinden yürür. Seçim Messaging:Provider ile yapılır:

  • RabbitMQ (varsayılan): chart demo/tek-replika kalitesinde bir in-cluster RabbitMQ 3.x içerir, ya da kendi RabbitMQ’nuzu gösterebilirsiniz.
  • Kafka: kendi Kafka kümenizi gösterebilir, ya da chart’ın demo amaçlı tek-node in-cluster Kafka’sını (messaging.kafka.inCluster.enabled) açabilirsiniz. Production ortamında, yerel olmayan bir broker şifrelenmemiş protokolle (plaintext) çalışamaz. API açılışı reddeder.

FlowDesk API’si e-posta/parola, LDAP ve Keycloak (OIDC) login sağlayıcılarını destekler (Auth:Providers). Keycloak kullanacaksanız kurumunuzun kendi Keycloak sunucusu (26+ önerilir) gerekir: realm, client ve kullanıcı yönetimi tamamen sizde kalır. Ayrıntı için Yapılandırma sayfasına bakın.

Giden bildirimler (karşılama e-postası, tek kullanımlık şifreler) için bir SMTP hesabı; gelen postadan otomatik talep açmak istiyorsanız ayrıca IMAP erişimi olan bir posta kutusu gerekir. Bu ayarlar panelden girilir, ortam değişkeni gerekmez; bkz. E-posta ayarları.

Chart’ın values.yaml içindeki varsayılan requests/limits değerleri, tek replikalı, demo/küçük ölçek bir kurulum için düşünülmüştür; üretim yükünüze göre values.yaml’da ayarlayın.

Bileşen CPU (istek / limit) Bellek (istek / limit)
API 250m / 1 256Mi / 1Gi
Dashboard (web) 100m / 500m 128Mi / 512Mi
Tracker 100m / 500m 128Mi / 512Mi
PostgreSQL (in-cluster ise) 250m / 1 256Mi / 1Gi
Redis (in-cluster ise) 50m / 250m 64Mi / 256Mi
RabbitMQ (in-cluster ise) 100m / 500m 256Mi / 512Mi

Tamamı in-cluster çalıştırılırsa toplam istek yaklaşık 0,85 vCPU / ~1,1Gi bellek, toplam limit yaklaşık 3,75 vCPU / ~3,75Gi bellek’tir.

Kalıcı disk (PVC) ihtiyacı:

Amaç Varsayılan boyut Kayıp durumunda etki
API: dosya ekleri (/app/attachments) 5Gi (zamanla büyür) Ekler ve arşivlenmiş gelen e-postalar kaybolur
API: lisans durumu (/var/lib/flowdesk) 1Gi Kritik değil; kurulum yeni bir kimlikle yeniden kaydolur
PostgreSQL (in-cluster ise) 5Gi Tüm veri kaybolur

İçeri (ingress üzerinden): panel adresi, takip adresi ve API adresi için üç ayrı hostname. Proxy’nizde request body size limitini yükseltin (öneri 25 MB): varsayılan 1 MB sınırı dosya eklerini keser.

Dışarı (uygulamadan):

Hedef Ne için Zorunlu mu
ghcr.io İmajları çekmek (yalnızca deploy anında) Evet
license-api.flowdesk.com.tr Lisans kontrolü, HTTPS, ~12 saatte bir Evet (lisanssız da çalışır, bkz. Yapılandırma)
Keycloak sunucunuz Kimlik doğrulama Keycloak kullanılıyorsa
SMTP/IMAP sunucunuz Giden/gelen e-posta E-posta kullanılacaksa

SHFT’den kurumunuzun sistemlerine yönlendirilen bir bağlantı yoktur; trafik tek yönlüdür ve kurumunuzdan dışarıya doğrudur.

  • Çalıştıracağınız imaj etiketleri (sürümler); bkz. Sürüm Notları
  • Panel, API ve takip ekranı için hostname’ler
  • Veritabanı: PostgreSQL mi SQL Server mı
  • Kimlik doğrulama sağlayıcısı: EmailPassword, LDAP veya Keycloak
  • Mesaj kuyruğu: RabbitMQ mu Kafka mı

Hazır olduğunuzda Helm ile kurulum sayfasına geçin.