FastComments.com


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

Required Components

For On-Prem, FastComments just consists of an application server and a database. We have simplified the deployment so that the application can serve all traffic directly without adding other components.

The application server is provided in a Docker image and can be deployed with any container management solution.

The database, MongoDB, can be self-ran or hosted by another provider like AWS DocumentDB or MongoDB Atlas.

FastComments is currently tested with MongoDB 7, however we aim to be DocumentDB compatible to ease deployment.

Instance Sizes

You will find that FastComments is fairly well optimized and doesn't require large machines for the application itself to keep low P99s.

All batch and cron jobs use streaming to limit total memory usage.

The below tables for the application server and database can assist with sizing.

Application Server Instances

Istovremeni korisniciUkupni CPU-ovi klasteraUkupna memorija klastera
1001256mb
1K2512mb
10K81gb
100K328gb
1M6464gb

For example, a single core serving around 100 comment threads a second usually never uses more than 250mb RSS.

Database Server Instances

Sizing the database depends on working set size, which is the amount of data you access at a given point in time, as well as concurrent requests.

FastComments is fairly kind to Mongo, in that for the hot queries it uses index hints, streaming cursors, and has concurrency limits in various areas to prevent overloading of downstream systems.

The below is a general guideline on database instance sizes. Note that this is per instance, not total resources in the cluster.

Istovremeni korisniciSpremljeni komentariCPU-ovi po instanciMemorija po instanci
1001k1256mb
1K5k2512mb
10K100k82gb
100K500k168gb
1M5M3232gb

The above tables are conservative estimates. You may find actual requirements differ based on your specific configuration (page sizes, comment volume, etc).


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.