
Језик 🇲🇪 Српски (Црна Гора)
Позадина
Почетак
Распоређивање
Архитектура
Инсталација и интеграција
Савјети за безбједност
Хостирање FastComments локално
FastComments нуди више решења за распоређивање. Најчешћи је случај када ми хостирамо апликацију за вас.
Међутим, разумемо да неки клијенти не могу да чувају своје информације у облаку, и захтевају хостирање свих својих података локално.
Ова документација покрива тај случај.
Шта је укључено 
FastComments On Prem вам омогућава да распоредите наше решење за уживо коментарисање, укључујући све алате за модерацију и администрацију, на вашем сопственом хардверу.
То значи да имате контролу над својим подацима, и да се систем за коментарисање може ограничити на вашу локалну LAN или корпоративну мрежу.
Гдје почети 
Да бисте почели са распоређивањем FastComments On Prem, обратите нам се.
Након подешавања, увек можете преузети најновију docker image са странице лиценцирања.
Инстанце 
Потребне компоненте
За On-Prem, FastComments се састоји само од апликационог сервера и базе података. Поједноставили смо деплој тако да апликација може да обрађује сав саобраћај директно без додавања других компоненти.
Апликациони сервер је обезбеђен у Docker слици и може се деплојовати помоћу било ког решења за управљање контејнерима.
База података, MongoDB, може да се покреће самостално или да буде хостирана код другог провајдера као што су AWS DocumentDB или MongoDB Atlas.
FastComments је тренутно тестиран са MongoDB 7, међутим циљамо компатибилност са DocumentDB ради олакшања распоређивања.
Величине инстанци
Увидећете да је FastComments прилично добро оптимизован и да не захтева велике машине за саму апликацију да би одржао ниске P99 вредности.
Сви batch и cron задаци користе streaming како би ограничили укупну употребу меморије.
Доње табеле за апликациони сервер и базу података могу помоћи при одређивању величине.
Инстанце апликационог сервера
| Истовремени корисници | Укупни Cluster CPUs | Укупна Cluster меморија |
|---|---|---|
| 100 | 1 | 256mb |
| 1K | 2 | 512mb |
| 10K | 8 | 1gb |
| 100K | 32 | 8gb |
| 1M | 64 | 64gb |
На пример, једно језгро које служи око 100 тема коментара у секунди обично никада не користи више од 250mb RSS.
Инстанце сервера базе података
Одређивање величине базе података зависи од величине радног сета, што је количина података којима приступате у датом тренутку, као и од истовремених захтева.
FastComments је прилично пријатељски према Mongo-у, јер за вруће упите користи index hints, streaming cursors, и има ограничења паралелности у разним областима како би спречио преоптерећење downstream система.
Доње је општа смерница за величине инстанци базе података. Имајте у виду да је ово по инстанци, а не укупни ресурси у кластеру.
| Истовремени корисници | Сачувани коментари | CPU-ова по инстанци | Меморија по инстанци |
|---|---|---|---|
| 100 | 1k | 1 | 256mb |
| 1K | 5k | 2 | 512mb |
| 10K | 100k | 8 | 2gb |
| 100K | 500k | 16 | 8gb |
| 1M | 5M | 32 | 32gb |
Горње табеле су конзервативне процене. Може се десити да се стварни захтеви разликују у зависности од ваше специфичне конфигурације (величине страница, обима коментара итд).
Конфигурација 
FastComments koristi environment varijable za konfiguraciju. Slijedeći spisak navodi sve podržane varijable koje su relevantne za On-Prem.
| Variable | Podrazumijevano | Opis | Obavezno | Primjeri ili važeće vrijednosti |
|---|---|---|---|---|
| NODE_ENV | Tip okruženja. | Da | production, dev | |
| MONGO_URI | URI za povezivanje sa bazom podataka. | Da | ||
| MONGO_ENABLE_SSL | false | Omogućava korišćenje SSL-a za povezivanje sa bazom podataka. | Ne | true, false |
| MONGO_ENABLE_SSL_VALIDATE | false | Omogućava validaciju sertifikata prema CA prilikom povezivanja na Mongo. | Ne | true, false |
| MONGO_SSL_CA | Mongo SSL CA pem fajl. | Ne | /path/to/some-cert.pem | |
| ADMIN_NOTIFICATIONS_EMAIL | Email na koji treba da stižu važne sistemske notifikacije. | Ne | admin-group@bigcorp.com | |
| IP_HASH_SALT | Sol za heširanje IP adresa. | Da | ||
| SESSION_SECRET | Ključ koji se koristi za potpisivanje sesija. | Da | ||
| SESSION_STORE_SECRET | Ključ koji se koristi za potpisivanje/heširanje sesija u skladištu. Mora biti drugačiji od SESSION_SECRET. | Da | ||
| HOSTNAME | Hostname na kojem je FastComments postavljen (admin dashboard itd). Ne smije uključivati port ili protokol. | Da | example.com | |
| HOST_ADDR | Pristupačni URI na kojem je FastComments dostupan (admin dashboard itd). | Da | https://example.com | |
| EMAIL_CONFIG_PATH | Putanja na lokalnom fajl sistemu gdje se nalazi konfiguracija e-pošte (SMTP, mapiranja domena/ provajdera, itd). | Da | /my/config.json | |
| EMAIL_DEFAULT_FROM_NAME | FastComments Robot | Zaglavlje "From Name" u emailu. | Ne | My Company Name |
| EMAIL_DEFAULT_FOOTER_LOGO | /images/logo-32-2020-01.png | Logo u podnožju emaila. | Ne | https://exmaple.com/footer.png |
| EMAIL_DEFAULT_TRANSPORT | Override za "defaultTransport" u EMAIL_CONFIG_PATH. Korisno za deploy istog konfiguracionog fajla u različita okruženja. | Ne | myTransportName | |
| ON_PREM_TENANT_ID | ID vašeg naloga na fastcomments.com. Koristi se za registraciju vašeg licence ključa. | Ne | ||
| ON_PREM_LICENSE_KEY | On-Prem licencni ključ. | Ne | ||
| GIPHY_API_KEY | Giphy API ključ. Ako nije naveden, trebate kreirati konfiguraciono pravilo koje onemogućava izbor gifova. | Ne | ||
| GIPHY_DEFAULT_RATING | pg | Koristi se za Giphy integraciju. Može se takođe prebrisati pravilima za prilagođavanje widgeta. | Ne | g, pg, pg-13, r |
| OPENAI_SECRET_KEY | Koristi se za OpenAI funkcionalnosti poput opcionog GPT-baziranog detektovanja spama. | Ne | ||
| CDN_HOST_ADDR | Hostname sa kojeg će se preuzimati asseti. Po defaultu koristi vrijednost HOSTNAME. | Ne | example.com | |
| LARGE_FILE_HOST_ADDR | Hostname sa kojeg se preuzimaju veliki fajlovi (npr. eksporti). Po defaultu koristi vrijednost CDN_HOST_ADDR. | Ne | example.com | |
| LARGE_FILE_LOCATION_TYPE | local_disk | Gdje treba čuvati velike fajlove, poput eksportovanih podataka. | Ne | local_disk, s3 |
| FROM_EMAIL_HOST | Hostname sa kojeg bi emailovi trebali biti poslati. | Ne | example.com | |
| COOKIE_ID | fastcomments.sid | Ime fastcomments kolačića. | Ne | |
| COOKIE_HOSTNAME | .fastcomments.com | Vrijednost polja "hostname" u kolačiću. Preporučeno je prefiksirati tačkom. | Ne | .example.com |
| S3_ACCESS_KEY | Koristi se za korisničke uploadove fajlova, avatara itd. Po defaultu koristi lokalni FS ako nije definisano. | Ne | ||
| S3_SECRET_KEY | Koristi se za korisničke uploadove fajlova, avatara itd. | Ne | ||
| S3_REGION | Koristi se za korisničke uploadove fajlova, avatara itd. | Ne | ||
| S3_BUCKET | Koristi se za korisničke uploadove fajlova, avatara itd. | Ne | ||
| S3_HOST | Koristi se za korisničke uploadove fajlova, avatara itd. | Ne | ||
| CACHE_DIR | Lokacija 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_DIR | Lokacija 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:

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.
Застој базе података и режим одржавања 
FastComments подржава аутоматски режим одржавања. Ако база података падне, може наставити да служи популарне нити коментара.
Додатно, у режиму одржавања, сви коментари се чувају у BACKUP_DIR. Биће обрађени (провјера за спам, итд.) и сачувани када систем поново буде онлајн.
Он то ради тако што сваког сата утврђује 100 најпопуларнијих нити коментара и кешира њихов садржај на диску. Утврђивање 100 најпопуларнијих нити већ се ради на основу претходно израчунатог стања, тако да то није захтјеван периодични посао.
Ово је потпуно опционo и омогућава се само ако су постављени CACHE_DIR и BACKUP_DIR. Ово, наравно, чини чворове апликације зависним од стања (stateful), међутим то је стање које може бити изгубљено у било којем тренутку без изазивања неправилног понашања апликације.
Имајте у виду да у режиму одржавања правилна аутентификација нити коментара не може бити урађена, тако да се периодично праве резервне копије само оних нити које се безбједно сматрају јавним.
У режиму одржавања многе функције нису доступне.
Закључавања 
Као и сваки распоређени систем, FastComments треба неки начин да закључава ресурсе и процедуре. Ова закључавања се могу надгледати путем /locks-in-progress крајње тачке.
На пример, ево крајње тачке на нашем US shard-у.
Ово може бити корисно да се види зашто је систем заглављен или под оптерећењем. Ако, на пример, SRE жели да види зашто систем доживљава високо CPU оптерећење, они могу проверити ову крајњу тачку да би добили име cron-а који се не понаша исправно.
Код виџета 
Primeri koda front-enda i biblioteke za On-Prem su isti kao kod SaaS proizvoda. Međutim, morate navesti apiHost i ispravnu putanju skripte:

Gore je vrlo jednostavan primjer. Takođe možemo koristiti zvanične React, Angular, Vue, Svelte itd. biblioteke.
АПИ 
До API-ја се може приступити на исти начин као и код редовног SaaS производа: пријављивањем у On-Prem контролни панел да бисте креирали API keys и користили те API keys за приступ API-ју. API endpoints су исти на On-Prem као и за SaaS производ.
Више домена 
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.
У закључку
Дошли сте до краја On Prem документације. Јавите нам које додатне коментаре или питања имате испод - можете такође да нас контактирате путем Странице за подршку.