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 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 Internal Link

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:

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 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:

Koda komentarjev za On-Prem
Copy Copy
1
2<script src="https://my.host.com/js/embed-v2.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 FastCommentsUI(document.getElementById('fastcomments-widget'), {
6 tenantId: "demo",
7 apiHost: "https://my.host.com"
8 // ... lahko tudi posredujete SSO podatke itd.
9 });
10</script>
11

Zgoraj je zelo preprost primer. Uporabimo 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.