FastComments.com

Хостирање FastComments локално

FastComments нуди више решења за распоређивање. Најчешћи је случај када ми хостирамо апликацију за вас.

Међутим, разумемо да неки клијенти не могу да чувају своје информације у облаку, и захтевају хостирање свих својих података локално.

Ова документација покрива тај случај.

Шта је укључено Internal Link


FastComments On Prem вам омогућава да распоредите наше решење за уживо коментарисање, укључујући све алате за модерацију и администрацију, на вашем сопственом хардверу.

То значи да имате контролу над својим подацима, и да се систем за коментарисање може ограничити на вашу локалну LAN или корпоративну мрежу.


Инстанце Internal Link

Потребне компоненте

За On-Prem, FastComments се састоји само од апликационог сервера и базе података. Поједноставили смо деплој тако да апликација може да обрађује сав саобраћај директно без додавања других компоненти.

Апликациони сервер је обезбеђен у Docker слици и може се деплојовати помоћу било ког решења за управљање контејнерима.

База података, MongoDB, може да се покреће самостално или да буде хостирана код другог провајдера као што су AWS DocumentDB или MongoDB Atlas.

FastComments је тренутно тестиран са MongoDB 7, међутим циљамо компатибилност са DocumentDB ради олакшања распоређивања.

Величине инстанци

Увидећете да је FastComments прилично добро оптимизован и да не захтева велике машине за саму апликацију да би одржао ниске P99 вредности.

Сви batch и cron задаци користе streaming како би ограничили укупну употребу меморије.

Доње табеле за апликациони сервер и базу података могу помоћи при одређивању величине.

Инстанце апликационог сервера

Истовремени кориснициУкупни Cluster CPUsУкупна Cluster меморија
1001256mb
1K2512mb
10K81gb
100K328gb
1M6464gb

На пример, једно језгро које служи око 100 тема коментара у секунди обично никада не користи више од 250mb RSS.

Инстанце сервера базе података

Одређивање величине базе података зависи од величине радног сета, што је количина података којима приступате у датом тренутку, као и од истовремених захтева.

FastComments је прилично пријатељски према Mongo-у, јер за вруће упите користи index hints, streaming cursors, и има ограничења паралелности у разним областима како би спречио преоптерећење downstream система.

Доње је општа смерница за величине инстанци базе података. Имајте у виду да је ово по инстанци, а не укупни ресурси у кластеру.

Истовремени кориснициСачувани коментариCPU-ова по инстанциМеморија по инстанци
1001k1256mb
1K5k2512mb
10K100k82gb
100K500k168gb
1M5M3232gb

Горње табеле су конзервативне процене. Може се десити да се стварни захтеви разликују у зависности од ваше специфичне конфигурације (величине страница, обима коментара итд).


Конфигурација Internal Link

FastComments koristi environment varijable za konfiguraciju. Slijedeći spisak navodi sve podržane varijable koje su relevantne za On-Prem.

VariablePodrazumijevanoOpisObaveznoPrimjeri ili važeće vrijednosti
NODE_ENVTip okruženja.Daproduction, dev
MONGO_URIURI za povezivanje sa bazom podataka.Da
MONGO_ENABLE_SSLfalseOmogućava korišćenje SSL-a za povezivanje sa bazom podataka.Netrue, false
MONGO_ENABLE_SSL_VALIDATEfalseOmogućava validaciju sertifikata prema CA prilikom povezivanja na Mongo.Netrue, false
MONGO_SSL_CAMongo SSL CA pem fajl.Ne/path/to/some-cert.pem
ADMIN_NOTIFICATIONS_EMAILEmail na koji treba da stižu važne sistemske notifikacije.Neadmin-group@bigcorp.com
IP_HASH_SALTSol za heširanje IP adresa.Da
SESSION_SECRETKljuč koji se koristi za potpisivanje sesija.Da
SESSION_STORE_SECRETKljuč koji se koristi za potpisivanje/heširanje sesija u skladištu. Mora biti drugačiji od SESSION_SECRET.Da
HOSTNAMEHostname na kojem je FastComments postavljen (admin dashboard itd). Ne smije uključivati port ili protokol.Daexample.com
HOST_ADDRPristupačni URI na kojem je FastComments dostupan (admin dashboard itd).Dahttps://example.com
EMAIL_CONFIG_PATHPutanja na lokalnom fajl sistemu gdje se nalazi konfiguracija e-pošte (SMTP, mapiranja domena/ provajdera, itd).Da/my/config.json
EMAIL_DEFAULT_FROM_NAMEFastComments RobotZaglavlje "From Name" u emailu.NeMy Company Name
EMAIL_DEFAULT_FOOTER_LOGO/images/logo-32-2020-01.pngLogo u podnožju emaila.Nehttps://exmaple.com/footer.png
EMAIL_DEFAULT_TRANSPORTOverride za "defaultTransport" u EMAIL_CONFIG_PATH. Korisno za deploy istog konfiguracionog fajla u različita okruženja.NemyTransportName
ON_PREM_TENANT_IDID vašeg naloga na fastcomments.com. Koristi se za registraciju vašeg licence ključa.Ne
ON_PREM_LICENSE_KEYOn-Prem licencni ključ.Ne
GIPHY_API_KEYGiphy API ključ. Ako nije naveden, trebate kreirati konfiguraciono pravilo koje onemogućava izbor gifova.Ne
GIPHY_DEFAULT_RATINGpgKoristi se za Giphy integraciju. Može se takođe prebrisati pravilima za prilagođavanje widgeta.Neg, pg, pg-13, r
OPENAI_SECRET_KEYKoristi se za OpenAI funkcionalnosti poput opcionog GPT-baziranog detektovanja spama.Ne
CDN_HOST_ADDRHostname sa kojeg će se preuzimati asseti. Po defaultu koristi vrijednost HOSTNAME.Neexample.com
LARGE_FILE_HOST_ADDRHostname sa kojeg se preuzimaju veliki fajlovi (npr. eksporti). Po defaultu koristi vrijednost CDN_HOST_ADDR.Neexample.com
LARGE_FILE_LOCATION_TYPElocal_diskGdje treba čuvati velike fajlove, poput eksportovanih podataka.Nelocal_disk, s3
FROM_EMAIL_HOSTHostname sa kojeg bi emailovi trebali biti poslati.Neexample.com
COOKIE_IDfastcomments.sidIme fastcomments kolačića.Ne
COOKIE_HOSTNAME.fastcomments.comVrijednost polja "hostname" u kolačiću. Preporučeno je prefiksirati tačkom.Ne.example.com
S3_ACCESS_KEYKoristi se za korisničke uploadove fajlova, avatara itd. Po defaultu koristi lokalni FS ako nije definisano.Ne
S3_SECRET_KEYKoristi se za korisničke uploadove fajlova, avatara itd.Ne
S3_REGIONKoristi se za korisničke uploadove fajlova, avatara itd.Ne
S3_BUCKETKoristi se za korisničke uploadove fajlova, avatara itd.Ne
S3_HOSTKoristi se za korisničke uploadove fajlova, avatara itd.Ne
CACHE_DIRLokacija za pohranu opcionalnog offline keša, za slučaj da DB nije dostupan. Periodično se osvježava sa top 100 nitima komentara.Ne
BACKUP_DIRLokacija za pohranu podataka za slučaj da DB nije dostupan. Ako je komentar poslan kada DB nije dostupan, ide ovdje i obrađuje se kasnije.Ne

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

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

EMAIL_CONFIG_PATH treba da sadrži putanju do JSON fajla sa sljedećim primjerom formata:

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 gore navedenom primjeru definišemo podrazumijevani SMTP email transport nazvan mailgun. Takođe definišemo specijalan transport koji koristimo posebno za @yahoo.com emailove. U nekim scenarijima poželjno je koristiti određenog provajdera ili IP adresu za slanje za određenu domenu kako bi se prilagodila isporuka. Ovo je opciono.

DocumentDB

Prilikom povezivanja na DocumentDB preporučuje se postaviti MONGO_ENABLE_SSL=true MONGO_SSL_CA=/some/path.pem da biste bili kompatibilni sa podrazumijevanim postavkama.


Застој базе података и режим одржавања Internal Link


FastComments подржава аутоматски режим одржавања. Ако база података падне, може наставити да служи популарне нити коментара.

Додатно, у режиму одржавања, сви коментари се чувају у BACKUP_DIR. Биће обрађени (провјера за спам, итд.) и сачувани када систем поново буде онлајн.

Он то ради тако што сваког сата утврђује 100 најпопуларнијих нити коментара и кешира њихов садржај на диску. Утврђивање 100 најпопуларнијих нити већ се ради на основу претходно израчунатог стања, тако да то није захтјеван периодични посао.

Ово је потпуно опционo и омогућава се само ако су постављени CACHE_DIR и BACKUP_DIR. Ово, наравно, чини чворове апликације зависним од стања (stateful), међутим то је стање које може бити изгубљено у било којем тренутку без изазивања неправилног понашања апликације.

Имајте у виду да у режиму одржавања правилна аутентификација нити коментара не може бити урађена, тако да се периодично праве резервне копије само оних нити које се безбједно сматрају јавним.

У режиму одржавања многе функције нису доступне.


Код виџета Internal Link


Fragmenti koda i biblioteke za front-end za On-Prem su isti kao kod SaaS proizvoda. Međutim, morate navesti apiHost i ispravan put do skripta:

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 // ... možete takođe proslediti SSO payload itd.
10 }];
11</script>
12

Gornji primer je veoma jednostavan. Takođe možemo koristiti zvanične React, Angular, Vue, Svelte itd. biblioteke.


АПИ Internal Link

До API-ја се може приступити на исти начин као и код редовног SaaS производа: пријављивањем у On-Prem контролни панел да бисте креирали API keys и користили те API keys за приступ API-ју. API endpoints су исти на On-Prem као и за SaaS производ.

Више домена Internal Link

Vaša On-Prem FastComments instalacija može isporučivati komentare za više internih domena, na primjer app.mycorp.org i hr.mycorp.org. Možete ih konfigurisati odvojeno, али ih hostovati na jednoj On-Prem instalaciji kreiranjem zasebnih Customization Rules kako biste podesili njihovo pojedinačno ponašanje.

Безбједност Internal Link

Подразумевано, FastComments претпоставља да су нитови коментара јавни.

Да бисте додали додатни ниво безбедности, препоручује се креирање правила прилагођавања са означеном опцијом Requires SSO. Ово ће узроковати да сви ендпоинти везани за коментаре захтевају SSO аутентикацију.

У закључку

Дошли сте до краја On Prem документације. Јавите нам које додатне коментаре или питања имате испод - можете такође да нас контактирате путем Странице за подршку.