FastComments.com

Lokalna instalacija

Hostanje FastCommentsa na lokaciji

FastComments nudi nekoliko rješenja za implementaciju. Najčešći slučaj je kada mi hostamo aplikaciju za vas.

Međutim, razumijemo da neki korisnici ne mogu pohranjivati svoje informacije u oblaku, i zahtijevaju hostanje svih svojih podataka na lokaciji.

Ova dokumentacija pokriva taj slučaj.

Što je uključeno Internal Link

FastComments On Prem vam omogućava da implementirate naše rješenje za komentiranje uživo, uključujući sve alate za moderiranje i administraciju, na vlastitom hardveru.

To znači da imate kontrolu nad svojim podacima, a sustav komentiranja može biti ograničen na vaš lokalni LAN ili korporativnu mrežu.

Instancije Internal Link

Potrebne komponente

Za On-Prem, FastComments se sastoji samo od aplikacijskog poslužitelja i baze podataka. Pojednostavili smo implementaciju tako da aplikacija može opslužiti sav promet izravno bez dodavanja drugih komponenti.

Aplikacijski poslužitelj dostavljen je kao Docker image i može se implementirati s bilo kojim rješenjem za upravljanje kontejnerima.

Bazu podataka, MongoDB, možete pokrenuti sami ili je može hostirati drugi pružatelj usluga poput AWS DocumentDB ili MongoDB Atlas.

FastComments je trenutno testiran s MongoDB 7, međutim težimo kompatibilnosti s DocumentDB kako bismo olakšali implementaciju.

Veličine instanci

Otkrit ćete da je FastComments prilično dobro optimiziran i ne zahtijeva velike strojeve za samu aplikaciju kako bi održao niske P99 vrijednosti.

Sve batch i cron zadatke koriste streaming kako bi ograničili ukupnu potrošnju memorije.

Donje tablice za aplikacijski poslužitelj i bazu podataka mogu pomoći pri određivanju veličine.

Instance aplikacijskog poslužitelja

Istovremeni korisniciUkupno CPU-a klasteraUkupna memorija klastera
1001256mb
1K2512mb
10K81gb
100K328gb
1M6464gb

Na primjer, jedno jezgro koje opslužuje oko 100 niti komentara u sekundi obično nikada ne koristi više od 250mb RSS-a.

Instance poslužitelja baze podataka

Veličina baze podataka ovisi o veličini radnog skupa, tj. o količini podataka kojima pristupate u određenom trenutku, kao i o istovremenim zahtjevima.

FastComments je prilično blagonaklon prema Mongodb-u, u smislu da za vruće upite koristi index hints, streaming cursors, te ima ograničenja konkurentnosti u raznim područjima kako bi spriječio preopterećenje sustava nizvodno.

Donje smjernice su općenite za veličine instanci baze podataka. Imajte na umu da se ovo odnosi na po instanci, a ne na ukupne resurse u klasteru.

Istovremeni korisniciPohranjeni komentariCPU-a po instanciMemorija po instanci
1001k1256mb
1K5k2512mb
10K100k82gb
100K500k168gb
1M5M3232gb

Gornje tablice su konzervativne procjene. Možete otkriti da se stvarni zahtjevi razlikuju ovisno o vašoj specifičnoj konfiguraciji (veličine stranica, obujam komentara itd).

Konfiguracija Internal Link

FastComments koristi varijable okoline za konfiguraciju. Sljedeći popis navodi sve podržane varijable koje su relevantne za On-Prem.

VarijablaZadanoInfoObaveznoPrimjeri ili valjane vrijednosti
NODE_ENVTip okoline.Daproduction, dev
MONGO_URIURI za povezivanje s bazom podataka.Da
MONGO_ENABLE_SSLfalseOmogućuje korištenje SSL-a za povezivanje s bazom podataka.Netrue, false
MONGO_ENABLE_SSL_VALIDATEfalseOmogućuje provjeru certifikata protiv CA pri povezivanju na Mongo.Netrue, false
MONGO_SSL_CAMongo SSL CA pem datoteka.Ne/path/to/some-cert.pem
ADMIN_NOTIFICATIONS_EMAILE-pošta na koju bi trebale stizati važne obavijesti vezane uz sustav.Neadmin-group@bigcorp.com
IP_HASH_SALTSalt (sol) za hashiranje IP adresa.Da
SESSION_SECRETKljuč koji se koristi za potpisivanje sesija.Da
SESSION_STORE_SECRETKljuč koji se koristi za potpisivanje/hashiranje sesija u spremištu. Mora biti različit od SESSION_SECRET.Da
HOSTNAMEHostname na kojem je FastComments postavljen (administratorska konzola itd.). NE smije uključivati port ili protokol.Daexample.com
HOST_ADDRDostupan URI na kojem je FastComments postavljen (administratorska konzola itd.).Dahttps://example.com
EMAIL_CONFIG_PATHPutanja na lokalnom datotečnom sustavu gdje se nalazi konfiguracija e-pošte (SMTP, mapiranja domena/ponuđača itd.).Da/my/config.json
EMAIL_DEFAULT_FROM_NAMEFastComments RobotPolje "From Name" u zaglavlju e-pošte.NeMy Company Name
EMAIL_DEFAULT_FOOTER_LOGO/images/logo-32-2020-01.pngLogo u podnožju e-pošte.Nehttps://exmaple.com/footer.png
EMAIL_DEFAULT_TRANSPORTOverride za "defaultTransport" u EMAIL_CONFIG_PATH. Korisno za raspoređivanje iste datoteke konfiguracije u različita okruženja.NemyTransportName
ON_PREM_TENANT_IDID vašeg računa na fastcomments.com. Koristi se za registraciju vašeg ključa licence.Ne
ON_PREM_LICENSE_KEYLicencni ključ za on-prem.Ne
GIPHY_API_KEYGiphy API ključ. Ako nije naveden, trebate stvoriti pravilo konfiguracije koje će onemogućiti odabir gifova.Ne
GIPHY_DEFAULT_RATINGpgKoristi se za integraciju s Giphyjem. Može se također nadjačati pravilima prilagodbe widgeta.Neg, pg, pg-13, r
OPENAI_SECRET_KEYKoristi se za značajke pokretane OpenAI-jem, poput opcionalne GPT-bazirane detekcije spama.Ne
CDN_HOST_ADDRHostname s kojeg će se dohvaćati resursi. Zadano je vrijednost HOSTNAME.Neexample.com
LARGE_FILE_HOST_ADDRHostname s kojeg se dohvaćaju velike datoteke (npr. izvozi). Zadano je vrijednost CDN_HOST_ADDR.Neexample.com
LARGE_FILE_LOCATION_TYPElocal_diskGdje bi se trebale pohranjivati velike datoteke, poput izvoza.Nelocal_disk, s3
FROM_EMAIL_HOSTHostname s kojeg bi se trebale slati e-pošte.Neexample.com
COOKIE_IDfastcomments.sidNaziv fastcomments kolačića.Ne
COOKIE_HOSTNAME.fastcomments.comVrijednost polja "hostname" u kolačiću. Preporučuje se prefiksati točkom.Ne.example.com
S3_ACCESS_KEYKoristi se za korisnička učitavanja datoteka, avatare itd. Zadano je lokalni datotečni sustav ako nije definirano.Ne
S3_SECRET_KEYKoristi se za korisnička učitavanja datoteka, avatare itd.Ne
S3_REGIONKoristi se za korisnička učitavanja datoteka, avatare itd.Ne
S3_BUCKETKoristi se za korisnička učitavanja datoteka, avatare itd.Ne
S3_HOSTKoristi se za korisnička učitavanja datoteka, avatare itd.Ne
CACHE_DIRLokacija za pohranu opcionalne offline cache (predmemorije), za slučajeve kada DB nije dostupan. Periodično se osvježava s top 100 niti komentara.Ne
BACKUP_DIRLokacija za pohranu podataka za slučajeve kada DB nije dostupan. Ako se komentar pošalje kada DB nije dostupan, ide ovdje i obrađuje se kasnije.Ne

Imajte na umu da sve varijable vezane uz domenu koriste sufiks _HOST ili _ADDR. Razlika je:

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

EMAIL_CONFIG_PATH bi trebao sadržavati putanju do JSON datoteke sa sljedećim primjernim formatom:

Konfiguracija e-pošte
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

U gornjem primjeru definiramo zadani SMTP transport e-pošte nazvan mailgun. Također definiramo poseban transport koji koristimo posebno za e-poruke @yahoo.com. U nekim scenarijima poželjno je koristiti određenog pružatelja usluge ili IP adresu za slanje za određenu domenu kako bi se poboljšala isporuka. Ovo je opcionalno.

DocumentDB

Prilikom povezivanja na DocumentDB trebate navesti MONGO_ENABLE_SSL=true MONGO_SSL_CA=/some/path.pem kako biste bili kompatibilni s zadanim postavkama.

Zastoji baze podataka i način održavanja Internal Link

FastComments podržava automatski način održavanja. Ako baza podataka padne, može nastaviti služiti popularne niti komentara.

Osim toga, u načinu održavanja svi se komentari spremaju u BACKUP_DIR. Oni će biti obrađeni (provjereni na spam itd.) i spremljeni kad sustav ponovno bude online.

To radi tako da svakog sata određuje 100 najpopularnijih niti komentara i kešira njihov sadržaj na disku. Određivanje top 100 niti već se radi iz unaprijed izračunatog stanja, tako da nije težak periodični zadatak.

Ovo je potpuno opcionalno i omogućeno je samo ako su postavljeni CACHE_DIR i BACKUP_DIR. To naravno čini čvorove aplikacije ovisnima o stanju, no to je stanje koje se može izgubiti u bilo kojem trenutku bez da uzrokuje pogrešno ponašanje aplikacije.

Imajte na umu da se u načinu održavanja ne može provesti ispravna autentikacija niti komentara, pa se povremeno spremaju samo niti koje se sigurno smatraju javnima.

U načinu održavanja mnoge značajke nisu dostupne.

Kod widgeta Internal Link

Fragmenti koda i biblioteke za front-end za On-Prem su isti kao i za SaaS proizvod. Međutim, morate navesti apiHost i ispravnu putanju skripte:

Kod komentara za On-Prem
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 // ... također možete proslijediti SSO payload itd.
10 }];
11</script>
12

Gore je vrlo jednostavan primjer. Također možemo koristiti 1st-party biblioteke za React, Angular, Vue, Svelte itd.

API Internal Link

Pristup API-ju je moguć na isti način kao i kod uobičajenog SaaS proizvoda — prijavite se u On-Prem nadzornu ploču kako biste stvorili API ključeve i koristili te ključeve za pristup API-ju. API endpoints su isti on-prem kao i za SaaS proizvod.

Više domena Internal Link

Vaša On-Prem FastComments instalacija može poslužiti komentare za više internih domena, na primjer app.mycorp.org i hr.mycorp.org. Možete ih konfigurirati zasebno, ali ih hostati na jednom On-Prem sustavu stvaranjem zasebnih Pravila prilagodbe kako biste konfigurirali njihova pojedinačna ponašanja.

Sigurnost Internal Link

Po zadanim postavkama, FastComments pretpostavlja da su niti komentara javne. Za dodatni sloj sigurnosti preporučuje se stvoriti pravilo prilagodbe s Requires SSO opcijom označenom. Time će svi endpointi povezani s komentarima zahtijevati SSO autentikaciju.

Zaključno

Stigli ste do kraja dokumentacije za On Prem. Obavijestite nas o svojim daljnjim komentarima ili pitanjima u nastavku - možete također nas kontaktirati putem Stranice za podršku.