FastComments.com


FastComments'ı Şirket İçi Barındırma

FastComments dağıtım için birkaç çözüm sunar. En yaygın olanı uygulamayı sizin için barındırdığımız durumdur.

Ancak bazı müşterilerin bilgilerini bulutta depolayamayacağını ve tüm verilerini şirket içinde barındırmayı talep edebileceğini anlıyoruz.

Bu dokümantasyon bu kullanım senaryosunu kapsar.


Neler Dahil Internal Link

FastComments On Prem, canlı yorum çözümümüzü, tüm moderasyon ve yönetici araçları da dahil olmak üzere, kendi donanımınızda dağıtmanıza olanak tanır.

Bu, verileriniz üzerinde kontrol sahibi olduğunuz anlamına gelir ve yorum sistemi yerel LAN'ınıza veya kurumsal ağınıza kısıtlanabilir.


Örnekler Internal Link

Gerekli Bileşenler

On-Prem için FastComments sadece bir uygulama sunucusu ve bir veritabanından oluşur. Uygulamanın diğer bileşenleri eklemeden tüm trafiği doğrudan sunabilmesi için dağıtımı basitleştirdik.

Uygulama sunucusu bir Docker imajı olarak sağlanır ve herhangi bir konteyner yönetim çözümüyle dağıtılabilir.

Veritabanı, MongoDB, kendi başınıza çalıştırılabilir veya AWS DocumentDB veya MongoDB Atlas gibi başka bir sağlayıcı tarafından barındırılabilir.

FastComments şu anda MongoDB 7 ile test edilmiştir, ancak dağıtımı kolaylaştırmak için DocumentDB ile uyumlu olmayı hedefliyoruz.

Örnek Boyutları

FastComments'in oldukça iyi optimize edildiğini ve uygulamanın kendisi için düşük P99'ları korumak amacıyla büyük makinelere ihtiyaç duymadığını göreceksiniz.

Tüm toplu ve cron işleri toplam bellek kullanımını sınırlamak için streaming kullanır.

Aşağıdaki tablolar uygulama sunucusu ve veritabanı için boyutlandırmaya yardımcı olabilir.

Uygulama Sunucusu Örnekleri

Eşzamanlı KullanıcılarToplam Küme CPU'larıToplam Küme Belleği
1001256mb
1K2512mb
10K81gb
100K328gb
1M6464gb

Örneğin, saniyede yaklaşık 100 yorum dizisini sunan tek bir çekirdek genellikle 250mb RSS'den fazla kullanmaz.

Veritabanı Sunucusu Örnekleri

Veritabanının boyutlandırılması, belirli bir zamanda eriştiğiniz veri miktarı olan çalışma seti boyutuna ve eşzamanlı isteklere bağlıdır.

FastComments Mongo'ya karşı oldukça naziktir; hot sorgular için index hints, streaming cursors kullanır ve aşağı akış sistemlerin aşırı yüklenmesini önlemek için çeşitli alanlarda concurrency limits içerir.

Aşağıdakiler veritabanı örneği boyutları için genel bir kılavuz niteliğindedir. Bunun her bir örnek için olduğunu, kümedeki toplam kaynaklar olmadığını unutmayın.

Eşzamanlı KullanıcılarSaklanan YorumlarHer Örnek İçin CPU'larHer Örnek İçin Bellek
1001k1256mb
1K5k2512mb
10K100k82gb
100K500k168gb
1M5M3232gb

Yukarıdaki tablolar muhafazakar tahminlerdir. Gerçek gereksinimlerin sayfa boyutları, yorum hacmi vb. gibi sizin belirli yapılandırmanıza bağlı olarak farklılık gösterebileceğini görebilirsiniz.

Yapılandırma Internal Link

FastComments, yapılandırma için çevre değişkenlerini (environment variables) kullanır. Aşağıdaki liste, On-Prem ile ilgili tüm desteklenen değişkenleri özetler.

VariableDefaultInfoRequiredExamples or Valid Values
NODE_ENVOrtam türü.Evetproduction, dev
MONGO_URIDB Bağlantı URI'si.Evet
MONGO_ENABLE_SSLfalseVeritabanına bağlanmak için SSL kullanmayı etkinleştirir.Hayırtrue, false
MONGO_ENABLE_SSL_VALIDATEfalseMongo'ya bağlanırken sertifikayı CA'ya karşı doğrulamayı etkinleştirir.Hayırtrue, false
MONGO_SSL_CAMongo SSL CA pem dosyası.Hayır/path/to/some-cert.pem
ADMIN_NOTIFICATIONS_EMAILÖnemli sistemle ilgili bildirimlerin gönderileceği e-posta adresi.Hayıradmin-group@bigcorp.com
IP_HASH_SALTIP adreslerini hashlemek için salt değeri.Evet
SESSION_SECRETOturumları imzalamak için kullanılan anahtar.Evet
SESSION_STORE_SECRETDepolamada oturumları imzalamak/hashlemek için kullanılan anahtar. SESSION_SECRET'ten farklı olmalıdır.Evet
HOSTNAMEFastComments'ın dağıtıldığı ana bilgisayar adı (admin paneli vb.). Port veya protokol içermemelidir.Evetexample.com
HOST_ADDRFastComments'ın erişilebilir URI'si (admin paneli vb.).Evethttps://example.com
EMAIL_CONFIG_PATHE-posta yapılandırmasının (SMTP, domain/sağlayıcı eşlemeleri vb.) bulunduğu yerel dosya sistemi yolu.Evet/my/config.json
EMAIL_DEFAULT_FROM_NAMEFastComments RobotE-posta "Gönderen Adı" (From Name) başlığı.HayırMy Company Name
EMAIL_DEFAULT_FOOTER_LOGO/images/logo-32-2020-01.pngE-posta footer logosu.Hayırhttps://exmaple.com/footer.png
EMAIL_DEFAULT_TRANSPORTEMAIL_CONFIG_PATH içindeki "defaultTransport" için override. Aynı yapılandırma dosyasını farklı ortamlara dağıtırken faydalıdır.HayırmyTransportName
ON_PREM_TENANT_IDfastcomments.com üzerindeki hesabınızın ID'si. Lisans anahtarınızı kaydetmek için kullanılır.Hayır
ON_PREM_LICENSE_KEYOn-prem lisans anahtarı.Hayır
GIPHY_API_KEYGiphy API Anahtarı. Belirtilmemişse, gif seçiciyi devre dışı bırakan bir yapılandırma kuralı oluşturmalısınız.Hayır
GIPHY_DEFAULT_RATINGpgGiphy entegrasyonu için kullanılır. Widget özelleştirme kurallarıyla da override edilebilir.Hayırg, pg, pg-13, r
OPENAI_SECRET_KEYGPT tabanlı isteğe bağlı spam tespiti gibi OpenAI destekli özellikler için kullanılır.Hayır
CDN_HOST_ADDRVarlıkların (assets) çekileceği ana bilgisayar adı. Varsayılan olarak HOSTNAME değerini kullanır.Hayırexample.com
LARGE_FILE_HOST_ADDRBüyük dosyaların (ör. exportlar) çekileceği ana bilgisayar adı. Varsayılan olarak CDN_HOST_ADDR değerini kullanır.Hayırexample.com
LARGE_FILE_LOCATION_TYPElocal_diskExportlar gibi büyük dosyaların nerede saklanacağı.Hayırlocal_disk, s3
FROM_EMAIL_HOSTE-postaların gönderileceği ana bilgisayar adı.Hayırexample.com
COOKIE_IDfastcomments.sidfastcomments çerezinin (cookie) adı.Hayır
COOKIE_HOSTNAME.fastcomments.comÇerezin "hostname" alanının değeri. Önek olarak nokta kullanılması önerilir.Hayır.example.com
S3_ACCESS_KEYKullanıcı dosya yüklemeleri, avatarlar vb. için kullanılır. Tanımsızsa varsayılan yerel dosya sistemi kullanılır.Hayır
S3_SECRET_KEYKullanıcı dosya yüklemeleri, avatarlar vb. için kullanılır.Hayır
S3_REGIONKullanıcı dosya yüklemeleri, avatarlar vb. için kullanılır.Hayır
S3_BUCKETKullanıcı dosya yüklemeleri, avatarlar vb. için kullanılır.Hayır
S3_HOSTKullanıcı dosya yüklemeleri, avatarlar vb. için kullanılır.Hayır
CACHE_DIRDB kullanılamadığında isteğe bağlı çevrimdışı önbelleği (offline cache) depolamak için konum. Periyodik olarak en popüler 100 yorum dizisi ile yenilenir.Hayır
BACKUP_DIRDB kullanılamadığında verileri saklamak için konum. DB kullanılamadığında gönderilen bir yorum buraya gider ve daha sonra işlenir.Hayır

Tüm alan adı (domain) ile ilgili değişkenlerin _HOST veya _ADDR son ekini (postfix) kullandığını unutmayın. Fark şu şekildedir:

  • _HOST: example.com
  • _ADDR: https://example.com

EMAIL_CONFIG_PATH, aşağıdaki örnek formatına sahip bir JSON dosyasına giden bir yol içermelidir:

E-posta Yapılandırması
Copy Copy
1
2{
3 "defaultDKIM": {
4 "domainName": "mycompany.org",
5 "keySelector": "2024",
6 "privateKey": "-----BEGIN PRIVATE KEY-----\nABCDEFG\n-----END PRIVATE KEY-----"
7 },
8 "providerTransports": {
9 "yahoo.com": "specialTransport"
10 },
11 "defaultTransport": "mailgun",
12 "transports": {
13 "mailgun": {
14 "host": "smtp.mailgun.org",
15 "port": 587,
16 "secure": false,
17 "auth": {
18 "user": "admin@somewhere.com",
19 "pass": "password"
20 },
21 "tls": {
22 "ciphers": "SSLv3"
23 }
24 },
25 "specialTransport": {
26 "host": "smtp.someplace.org",
27 "port": 587,
28 "secure": false,
29 "auth": {
30 "user": "admin@example.com",
31 "pass": "password"
32 },
33 "tls": {
34 "ciphers": "SSLv3"
35 }
36 }
37 }
38}
39

Yukarıdaki örnekte, mailgun adında varsayılan bir SMTP e-posta transportu tanımlıyoruz. Ayrıca özellikle @yahoo.com e-postaları için kullandığımız özel bir transport tanımlıyoruz. Bazı senaryolarda teslimatı ayarlamak için bir alan adı için belirli bir sağlayıcıya veya gönderim IP'sine (sending IP) özel olarak yönlendirme yapmak istenebilir. Bu isteğe bağlıdır.

DocumentDB

DocumentDB'ye bağlanırken, varsayılan ayarlarla uyumlu olması için MONGO_ENABLE_SSL=true MONGO_SSL_CA=/some/path.pem belirtmek istersiniz.

Veritabanı Kesintisi ve Bakım Modu Internal Link

FastComments otomatik bir bakım modunu destekler. Veritabanı çökerse, popüler yorum dizilerini sunmaya devam edebilir.

Ayrıca bakım modunda tüm yorumlar BACKUP_DIR'ye kaydedilir. Sistem tekrar çevrimiçi olduğunda işlenecekler (spam kontrolü vb.) ve kaydedilecekler.

Bunu, her saat en popüler 100 yorum dizisini belirleyip içeriklerini diskte önbelleğe alarak yapar. En popüler 100 dizinin belirlenmesi önceden hesaplanmış durumdan yapıldığından, ağır bir periyodik iş değildir.

Bu tamamen isteğe bağlıdır ve yalnızca CACHE_DIR ve BACKUP_DIR ayarlıysa etkinleştirilir. Bu elbette uygulama düğümlerini durumlu hale getirir, ancak bu durum uygulamanın hatalı davranmasına neden olmadan her zaman kaybolabilir.

Bakım modunda yorum dizilerinin uygun şekilde kimlik doğrulaması yapılamayacağını unutmayın; bu nedenle yalnızca güvenle genel kabul edilen diziler periyodik olarak yedeklenir.

Bakım modunda birçok özellik kullanılamaz.

Widget Kodu Internal Link


On-Prem için ön uç kod parçacıkları ve kütüphaneler SaaS ürünü ile aynıdır. Ancak apiHost ve doğru betik yolunu belirtmelisiniz:

On-Prem İçin Yorum Kodu
Copy Copy
1
2<script async src="https://my.host.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 window.fcConfigs = [{
6 target: '#fastcomments-widget',
7 tenantId: "demo",
8 apiHost: "https://my.host.com"
9 // ... SSO yükü vb. de gönderilebilir.
10 }];
11</script>
12

Yukarıdaki çok basit bir örnektir. Ayrıca birinci taraf React, Angular, Vue, Svelte vb. kütüphaneleri de kullanabiliriz.


API Internal Link

API, normal SaaS ürünüyle aynı şekilde erişilebilir; On-Prem kontrol paneline giriş yaparak API anahtarları oluşturur ve bu anahtarları API'ye erişmek için kullanırsınız. API uç noktaları on-prem, SaaS ürünü için olanlarla aynıdır.

Birden Fazla Alan Adı Internal Link

On-Prem FastComments kurulumunuz, örneğin app.mycorp.org ve hr.mycorp.org gibi birden fazla dahili domaine yorum sağlayabilir. Bunları yapılandırabilirsiniz ayrı ayrı ancak bunların bireysel davranışlarını yapılandırmak için ayrı Customization Rules oluşturarak bunları tek bir On-Prem kurulumu üzerinde barındırabilirsiniz.

Güvenlik Internal Link

Varsayılan olarak FastComments yorum dizilerinin herkese açık olduğunu varsayar. Bir güvenlik katmanı eklemek için, Requires SSO seçeneği işaretli olacak şekilde bir Özelleştirme Kuralı oluşturmanız önerilir. Bu, tüm yorumla ilgili uç noktaların SSO kimlik doğrulaması gerektirmesine neden olur.

Sonuç

On Prem belgelerinin sonuna ulaştınız. Aşağıda başka yorumlarınız veya sorularınız varsa bize bildirin - ayrıca bize Destek Sayfası aracılığıyla da ulaşabilirsiniz.