İçeriğe geç
Geliştirme dokümantasyonu
Bu belgeler Keydra'nın geliştirilmekte olan hâlini anlatır; yayımlanmış bir sürüm değildir. Anlatılanlar bir sürüm çıkana kadar değişebilir.

Yapılandırma

Bir kurulumun ayarlaması gerekenler, Keydra'yı dışarı açmadan önce yapılacaklar ve tek örneği birden fazla örneğe çeviren ortak depo.

Keydra nasıl yapılandırılır#

Yapılandırma, Quarkus yapılandırmasıdır: özellikler ve bunları geçersiz kılan ortam değişkenleri. Bir kurulumun ayarladığı hemen her değerin application.properties içinde kendisi için tanımlanmış bir ortam değişkeni vardır; eşleme tahmine bırakılmaz, orada yazar.

Üç profil bulunur:

%dev

./mvnw quarkus:dev ile çalışır. deploy/keydra-dev.yaml içindeki kapsayıcıları kullanır.

%test

Test paketi. PostgreSQL, Redis ve Valkey Testcontainers ile açılır.

%prod

Paketlenmiş çalışma zamanı; imajın kullandığı profil budur.

Bir kurulumun ayarlaması gerekenler#

Yalnızca iki konunun kullanılabilir bir varsayılanı yoktur:

properties
KEYDRA_DB_URL=postgresql://db.internal:5432/keydra
KEYDRA_DB_USERNAME=keydra
KEYDRA_DB_PASSWORD=<parola>
KEYDRA_SECRET_KEY=<32 rastgele bayt, base64>

Geri kalan ayarların varsayılanı ya doğrudur ya da açıkça bir geliştirme kolaylığıdır.

Dışarı açmadan önce ayarlanacaklar#

properties
# Tarayıcının gördüğü biçimiyle Keydra'nın adresi. Sağlayıcı yönlendirmesi buraya döner.
KEYDRA_PUBLIC_URL=https://keydra.example.com

# Ters vekil sunucu arkasında: iletilen başlıklara yalnızca bu vekillerden gelirse güven.
KEYDRA_BEHIND_PROXY=true
KEYDRA_TRUSTED_PROXIES=10.0.0.0/8

Ayarların tamamı için bkz. Yapılandırma referansı.

Keydra’nın kendi deposu#

Hiçbir ayar yapılmadığında Keydra tek örnek olarak çalışır: tek bir belleği vardır ve kurulması gereken ek bir bileşen yoktur. Çoğu kurulum da böyledir.

KEYDRA_STORE_URL, birkaç örneğin paylaştığı bir Redis adresini gösterir. İki iş için kullanılır: bildirimleri yeniden yayımlayarak bir örnekteki değişikliğin diğerine bağlı tarayıcıya ulaşmasını sağlamak ve her isteğin yapacağı üç okumayı önbelleğe almak.

Önemli:Önemli

Bu depo ayrı bir sunucu olmalıdır, hedeflerinizden biri değil. Birinin göz attığı bir sunucuda duran önbellek, birinin toplu silme yaparken boşalttığı önbellek olur.

Depoya yazılan her anahtar ad alanına ayrılır ve bir TTL taşır. Süresi olmayan önbellek, düzenli görünen bir bellek sızıntısıdır.

Giden postayı yapılandırma#

Tek bir aktarıcı bir kez tanımlanır; davetler, parola sıfırlamaları ve sonradan eklenen bütün işlevler bunu kullanır.

Prosedür

Aktarıcının istediği ayarları girin:

properties
KEYDRA_MAIL_HOST=smtp.example.com
KEYDRA_MAIL_PORT=587
KEYDRA_MAIL_TLS=true
KEYDRA_MAIL_USERNAME=<kullanıcı adı>
KEYDRA_MAIL_API_KEY=<parola ya da API anahtarı>
KEYDRA_MAIL_FROM=keydra@example.com
Doğrulama

Bir hesabı davet edin ve bağlantının ulaştığını kontrol edin.

Not:Not

Hiçbir ayar yapılmadığında da davet oluşturulur; bağlantı, daveti gönderen yöneticiye gösterilir. Bu, postayla göndermekten kötüdür ama daveti tümden reddetmekten çok daha iyidir: aktarıcısı olmayan bir kurulumda kimseye hesap verilememesi kabul edilemez.

İletinin görünümü

Bir davet, birinin Keydra’dan gördüğü ilk şeydir; bu yüzden yanında düz metin bir parçayla birlikte HTML olarak gider — düz parça önce, ki MIME’ın istediği sıra budur ve yalnızca anladığını okuyan bir istemcinin göstereceği parça odur.

Hesap söylemişse, hesabın okuduğu dilde yazılır. Keydra’yı kullanmış bir hesabın dil tercihi vardır ve o cevap kazanır; yeni açılmış bir hesap hiçbir şey belirtmemiştir ve bir e-posta adresi dil taşımaz — dolayısıyla geri dönüş KEYDRA_MAIL_LANGUAGE, yani kurulumun kendisinin çalıştırıldığı dildir. Bağlantı bu seçimi taşır, böylece açtığı sayfa da iletiyle aynı dili konuşur.

Bu sayfayı düzenle