FastComments.com

Gostovanje FastComments v prostorih stranke

FastComments nudi več rešitev za nameščanje. Najpogostejša je, da gostujemo aplikacijo za vas.

Vendar razumemo, da nekateri naročniki svojih podatkov ne morejo hraniti v oblaku in zahtevajo gostovanje vseh svojih podatkov v lastni infrastrukturi.

Ta dokumentacija pokriva ta primer uporabe.

Kaj je vključeno Internal Link

FastComments On Prem omogoča, da namestite našo rešitev za komentiranje v živo, vključno z vsemi orodji za moderiranje in upravljanje, na vaši lastni strojni opremi.

To pomeni, da nadzorujete svoje podatke, in sistem za komentiranje je mogoče omejiti na vaš lokalni LAN ali korporativno omrežje.

Primerki Internal Link


Zahtevane komponente

Za On-Prem je FastComments sestavljen le iz aplikacijskega strežnika in baze podatkov. Poenostavili smo namestitev, tako da aplikacija lahko neposredno obdeluje ves promet brez dodajanja drugih komponent.

Aplikacijski strežnik je na voljo v Docker sliki in ga je mogoče namestiti z poljubno rešitvijo za upravljanje kontejnerjev.

Bazo podatkov, MongoDB, lahko gostite sami ali pa jo upravlja drug ponudnik, kot sta AWS DocumentDB ali MongoDB Atlas.

FastComments je trenutno preizkušen z MongoDB 7, vendar si prizadevamo za združljivost z DocumentDB, da poenostavimo namestitev.

Velikosti instanc

Ugotovili boste, da je FastComments dokaj optimiziran in za samo aplikacijo ne zahteva velikih strojev, da ohrani nizke P99s.

Vsa batch in cron opravila uporabljajo streaming, da omejijo skupno rabo pomnilnika.

Spodnje tabele za aplikacijski strežnik in bazo podatkov lahko pomagajo pri določanju velikosti.

Instance aplikacijskega strežnika

Sočasni uporabnikiSkupni CPU-ji gručeSkupni pomnilnik gruče
1001256mb
1K2512mb
10K81gb
100K328gb
1M6464gb

Na primer, enojno jedro, ki obdela približno 100 niti komentarjev na sekundo, ponavadi ne porabi več kot 250mb RSS.

Instance strežnika baze podatkov

Določanje velikosti baze podatkov je odvisno od velikosti delovnega nabora (working set), kar je količina podatkov, do katerih dostopate v določenem trenutku, pa tudi od sočasnih zahtev.

FastComments je Mongo prijazen, saj za pogoste poizvedbe uporablja index hints, streaming cursors in ima omejitve sočasnosti na različnih področjih, da prepreči preobremenitev nadaljnjih sistemov.

Spodaj je splošno vodilo za velikosti instanc baze podatkov. Upoštevajte, da je to na instanco, ne skupni viri v gruči.

Sočasni uporabnikiShranjeni komentarjiCPU-ji na instancoPomnilnik na instanco
1001k1256mb
1K5k2512mb
10K100k82gb
100K500k168gb
1M5M3232gb

Zgornje tabele so konservativne ocene. Dejanske zahteve se lahko razlikujejo glede na vašo specifično konfiguracijo (velikost strani, volumen komentarjev itd.).

Konfiguracija Internal Link

FastComments uporablja okoljske spremenljivke za konfiguracijo. Naslednji seznam opisuje vse podprte spremenljivke, pomembne za On-Prem.

VariableDefaultInfoRequiredExamples or Valid Values
NODE_ENVVrsta okolja.Daproduction, dev
MONGO_URIURI za povezavo s podatkovno bazo.Da
MONGO_ENABLE_SSLfalseOmogoči uporabo SSL za povezavo s podatkovno bazo.Netrue, false
MONGO_ENABLE_SSL_VALIDATEfalseOmogoči preverjanje potrdila proti CA pri povezovanju z Mongo.Netrue, false
MONGO_SSL_CAMongo SSL CA pem datoteka.Ne/path/to/some-cert.pem
ADMIN_NOTIFICATIONS_EMAILE-pošta, kamor naj gredo pomembna obvestila povezana s sistemom.Neadmin-group@bigcorp.com
IP_HASH_SALTSol za zgoščevanje IP naslovov.Da
SESSION_SECRETKljuč, uporabljen za podpisovanje sej.Da
SESSION_STORE_SECRETKljuč, uporabljen za podpisovanje/zgoščevanje sej v shrambi. Mora biti drugačen od SESSION_SECRET.Da
HOSTNAMEGostiteljsko ime, kjer je nameščen FastComments (npr. administrativni vmesnik). NE sme vsebovati porta ali protokola.Daexample.com
HOST_ADDRDostopni URI, kjer je nameščen FastComments (npr. administrativni vmesnik).Dahttps://example.com
EMAIL_CONFIG_PATHPot v lokalnem datotečnem sistemu, kjer se nahaja konfiguracija e-pošte (SMTP, preslikave domen/ponudnikov itd.).Da/my/config.json
EMAIL_DEFAULT_FROM_NAMEFastComments RobotGlava e-pošte "From Name".NeMy Company Name
EMAIL_DEFAULT_FOOTER_LOGO/images/logo-32-2020-01.pngLogotip v nogi e-pošte.Nehttps://exmaple.com/footer.png
EMAIL_DEFAULT_TRANSPORTPrepis za "defaultTransport" v EMAIL_CONFIG_PATH. Uporabno pri nameščanju iste konfiguracijske datoteke v različnih okoljih.NemyTransportName
ON_PREM_TENANT_IDID vašega računa na fastcomments.com. Uporablja se za registracijo vašega licenčnega ključa.Ne
ON_PREM_LICENSE_KEYOn-prem licenčni ključ.Ne
GIPHY_API_KEYGiphy API ključ. Če ni določen, ustvarite konfiguracijsko pravilo, ki onemogoči izbiro GIF-ov.Ne
GIPHY_DEFAULT_RATINGpgUporablja se za integracijo Giphy. Lahko ga tudi prepišejo pravila za prilagoditev widgeta.Neg, pg, pg-13, r
OPENAI_SECRET_KEYUporablja se za funkcije, podprte z OpenAI, kot je izbirno GPT-podprto zaznavanje neželene pošte.Ne
CDN_HOST_ADDRGostiteljsko ime, od koder se bodo prenašale datoteke z viri (assets). Privzeto je vrednost HOSTNAME.Neexample.com
LARGE_FILE_HOST_ADDRGostiteljsko ime, od koder se prenesejo velike datoteke (npr. izvozi). Privzeto vrednost jemlje iz CDN_HOST_ADDR.Neexample.com
LARGE_FILE_LOCATION_TYPElocal_diskKje naj bodo shranjene velike datoteke, kot so izvozi.Nelocal_disk, s3
FROM_EMAIL_HOSTGostiteljsko ime, iz katerega naj bodo e-pošte poslane.Neexample.com
COOKIE_IDfastcomments.sidIme piškotka fastcomments.Ne
COOKIE_HOSTNAME.fastcomments.comVrednost polja "hostname" v piškotku. Priporočljivo je predpono s piko.Ne.example.com
S3_ACCESS_KEYUporablja se za nalaganje datotek uporabnikov, avatarje itd. Privzeto je lokalni datotečni sistem, če ni definirano.Ne
S3_SECRET_KEYUporablja se za nalaganje datotek uporabnikov, avatarje itd.Ne
S3_REGIONUporablja se za nalaganje datotek uporabnikov, avatarje itd.Ne
S3_BUCKETUporablja se za nalaganje datotek uporabnikov, avatarje itd.Ne
S3_HOSTUporablja se za nalaganje datotek uporabnikov, avatarje itd.Ne
CACHE_DIRLokacija za shranjevanje opcijskega brez povezave predpomnilnika, za primer, ko podatkovna baza ni na voljo. Periodično osveževan z 100 najboljšimi nitmi komentarjev.Ne
BACKUP_DIRLokacija za shranjevanje podatkov za primer, ko podatkovna baza ni na voljo. Če je komentar poslan, ko DB ni na voljo, gre sem in se obdela kasneje.Ne

Upoštevajte, da vse spremenljivke povezane z domenami uporabljajo pripono _HOST ali _ADDR. Razlika je:

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

EMAIL_CONFIG_PATH naj vsebuje pot do JSON datoteke z naslednjo vzorčno obliko:

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

V zgornjem primeru smo definirali privzeti SMTP transport z imenom mailgun. Prav tako smo definirali poseben transport, ki ga uporabljamo posebej za e-pošto @yahoo.com. V nekaterih scenarijih je smiselno uporabiti določenega ponudnika ali pošiljajoči IP za domeno za nastavitev dostave. To je neobvezno.

DocumentDB

Ko se povezujete na DocumentDB, nastavite MONGO_ENABLE_SSL=true MONGO_SSL_CA=/some/path.pem, da boste združljivi z privzetimi nastavitvami.


Izpad baze podatkov in način vzdrževanja Internal Link

FastComments podpira samodejni način vzdrževanja. Če baza podatkov preneha delovati, lahko še naprej streže priljubljene niti komentarjev.

Poleg tega se v načinu vzdrževanja vsi komentarji shranijo v BACKUP_DIR. Obdelani bodo (preverjeni glede neželene pošte itd.) in shranjeni, ko bo sistem spet na voljo.

To stori tako, da vsako uro določi 100 najbolj priljubljenih nitk komentarjev in njihove vsebine predpomni na disku. Določanje top 100 nitk je že izvedeno na podlagi vnaprej izračunanega stanja, zato ni zahtevna periodična naloga.

To je popolnoma izbirno in je omogočeno samo, če sta nastavljena CACHE_DIR in BACKUP_DIR. Seveda to naredi vozlišča aplikacije z ohranjanjem stanja, vendar gre za stanje, ki se lahko kadarkoli izgubi, ne da bi to povzročilo nepravilno delovanje aplikacije.

Upoštevajte, da v načinu vzdrževanja ni mogoče pravilno preveriti pristnosti niti komentarjev, zato se periodično varnostno kopirajo le niti, ki jih varno štejemo za javne.

V načinu vzdrževanja mnoge funkcije niso na voljo.

Koda gradnika Internal Link


Koda vmesnika (front-end) in knjižnice za On-Prem so enake kot pri izdelku SaaS. Vendar pa morate navesti apiHost in pravilno pot do skripte:

Koda komentarjev 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 // ... lahko tudi posredujete SSO podatke itd.
10 }];
11</script>
12

Zgornji primer je zelo preprost. Uporabili bi lahko tudi uradne knjižnice za React, Angular, Vue, Svelte itd.


API Internal Link

Do API-ja je mogoče dostopati enako kot do običajnega SaaS izdelka: prijavite se v nadzorno ploščo On-Prem, ustvarite API ključe in uporabite te ključe za dostop do API-ja.
Končne točke API-ja so v On-Prem okolju enake kot pri SaaS izdelku.

Več domen Internal Link

Vaša On-Prem FastComments namestitev lahko streže komentarje na več notranjih domen, na primer app.mycorp.org in hr.mycorp.org. Lahko jih konfigurirate ločeno, vendar jih gostite na eni On-Prem namestitvi z ustvarjanjem ločenih pravil prilagoditve za nastavitev njihovega posameznega vedenja.

Varnost Internal Link

Privzeto FastComments predpostavlja, da so nitke komentarjev javne. Če želite dodati plast varnosti, je priporočljivo ustvariti pravilo prilagoditve z Requires SSO možnostjo izbrano. To bo povzročilo, da bodo vse končne točke, povezane s komentarji, zahtevale SSO overjanje.


Za zaključek

Prišli ste do konca dokumentacije On Prem. Spodaj nam sporočite dodatne komentarje ali vprašanja, ki jih imate - lahko nas tudi kontaktirate prek Strani za podporo.