
Jezik 🇸🇮 Slovenščina
Ozadje
Začetek
Namestitev
Arhitektura
Namestitev in integracija
Varnostni nasveti
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 
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.
Kje začeti 
Za začetek nameščanja FastComments On Prem, kontaktirajte nas.
Ko je nameščeno, lahko vedno prenesete najnovejšo Docker sliko s strani z licencami.
Primerki 
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 uporabniki | Skupni CPU-ji gruče | Skupni pomnilnik gruče |
|---|---|---|
| 100 | 1 | 256mb |
| 1K | 2 | 512mb |
| 10K | 8 | 1gb |
| 100K | 32 | 8gb |
| 1M | 64 | 64gb |
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 uporabniki | Shranjeni komentarji | CPU-ji na instanco | Pomnilnik na instanco |
|---|---|---|---|
| 100 | 1k | 1 | 256mb |
| 1K | 5k | 2 | 512mb |
| 10K | 100k | 8 | 2gb |
| 100K | 500k | 16 | 8gb |
| 1M | 5M | 32 | 32gb |
Zgornje tabele so konservativne ocene. Dejanske zahteve se lahko razlikujejo glede na vašo specifično konfiguracijo (velikost strani, volumen komentarjev itd.).
Konfiguracija 
FastComments uporablja okoljske spremenljivke za konfiguracijo. Naslednji seznam opisuje vse podprte spremenljivke, pomembne za On-Prem.
| Variable | Default | Info | Required | Examples or Valid Values |
|---|---|---|---|---|
| NODE_ENV | Vrsta okolja. | Da | production, dev | |
| MONGO_URI | URI za povezavo s podatkovno bazo. | Da | ||
| MONGO_ENABLE_SSL | false | Omogoči uporabo SSL za povezavo s podatkovno bazo. | Ne | true, false |
| MONGO_ENABLE_SSL_VALIDATE | false | Omogoči preverjanje potrdila proti CA pri povezovanju z Mongo. | Ne | true, false |
| MONGO_SSL_CA | Mongo SSL CA pem datoteka. | Ne | /path/to/some-cert.pem | |
| ADMIN_NOTIFICATIONS_EMAIL | E-pošta, kamor naj gredo pomembna obvestila povezana s sistemom. | Ne | admin-group@bigcorp.com | |
| IP_HASH_SALT | Sol za zgoščevanje IP naslovov. | Da | ||
| SESSION_SECRET | Ključ, uporabljen za podpisovanje sej. | Da | ||
| SESSION_STORE_SECRET | Ključ, uporabljen za podpisovanje/zgoščevanje sej v shrambi. Mora biti drugačen od SESSION_SECRET. | Da | ||
| HOSTNAME | Gostiteljsko ime, kjer je nameščen FastComments (npr. administrativni vmesnik). NE sme vsebovati porta ali protokola. | Da | example.com | |
| HOST_ADDR | Dostopni URI, kjer je nameščen FastComments (npr. administrativni vmesnik). | Da | https://example.com | |
| EMAIL_CONFIG_PATH | Pot v lokalnem datotečnem sistemu, kjer se nahaja konfiguracija e-pošte (SMTP, preslikave domen/ponudnikov itd.). | Da | /my/config.json | |
| EMAIL_DEFAULT_FROM_NAME | FastComments Robot | Glava e-pošte "From Name". | Ne | My Company Name |
| EMAIL_DEFAULT_FOOTER_LOGO | /images/logo-32-2020-01.png | Logotip v nogi e-pošte. | Ne | https://exmaple.com/footer.png |
| EMAIL_DEFAULT_TRANSPORT | Prepis za "defaultTransport" v EMAIL_CONFIG_PATH. Uporabno pri nameščanju iste konfiguracijske datoteke v različnih okoljih. | Ne | myTransportName | |
| ON_PREM_TENANT_ID | ID vašega računa na fastcomments.com. Uporablja se za registracijo vašega licenčnega ključa. | Ne | ||
| ON_PREM_LICENSE_KEY | On-prem licenčni ključ. | Ne | ||
| GIPHY_API_KEY | Giphy API ključ. Če ni določen, ustvarite konfiguracijsko pravilo, ki onemogoči izbiro GIF-ov. | Ne | ||
| GIPHY_DEFAULT_RATING | pg | Uporablja se za integracijo Giphy. Lahko ga tudi prepišejo pravila za prilagoditev widgeta. | Ne | g, pg, pg-13, r |
| OPENAI_SECRET_KEY | Uporablja se za funkcije, podprte z OpenAI, kot je izbirno GPT-podprto zaznavanje neželene pošte. | Ne | ||
| CDN_HOST_ADDR | Gostiteljsko ime, od koder se bodo prenašale datoteke z viri (assets). Privzeto je vrednost HOSTNAME. | Ne | example.com | |
| LARGE_FILE_HOST_ADDR | Gostiteljsko ime, od koder se prenesejo velike datoteke (npr. izvozi). Privzeto vrednost jemlje iz CDN_HOST_ADDR. | Ne | example.com | |
| LARGE_FILE_LOCATION_TYPE | local_disk | Kje naj bodo shranjene velike datoteke, kot so izvozi. | Ne | local_disk, s3 |
| FROM_EMAIL_HOST | Gostiteljsko ime, iz katerega naj bodo e-pošte poslane. | Ne | example.com | |
| COOKIE_ID | fastcomments.sid | Ime piškotka fastcomments. | Ne | |
| COOKIE_HOSTNAME | .fastcomments.com | Vrednost polja "hostname" v piškotku. Priporočljivo je predpono s piko. | Ne | .example.com |
| S3_ACCESS_KEY | Uporablja se za nalaganje datotek uporabnikov, avatarje itd. Privzeto je lokalni datotečni sistem, če ni definirano. | Ne | ||
| S3_SECRET_KEY | Uporablja se za nalaganje datotek uporabnikov, avatarje itd. | Ne | ||
| S3_REGION | Uporablja se za nalaganje datotek uporabnikov, avatarje itd. | Ne | ||
| S3_BUCKET | Uporablja se za nalaganje datotek uporabnikov, avatarje itd. | Ne | ||
| S3_HOST | Uporablja se za nalaganje datotek uporabnikov, avatarje itd. | Ne | ||
| CACHE_DIR | Lokacija 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_DIR | Lokacija 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:

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 
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.
Zaklepi 
Kot vsak porazdeljen sistem FastComments potrebuje način za zaklepanje virov in postopkov. Te zaklepe je mogoče spremljati prek končne točke /locks-in-progress.
Na primer, tukaj je končna točka na našem US shardu.
To je lahko koristno za ugotavljanje, zakaj se sistem zatika ali je obremenjen. Če bi SRE morda želel videti, zakaj sistem doživlja visoko obremenitev CPU, lahko preveri to končno točko, da pridobi ime cron opravila, ki ne deluje pravilno.
Koda gradnika 
Koda za front-end (odjemalska stran) in knjižnice za On-Prem so enake kot pri izdelku SaaS. Vendar morate navesti apiHost in pravilno pot do skripte:

Zgoraj je zelo preprost primer. Uporabimo lahko tudi uradne knjižnice za React, Angular, Vue, Svelte itd.
API 
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 
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.
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.